Wordpress 基于SKU的后端订单排序
我正在尝试按sku对手动添加的订单进行排序 我试过所有这些代码:Wordpress 基于SKU的后端订单排序,wordpress,sorting,woocommerce,hook,Wordpress,Sorting,Woocommerce,Hook,我正在尝试按sku对手动添加的订单进行排序 我试过所有这些代码: 下面的代码是按名称排序的 add_filter('woocommerce_order_status_changed', 'sortOrderItemsSKU', 10, 2); function sortOrderItemsSKU($items, $order) { uasort( $items, function( $a, $b ) { return strcmp( $a['
下面的代码是按名称排序的
add_filter('woocommerce_order_status_changed', 'sortOrderItemsSKU', 10, 2);
function sortOrderItemsSKU($items, $order) {
uasort( $items,
function( $a, $b ) {
return strcmp( $a['name'], $b['name'] );
}
);
return $items;
}
但当更改为_sku/sku时,两者都不起作用
function( $a, $b ) {
return strcmp( $a['_sku'], $b['_sku'] );
}
非常感谢您的帮助。我确实找到了另一个解决方案。它返回已排序的数组,但顺序中的项目没有被排序:
add_action( 'woocommerce_order_status_changed', 'process_offline_order', 10, 4 );
function process_offline_order( $order_id, $items, $order, $types = 'line_item' ){
$order = new WC_Order( $order_id );
$items = $order->get_items();
$item_skus = $sorted_items = array();
foreach ( $items as $item_id => $item ) {
$product = wc_get_product( $item['product_id'] );
$product_id = $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id();
$product = $item->get_product();
$item_skus[$product->get_sku()] = $item_id;
}
ksort($item_skus);
foreach( $item_skus as $keyL => $valueL ){
$sorted_items[$keyL] = $items[$keyL];
$sorted_items[$valueL] = $items[$valueL];
}
return $item_skus;
}
所以问题可能就在这一部分:
foreach( $item_skus as $keyL => $valueL ){
$sorted_items[$keyL] = $items[$keyL];
$sorted_items[$valueL] = $items[$valueL];
}
return $item_skus;
有什么建议吗?@LoicTheAztec Wordpress Guru:)?您的代码无法工作,因为woocommerce\u order\u status\u changed\u不是要使用的正确钩子…正确的钩子是woocommerce\u order\u get\u items,如下答案所示: