【问题标题】:Woocommerce get selected variation from order objectWoocommerce 从订单对象中获取选定的变体
【发布时间】:2019-11-12 21:31:27
【问题描述】:

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

// 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】:

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

    这对我有用

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

    【讨论】:

    • 欢迎来到 Stack Overflow。没有任何解释的代码转储很少有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请edit您的问题并解释它如何比 OP 提供的更好。见How to Answer
    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 2021-11-04
    • 2017-09-13
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多