Woocommerce 从订单对象获取选定的变体
我正在尝试从order对象获取变体。这是我的代码: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
// 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提供的更好地工作。看见