在Woocommerce中获取客户"on-hold"订单状态总额



我正在尝试搁置所有产品的价格(即用户已下达订单但没有付款)。

我有以下代码,该代码可检测用户

的所有产品订单
function get_user_on_hold_product_price() {
    global $product, $woocommerce;
    // GET USER
    $current_user = wp_get_current_user();
    // GET USER ON-HOLD ORDERS
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => $current_user->ID,
        'post_type'   => 'shop_order',
        'post_status' => 'wc-on-hold',
    ) );

我不确定该怎么做才能仅获得用户所有固定订单的总价格。

将此功能添加/挂接到短码;

add_shortcode('get_on-hold_price', 'get_user_on_hold_product_price')

谢谢

使用 WC_Order_Query 以提高可用性和兼容性,以获取订单的总订单。

add_shortcode('user_on_hold_total', 'get_user_orders_on_hold_total');
function get_user_orders_on_hold_total() {
    $total_amount = 0; // Initializing
    // Get current user
    if( $user = wp_get_current_user() ){
        // Get 'on-hold' customer ORDERS
        $on_hold_orders = wc_get_orders( array(
            'limit' => -1,
            'customer_id' => $user->ID,
            'status' => 'on-hold',
        ) );
        foreach( $on_hold_orders as $order) {
            $total_amount += $order->get_total();
        }
    }
    return $total_amount;
}

代码在您的活动子主题(或活动主题)的function.php文件中。测试并起作用。

获得格式的总金额替换 return $total_amount; by return wc_price($total_amount);

快捷代码使用:[user_on_hold_total]

相关文档:WooCommerce wc_get_orders()WC_Order_Query

相关内容

  • 没有找到相关文章

最新更新