我认为您需要的是以下代码:
$get_order = wc_get_order( $order_id );
$items = $get_order->get_items();
foreach ( $items as $item ) {
$product = $item->get_product();
//check if this is a variation using is_type
if ( \'variation\' === $product->get_type() ) {
$variation_id = $item->get_variation_id();
$variation = new WC_Product_Variation( $variation_id );
$attributes = $variation->get_attributes();
foreach ( $attributes as $key => $value ) {
if ( \'pa_my-custom-variation\' === $key ) {
// whatever you want to do next
}
}
}
}
它所做的是查看订单中的每个项目,并检查它是否实际上是一个可变项目。如果是,那么它将获得其变体ID,并从中获得变体属性,您可以循环遍历其中的每个属性,以找到您需要的一个。
这里还有另一种检查a项是否可变的方法。这样,您就可以获得变体ID(如果有)。
$variation_id = $item->get_variation_id();
if(! empty($variation_id) {
// item is variable and we can check its variation
}
我知道这是一个老生常谈的问题,但希望这对任何来这里的人都有用。