Woocommerce 从订单对象获取选定的变体

Woocommerce 从订单对象获取选定的变体,woocommerce,attributes,product,variations,Woocommerce,Attributes,Product,Variations,我正在尝试从order对象获取变体。这是我的代码: // 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

我正在尝试从order对象获取变体。这是我的代码:

// 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_属性会获得所有变体

我的变体在产品页面中如下所示:

<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>

您应该首先从项目中获取变体id,然后获取变体和属性

这对我有用

 $variation_id = $item->get_variation_id(); 
    $variation = new WC_Product_Variation($variation_id);
    $variationName = ' ' . implode(" - ", $variation->get_variation_attributes());

欢迎来到堆栈溢出。没有任何解释的代码转储很少有帮助。堆栈溢出是关于学习,而不是提供盲目复制和粘贴的代码片段。请回答您的问题,并解释它如何比OP提供的更好地工作。看见