我希望能够列出变化选项值。例如,我有一个 12 英寸、14 英寸和 16 英寸的灯笼。我希望能够获得这些值。我一直在尝试使用 foreach 循环来获取这些值,但我需要一些帮助。这是我的代码;
function test_func(){
global $woocommerce, $product, $post;
// test if product is variable
if( $product->is_type( 'variable' ) ){
$available_variations = $product->get_available_variations();
// var_dump($available_variations);
foreach( $available_variations as $key => $value ){
var_dump( $value['attributes'] ) ;
}
}
}
这是输出:
array(1) { ["attribute_pa_size"]=> string(4) "12in" } array(1) { ["attribute_pa_size"]=> string(4) "14in" } array(1) { ["attribute_pa_size"]=> string(4) "16in" }
如您所见,我想要的值在那里,但我不知道如何让它们响应它们。
这是我得到的结果,如果我 var_dump() $available_variations;
"["backorders_allowed"]=> bool(false) ["dimensions"]=> array(3) { ["length"]=> string(4) "11.8"["width"]=> string(4) "11.8"["height"]=> string(4) "11.8"} ["dimensions_html"]=> string(21) "11.8 x 11.8 x 11.8 in"["display_price"]=> float(3.2) ["display_regular_price "]=> float(3.2) ["image"]=> array(18) { ["title"]=> string(11) "6712R-1.jpg"["caption"]=> string(0) ""["url"]=> 字符串(59) "http://website/wp-content/uploads/2018/10/6712R-1.jpg "["alt"]=> 字符串(0) ""["src"]=> 字符串(67) "http://website/wp-content/uploads/2018/10/6712R-1-600x600.jpg "["srcset"]=> 字符串(445) "http://website/wp-content/uploads/2018/10/6712R-1-600x600.jpg 600w,http://website/wp-content/uploads/2018/10/6712R-1-150x150.jpg 150w,http://website/wp-content/uploads/2018/10/6712R-1-300x300.jpg 300w,http://website/wp-content/uploads/2018/10/6712R-1-768x768.jpg 768w,http://website/wp-content/uploads/2018/10/6712R-1-1024x1024.jpg 1024w,http://website/wp-content/uploads/2018/10/6712R-1-100x100.jpg 100w"["sizes"]=> string(31) "(max-width: 600px) 100vw, 600px"["full_src"]=> string(59) "http://website/wp-content/uploads/2018/10/6712R-1.jpg "["full_src_w"]=> int(2000) ["full_src_h"]=> int(2000) ["gallery_thumbnail_src"]=> string(67) "http://website/wp-content/uploads/2018/10/6712R-1-100x100.jpg "["gallery_thumbnail_src_w"]=> int(100) ["gallery_thumbnail_src_h"]=> int(100) ["thumb_src"]=> string(67) "http://website/wp-content/uploads/2018/10/6712R-1-300x300.jpg "["thumb_src_w"]=> int(300) ["thumb_src_h"]=> int(300) ["src_w"]=> int(600) ["src_h"]=> int(600) } ["image_id"]=> string(3) "164"["is_downloadable"]=> bool(false) ["is_in_stock"]=> bool(true) ["is_purchasable"]=> bool(true) ["is_sold_individually"]=> string(2) "no"["is_virtual"]=> bool(false) ["max_qty"]=> int(17) ["min_qty"]=> int(1) ["price_html"]=> string(145) )”
"["sku"]=> string(5) "6712R"["variation_description"]=> string(0) ""["variation_id"]=> int(1462) ["variation_is_active"]=> bool(true) ["variation_is_visible"]=> bool(true) ["weight"]=> string(0) ""["weight_html"]=> string(3) "N/A"} [1]=> array(24) { ["attributes"]=> array(1) { ["attribute_pa_size"]=> string(4) "14in"} ["availability_html"]=> string(51) "
这仅适用于一种产品,每种变体都有一个,但这可以让您了解它的工作原理。我也愿意尝试另一种方法来获得相同的结果,所以如果你知道一个方法,请告诉我。谢谢
最佳答案
您需要为产品属性使用第二个 foreach 循环:
function test_func(){
global $woocommerce, $product, $post;
// test if product is variable
if( $product->is_type( 'variable' ) ){
// Loop through available product variation data
foreach ( $product->get_available_variations() as $key => $variation ) {
// Loop through the product attributes for this variation
foreach ($variation['attributes'] as $attribute => $term_slug ) {
// Get the taxonomy slug
$taxonmomy = str_replace( 'attribute_', '', $attribute );
// Get the attribute label name
$attr_label_name = wc_attribute_label( $taxonmomy );
// Display attribute labe name
$term_name = get_term_by( 'slug', $term_slug, $taxonmomy )->name;
// Testing output
echo '<p>' . $attr_label_name . ': ' . $term_name . '</p>';
}
}
}
}
关于php - 如何获取 WooCommerce 产品变体值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080434/