为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取Woo商务订阅的数量?

如何获取Woo商务订阅的数量?

PHP
交互式爱情 2022-09-24 16:04:58
我目前正在开发一个WordPress项目,我正在使用Woo商务与Woo商业订阅插件为我的用户提供订阅。我需要有关如何在PHP中获取订阅数量的帮助。我正在使用此代码获取订阅,但我无法检索数量:$subscriptions = wcs_get_subscriptions( array(    'customer_id'            => get_current_user_id(),    'subscription_status'    => 'wc-active',    'order_by'               => 'DESC',    'subscriptions_per_page' => - 1) );当用户购买订阅时,用户可以选择订阅的数量。所以我需要得到这个字段的值:
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您的代码是正确的,是获得客户活跃订阅的正确和最佳方式。wcs_get_subscriptions()


但是您在代码后错过了一些东西来获取客户订阅项目数量(代码注释)::


// Get current customer active subscriptions

$subscriptions = wcs_get_subscriptions( array(

    'customer_id'            => get_current_user_id(),

    'subscription_status'    => 'wc-active',

    'order_by'               => 'DESC',

    'subscriptions_per_page' => - 1

) );


if ( count( $subscriptions ) > 0 ) {

    // Loop through customer subscriptions

    foreach ( $subscriptions as $subscription ) {

        // Get the initial WC_Order object instance from the subscription

        $order = wc_get_order( $subscription->get_parent_id() );


        // Loop through order items

        foreach ( $order->get_items() as $item ) {

            $product = $item->get_product(); // Get the product object instance


            // Target only subscriptions products type

            if( in_array( $product->get_type(), ['subscription', 'subscription_variation'] ) ) {

                $quantity = $item->get_quantity(); // Get the quantity

                echo '<p>Quantity: ' . $quantity . '</p>';

            }

        }

    }

}

经过测试并工作。


查看完整回答
反对 回复 2022-09-24
?
郎朗坤

TA贡献1921条经验 获得超9个赞

这是我的工作代码试试这个


$current_user_id = get_current_user_id();

$customer_subscriptions = get_posts( array(

    'numberposts' => -1,

    'meta_key'    => '_customer_user',

    'meta_value'  => get_current_user_id(), // Or $user_id

    'post_type'   => 'shop_subscription', // WC orders post type

    'post_status' => 'wc-active' // Only orders with status "completed"

) );

如果您想获得所有post_status订阅,请使用此



$customer_subscriptions_for_other_cases = get_posts( array(

    'numberposts' => -1,

    'meta_key'    => '_customer_user',

    'meta_value'  => get_current_user_id(), // Or $user_id

    'post_type'   => 'shop_subscription', // WC orders post type

    'post_status' => array('wc-on-hold','wc-pending-cancel','wc-active') // Only orders with status "completed"

) );


查看完整回答
反对 回复 2022-09-24
  • 2 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信