WooCommerce订阅 - 获取特定订阅的产品
问题描述:
有没有办法从获得$product
?WooCommerce订阅 - 获取特定订阅的产品
感谢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
对象。