如何显示已购买套餐中剩余的产品数量

时间:2019-12-19 作者:Bhaumik Bhatt

我是新手。我想做的是创建一个软件包,让客户可以随时购买我的10种产品。现在,当用户购买此软件包时,我希望我的网站向他显示,他可以购买10种产品,当他购买任何产品时,剩余产品的数量将被他购买的产品数量扣除。例如,如果他还有10种产品,他买了两种,那么我想告诉他还有8种产品。现在,我如何区分普通客户和已经购买套餐的客户,以及如何不向已经购买套餐的客户显示付款页面。在这里,我想向客户销售包装和单件产品。我对wordpress有一点了解,所以是否有任何插件用于此,如果没有,那么我在哪里编写此代码。我使用的是2017主题。如果这不是本网站的正确问题,请原谅给您带来的不便。

1 个回复
SO网友:Gopala krishnan

希望这段代码对你有帮助。我已使用代码完成当前登录用户的订单数据(或者您可以使用您的状态)。然后得到他们的产品数量,现在我们可以获得之前要购买的产品。刚刚完成了这个代码。

$customer_orders = get_posts( array(
        \'numberposts\' => - 1,
        \'meta_key\'    => \'_customer_user\',
        \'meta_value\'  => get_current_user_id(),
        \'post_type\'   => \'shop_order\', // WC orders post type
        \'post_status\' => \'wc-completed\' // Only orders with status "completed"
        //use status such as "wc-processing"/"wc-on-hold"etc.
    ) );
    $previous_count = 0;

    // Going through each current customer orders
    foreach ( $customer_orders as $customer_order ) {
        $order    = wc_get_order( $customer_order );
        $items    = $order->get_items();


        // Going through each current customer products bought in the order
        foreach ( $items as $item ) {
            $id = $item[\'product_id\'];

            // If product not in array, add it
            if ( ! array_key_exists( $item[\'product_id\'], $products ) ) {
                $products[ $id ] = array(
                    \'name\' => $item[\'name\'],
                    \'count\' => 0,
                );
            }
            // Increment Product <code>count</code> from cart quantity
            //$products[ $id ][\'count\'] += $item->get_quantity();// get the total product
            $previous_count += $item->get_quantity();
        }
    }
    $cart_count = WC()->cart->get_cart_contents_count();
    $remaining_product_count = $previous_count+$cart_count;
    if($remaining_product_count < 10){
        $remaining_product_count = 10-$remaining_product_count;
        echo $remaining_product_count;
    }

相关推荐