[英]Replace product name by SKU in Woocommerce admin orders pages (shipping section)
I would like to replace the Product name by the SKU only in Woocommerce --> Orders --> Order Details in the backend admin of WordPress located in the Shipping section.我想仅在 Woocommerce --> 订单 --> 位于运输部分的 WordPress 后端管理中的订单详细信息中用 SKU 替换产品名称。
I tried the following code but it didn't work.我尝试了以下代码,但没有用。 I am not skilled with PHP.
我对 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;
}
Is it possible to know the correct code to replace the Product name by the SKU only in Woocommerce --> Orders --> Order Details Shipping section in the backend admin of WordPress?是否可以仅在 WordPress 后端管理中的 Woocommerce --> 订单 --> 订单详细信息运输部分中知道用 SKU 替换产品名称的正确代码?
How do I solve this problem?我该如何解决这个问题?
The filter you want to use is woocommerce_order_item_display_meta_value
.您要使用的过滤器是
woocommerce_order_item_display_meta_value
。 It takes 3 parameters, and the third one is a shipping object in the place you are hoping to hook in. You test that its tye is 'shipping'
to make sure you don't modify other areas.它需要 3 个参数,第三个是您希望挂钩的地方的运输对象。您测试它的 tye 是否为
'shipping'
以确保您不修改其他区域。 Next you have to get the parent order object, get the order items objects from that, and loop through them to build the output string.接下来,您必须获取父订单对象,从中获取订单项目对象,并遍历它们以构建输出字符串。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.