1

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

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

我试图在将产品添加为可变订阅产品时实现相同的效果,并且我的印象是订阅产品是 WooCommerce 产品的扩展,不应该使用相同的方法吗?

克里斯

4

1 回答 1

2

由于订阅变量产品扩展了 WooCommerceWC_Product_Variable类,因此他们几乎可以使用WooCommerce变量产品可以使用的所有可用方法。但他们也有自己的方法,在WC_Product_Variable_SubscriptionClass php 文件中描述。他们的产品类型是“变量订阅”。

对于产品订阅变体,它与扩展 WooCommerceWC_Product_Variation类类似,因此它们可以使用WooCommerce 产品变体可以使用的几乎所有可用方法。但他们也有自己的方法,在WC_Product_Subscription_VariationClass 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>';
    }
}

测试和工作

于 2020-10-10T20:27:28.257 回答