【问题标题】:WooCommerce Subscriptions - Get product of a specific subscriptionWooCommerce 订阅 - 获取特定订阅的产品
【发布时间】:2017-12-03 10:05:41
【问题描述】:

有没有办法从$product 获取$subscription

感谢this post,我知道从$subscription可以得到$order

$order = $subscription->order;

这也可以吗?

$product = $subscription->product;

或者:

$product = $order->product;

【问题讨论】:

    标签: php wordpress woocommerce product woocommerce-subscriptions


    【解决方案1】:

    是的,如果你有一个“订阅 ID”,你可以得到一个像这样的对象:

    $subscription = new WC_Subscription( $the_id );
    

    当你已经有 $subscription 对象时:

    $related_orders_ids_array = $subscription->get_related_orders();
    

    然后遍历相关订单数组。

    foreach ( $related_orders_ids_array as $order_id ) {
    
        $order = new WC_Order( $order_id );
        $items = $order->get_items();
    

    然后,如果您遍历订单项目,您可以访问产品信息:

        foreach ( $items as $product ) {
    
            var_dump( $product );
    
        }
    
    }
    

    【讨论】:

    • 订单可以有未包含在订阅中的产品...
    【解决方案2】:

    可以从订阅或匹配订单中获取产品,因为订阅对象是WC_Order 类的扩展。

    $subscription_products = $subscription->get_items();
    $order_products = $subscription->order->get_items();
    

    在您提供订阅服务的大多数情况下,这两种服务是等效的,或者$order_products 至少应包含在$subscription_products 中找到的所有产品。

    一个值得注意的例外是您手动创建订阅时;订阅不会附加任何订单,因此$subscription->order 可能不是有效的WC_Order 对象。

    【讨论】:

    • 这对我帮助很大。特别是$subscription_products。谢谢!
    【解决方案3】:

    从 woocommerce 订阅中获取产品完整代码以及使用示例:

    if ( sizeof( $subscription_items = $subscription->get_items() ) > 0 ) {
        foreach ( $subscription_items as $item_id => $item ) {
            $product = $item->get_product();
    
            //Examples of use
            $product->get_id();
            $product->get_sku();
            $product->get_image('post-thumbnail', ['class' => 'alignleft'], false); // main image
    
            $product_id = wcs_get_canonical_product_id( $item ); // get product id directly from item
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-29
      • 2021-01-25
      • 2017-06-18
      • 2017-08-05
      • 1970-01-01
      • 2023-01-25
      • 2017-09-17
      • 2021-01-10
      • 2017-04-07
      相关资源
      最近更新 更多