在 Woocommerce 管理订单页面(运输部分)中用 SKU 替换产品名称
Replace product name by SKU in Woocommerce admin orders pages (shipping section)
我只想在 Woocommerce 中用 SKU 替换产品名称 --> 订单 --> WordPress 后端管理中的订单详细信息,位于运输部分。
我尝试了以下代码,但它没有用。我不擅长PHP。
add_filter( 'woocommerce_order_item_shipping_get_name', 'filter_order_item_shipping_get_name', 10, 2 );
function filter_order_item_shipping_get_name( $item_name, $order_item ) {
if ( is_admin() && $order_item->is_type('line_item') ) {
$product = $order_item->get_product();
if( $sku = $product->get_sku() ) {
$item_name = $sku;
}
}
return $item_name;
}
是否可以知道仅在 Woocommerce --> 订单 --> WordPress 后端管理中的订单详细信息运输部分中用 SKU 替换产品名称的正确代码?
如何解决这个问题?
您要使用的过滤器是 woocommerce_order_item_display_meta_value
。它有3个参数,第三个是你希望挂接的地方的运输对象。你测试它的类型是'shipping'
,确保你没有修改其他区域。接下来,您必须获取父订单对象,从中获取订单项目对象,并循环遍历它们以构建输出字符串。
add_filter( 'woocommerce_order_item_display_meta_value', 'filter_order_item_display_meta_value', 10, 3 );
function filter_order_item_display_meta_value( $meta_value, $meta_object, $order_item ) {
if ( is_admin() && $order_item->is_type('shipping') ) {
$meta_values = [];
$order = $order_item->get_order();
$order_items = $order->get_items();
foreach( $order_items as $order_item ){
$quantity = $order_item->get_quantity();
$product = $order_item->get_product();
$sku = $product->get_sku();
$name = $product->get_name();
if( $sku ) {
$meta_values[] = $sku . ' × ' . $quantity;
} else {
$meta_values[] = $name . ' × ' . $quantity;
}
}
return implode( ', ', $meta_values );
}
return $meta_value;
}
我只想在 Woocommerce 中用 SKU 替换产品名称 --> 订单 --> WordPress 后端管理中的订单详细信息,位于运输部分。
我尝试了以下代码,但它没有用。我不擅长PHP。
add_filter( 'woocommerce_order_item_shipping_get_name', 'filter_order_item_shipping_get_name', 10, 2 );
function filter_order_item_shipping_get_name( $item_name, $order_item ) {
if ( is_admin() && $order_item->is_type('line_item') ) {
$product = $order_item->get_product();
if( $sku = $product->get_sku() ) {
$item_name = $sku;
}
}
return $item_name;
}
是否可以知道仅在 Woocommerce --> 订单 --> WordPress 后端管理中的订单详细信息运输部分中用 SKU 替换产品名称的正确代码?
如何解决这个问题?
您要使用的过滤器是 woocommerce_order_item_display_meta_value
。它有3个参数,第三个是你希望挂接的地方的运输对象。你测试它的类型是'shipping'
,确保你没有修改其他区域。接下来,您必须获取父订单对象,从中获取订单项目对象,并循环遍历它们以构建输出字符串。
add_filter( 'woocommerce_order_item_display_meta_value', 'filter_order_item_display_meta_value', 10, 3 );
function filter_order_item_display_meta_value( $meta_value, $meta_object, $order_item ) {
if ( is_admin() && $order_item->is_type('shipping') ) {
$meta_values = [];
$order = $order_item->get_order();
$order_items = $order->get_items();
foreach( $order_items as $order_item ){
$quantity = $order_item->get_quantity();
$product = $order_item->get_product();
$sku = $product->get_sku();
$name = $product->get_name();
if( $sku ) {
$meta_values[] = $sku . ' × ' . $quantity;
} else {
$meta_values[] = $name . ' × ' . $quantity;
}
}
return implode( ', ', $meta_values );
}
return $meta_value;
}