0

$productから取得する方法は$subscriptionからですか?WooCommerceサブスクリプション - 特定のサブスクリプションの製品を取得

this postのおかげで、私は$subscriptionから私は$orderを得ることができることを知っている:

$order = $subscription->order; 

も可能で、このですか?

$product = $subscription->product; 

または:あなたはすでに$サブスクリプションオブジェクトを持っている場合

$subscription = new WC_Subscription($the_id); 

:あなたは、 "サブスクリプションID" を持っている場合

$product = $order->product; 

答えて

0

はい、あなたがこのようなオブジェクトを取得することができます

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

    } 

} 
1

サブスクリプション・オブジェクトがあるとして、契約または照合順序のいずれかから製品を取得することが可能ですWC_Orderクラスの拡張。サブスクリプションサービスを提供するほとんどの状況で

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

、これらの両方が同等になりますか$order_productsは少なくとも$subscription_products内で見つかったすべての製品が含まれている必要があります。

サブスクリプションを手動で作成する場合は例外ですが、サブスクリプションに注文は添付されないので、$subscription->orderは有効なWC_Orderオブジェクトではない可能性があります。

関連する問題