从 WC_Product_Variation 获取产品变体

Wes*_*ley 5 php wordpress woocommerce

我有一家WooCommerce网上商店,出售 T 恤。当人们查看购物车时,我想让他们选择更改 T 恤尺寸。目前,我制作的下拉菜单如下所示:

<?php
    if ( $item->is_type( 'variation' ) ){
?>
<select name="" class="product-size">
<?php
    foreach ( $item->get_available_variations() as $variation ):
?>
        <option value="">test</option>
<?php
    endforeach;
?>
</select>
<?php
   }
? >
Run Code Online (Sandbox Code Playgroud)

但是,这给了我以下错误:

Fatal error: Uncaught Error: Call to undefined method WC_Product_Variation::get_available_variations()
Run Code Online (Sandbox Code Playgroud)

然后它击中了我;我的$item变量,已经是一个变体。有没有办法获得同一产品的其他变体?

谢谢

Vid*_*hit 2

如果您检查对象的类型,它属于 WC_Order_Item_Product 类。你可以用这个

$variationId = $item->get_variation_id();

$variableProduct = new WC_Product_Variable($variationId)

$allVariations = $variableProduct->get_available_variations();
Run Code Online (Sandbox Code Playgroud)

=====================================

我懂了。你可以试试这个。

$parentData = $item->get_parent_id();
$variableProduct = new WC_Product_Variable($parentData)
$allVariations = $variableProduct->get_available_variations();
Run Code Online (Sandbox Code Playgroud)