Is there a way to get from $product
from $subscription
?
Thanks to this post, I know that from $subscription
I can get $order
:
$order = $subscription->order;
Is this also possible?
$product = $subscription->product;
Or:
$product = $order->product;
It is possible to get the products from either the Subscription or the matching order, as a subscription object is an extension of the WC_Order
class.
$subscription_products = $subscription->get_items();
$order_products = $subscription->order->get_items();
In most situations where you provide subscription services, both of these will be equivalent or $order_products
should at least contain all products found within $subscription_products
.
A notable exception is when you create a subscription manually; no order will be attached to the subscription, so $subscription->order
may not be a valid WC_Order
object.
Get product from woocommerce subscription full code with examples of use:
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
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With