WooCommerce订阅 - 获取特定订阅的产品

问题描述:

有没有办法从获得$productWooCommerce订阅 - 获取特定订阅的产品

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

$order = $subscription->order; 

这也可能吗?

$product = $subscription->product; 

或者:

$product = $order->product; 

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

$subscription = new WC_Subscription($the_id); 

当你已经有了$认购对象:

$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); 

    } 

} 

这是有可能得到的产品无论从认购或匹配顺序,作为认购对象是WC_Order类的扩展。

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

在您提供订阅服务大多数情况下,这两个将等同或$order_products应至少包含内$subscription_products找到的所有产品。

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