我正在尝试使用woocommerce_my_account_my_orders_query
过滤器在客户订单信息中心页面上过滤WC订单。按日期排序,标题等对我来说工作正常但是当我尝试按自定义元键和值过滤订单时,它不会返回正确的结果。
add_filter( 'woocommerce_my_account_my_orders_query', 'af_filter_orders', 10, 1 );
function af_filter_orders( $orders ) {
$orders = array(
'limit' => -1,
'offset' => null,
'page' => 1,
'meta_key' => 'custom_meta_key', //meta type is plain string and i need results alphabetically.
'orderby' => 'meta_value', //meta_value_num
'order' => 'DESC', //ASC
'customer' => get_current_user_id(),
'paginate' => true
);
return $orders;
}
我在WC v2.6上。尚未测试3倍。我需要它与2.6一起工作
答案 0 :(得分:1)
add_filter('woocommerce_my_account_my_orders_query', 'af_filter_orders', 10, 1);
function af_filter_orders($orders) {
$orders = array(
'limit' => -1,
'offset' => null,
'page' => 1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'custom_meta_key',
'value' => $value,
'compare' => 'LIKE'
)
), //meta type is plain string and i need results alphabetically.
'orderby' => 'meta_value', //meta_value_num
'order' => 'DESC', //ASC
'customer' => get_current_user_id(),
'paginate' => true
);
return $orders;
}
答案 1 :(得分:0)
在WooCommerce 3.0以下,woocommerce_my_account_my_orders_query
是用于get_post
的args数组。
在此,我认为您的$orders
数组应该包含meta_query,以使其正常工作。
$orders = array(
'limit' => -1,
'offset' => null,
'page' => 1,
'meta_key' => 'custom_meta_key', //meta type is plain string and i need results alphabetically.
'orderby' => 'meta_value', //meta_value_num
'order' => 'DESC', //ASC
'customer' => get_current_user_id(),
'paginate' => true,
'meta_query' => array(
array(
'key' => 'custom_meta_key', //meta type is plain string and i need results alphabetically.
'value' => array( 3, 4 ),
'compare' => 'IN',
),
),
);
在WooCommerce 3.0.x中,woocommerce_my_account_my_orders_query
用于wc_get_orders
,其中你的args仅限于给定的内容。 meta_key
和meta_query
是不可接受的。所以不会奏效。但是,最后会使用您可以使用的过滤器woocommerce_order_data_store_cpt_get_orders_query
来处理查询。它基本上是在调用WP_Query
。其中woocommerce_order_data_store_cpt_get_orders_query
是args的过滤器。
<强> P.S。强>
我认为在3.1.x中,他们删除了wp_parse_args
wc_get_orders
。这意味着当您将其作为参数传递时,meta_key
和meta_query
将起作用。