Woocommerce从订单对象中获取选择的变化。

问题描述 投票:0回答:1

我正在尝试从订单对象中获取变化。这是我的代码。

// This is my order object.
global $order;

// I am getting items from order.
$items = $order->get_items();

// Get single item from items
foreach( $items as $item ) {
    // Get product id which i bought.
    $product_id = $item->get_product_id();

    // Get product object which i bought
    $product = wc_get_product( $product_id );

    // This is my problem! It gets all variations. I want to gent only selected when customer was buying.
    $product_variation_name = $product->get_attribute( 'my-custom-variation' );
}

正如我所说. 我正在尝试从我的买入订单中获取选择的变量。但是 $product->get_attribute 得到所有的变化。

我的变化在产品页面上看起来是这样的。

<select name="variation" id="variation">
    <option value="pa_my-custom-variation">My Custom Variation</option>
    <option value="pa_other-variation">Other Variation</option>
    <option value="pa_other-variation-1">Other Variation 1</option>
</select>
woocommerce attributes product variations
1个回答
0
投票

你应该先从物品中获取变化ID,然后再获取变化和属性。

这是为我工作

 $variation_id = $item->get_variation_id(); 
    $variation = new WC_Product_Variation($variation_id);
    $variationName = ' ' . implode(" - ", $variation->get_variation_attributes());
© www.soinside.com 2019 - 2024. All rights reserved.