WooCommerce 3+ 管理后端中的挂单问题摘要
Summary of pending orders issue in admin backend on WooCommerce 3+
将 Woocommerce 从 2.6.13 更新到 3.2.6 后,一些显示待定订单和计算订购产品的自定义代码不再有效。我在移植代码时遇到问题,因为我一直在查找的 woocommerce 文档似乎已过时。
例如,我认为这不再有效但我找不到更新的版本
$orders = get_posts( array(
'post_type' => 'shop_order',
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
我已经从下面的更新了它,但都没有返回数组中的任何东西
$orders = get_posts( array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'tax_query' => array( array(
'taxonomy' => 'shop_order_status',
'field' => 'slug',
'terms' => array( 'processing', 'completed' )
) )
) );
在 3.0+ 中使用 get_posts 从 woocommerce 获取订单的正确方法是什么?
您的第一个片段代码在 WC 3+ 中有效以获取 WP_Post
订单对象数组,但您需要以这种方式指定帖子数:
$post_orders = get_posts( array(
'post_type' => 'shop_order',
'numberposts' => -1, // number of post (all)
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
// Display the number of Post orders objects in the array
echo count($post_orders);
或者您可以使用此 SQL 查询:
global $wpdb;
$post_orders = $wpdb->get_results( "
SELECT *
FROM {$wpdb->prefix}posts
WHERE post_type LIKE 'shop_order'
AND post_status IN ('wc-processing', 'wc-completed')
" );
// Display the number of WP_Post orders in the array
echo count($post_orders);
要获取 WC_Order
个对象的数组,您可以使用:
$orders = wc_get_orders( array(
'numberposts' => -1, // number of post (all)
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
// Display the number of WP_Order orders in the array
echo count($orders);
将 Woocommerce 从 2.6.13 更新到 3.2.6 后,一些显示待定订单和计算订购产品的自定义代码不再有效。我在移植代码时遇到问题,因为我一直在查找的 woocommerce 文档似乎已过时。
例如,我认为这不再有效但我找不到更新的版本
$orders = get_posts( array(
'post_type' => 'shop_order',
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
我已经从下面的更新了它,但都没有返回数组中的任何东西
$orders = get_posts( array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'tax_query' => array( array(
'taxonomy' => 'shop_order_status',
'field' => 'slug',
'terms' => array( 'processing', 'completed' )
) )
) );
在 3.0+ 中使用 get_posts 从 woocommerce 获取订单的正确方法是什么?
您的第一个片段代码在 WC 3+ 中有效以获取 WP_Post
订单对象数组,但您需要以这种方式指定帖子数:
$post_orders = get_posts( array(
'post_type' => 'shop_order',
'numberposts' => -1, // number of post (all)
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
// Display the number of Post orders objects in the array
echo count($post_orders);
或者您可以使用此 SQL 查询:
global $wpdb;
$post_orders = $wpdb->get_results( "
SELECT *
FROM {$wpdb->prefix}posts
WHERE post_type LIKE 'shop_order'
AND post_status IN ('wc-processing', 'wc-completed')
" );
// Display the number of WP_Post orders in the array
echo count($post_orders);
要获取 WC_Order
个对象的数组,您可以使用:
$orders = wc_get_orders( array(
'numberposts' => -1, // number of post (all)
'post_status' => array( 'wc-processing', 'wc-completed' )
) );
// Display the number of WP_Order orders in the array
echo count($orders);