Woocommerce订阅:如果产品是订阅产品,则获取产品变体

时间:2020-10-10 17:00:37

标签: php wordpress woocommerce woocommerce-subscriptions product-variations

为了返回WooCommerce中当前产品的可用变体数组,我将使用类似这样的东西:

 global $product;
 
 $variations = $product->get_available_variations();

当将产品添加为变量 subscription 产品时,我试图实现相同的效果,并且由于订购产品是WooCommerce产品的扩展,因此我的印象是不应该使用相同的方法?

克里斯

1 个答案:

答案 0 :(得分:1)

由于订阅变量产品扩展了WooCommerce WC_Product_Variable类,因此他们可以主要使用WooCommerce Variable产品可以使用的所有可用方法。但是它们还有WC_Product_Variable_Subscription类php文件中描述的自己的方法。他们的产品类型为“ 变量订阅”。

对于产品订阅变体,它们与扩展WooCommerce WC_Product_Variation类相似,因此他们可以主要使用WooCommerce产品变体可以使用的所有可用方法。但是它们还有WC_Product_Subscription_Variation类php文件中描述的自己的方法。他们的产品类型为“ subscription_variation ”。

因此您的代码将是:

global $product;

// Only for Variable subscription product
if ( $product->is_type('variable-subscription') ) {
 
    $available_variations = $product->get_available_variations();
 
    // Loop through available subscription variation products data
    foreach ( $available_variations as $variation_data ) {
        // Output formatted raw data (array)
        echo '<pre>'; print_r( $variation_data ); echo '</pre>';
    }
}

经测试可正常工作