我想在插件函数中获取当前用户的所有订单。
我用这个:
function get_all_orders(){
$customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
'numberposts' => $order_count,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => wc_get_order_types( 'view-orders' ),
'post_status' => array_keys( wc_get_order_statuses() )
) ) );
return $customer_orders;
}
这在主题内部效果很好,但在自定义插件中它不会返回任何内容。 难道我做错了什么?我应该先打电话给WooCommerce课吗?
答案 0 :(得分:0)
if (!class_exists('WooCommerce')) :
require ABSPATH . 'wp-content/plugins/woocommerce/woocommerce.php';
$orders = get_all_orders();
endif;
function get_all_orders() {
$customer_orders = get_posts(apply_filters('woocommerce_my_account_my_orders_query', array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => wc_get_order_types('view-orders'),
'post_status' => array_keys(wc_get_order_statuses())
)));
return $customer_orders;
}
试试这段代码。
答案 1 :(得分:0)
自最初提出问题以来,API可能已更改,但这更加优雅并且使用了WC自己的功能:
$args = array(
'customer_id' => $user_id
);
$orders = wc_get_orders($args);
您可以使用many more other $args。