如何获得WooCommerce产品变化值 [英] How to get WooCommerce product variation values

查看:79
本文介绍了如何获得WooCommerce产品变化值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够列出变化选项的值.例如,我有一个12英寸,14英寸和16英寸的灯笼.我希望能够获得这些值.我一直在尝试使用foreach循环来获取这些值,但是我需要一些帮助.这是我的代码;

I want to be able to list the the variation option values. For example I have a lantern that comes in 12in, 14in and 16in. I want to be able to get these values. I have been trying to use the foreach loop to get these values but I need a little help. here's my code;

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

如您所见,我想要的值在那里,但是我不知道如何让它们回显它们.

As you can see the values that I want are there, but I don't know how to get them to echo them.

如果我使用var_dump()$ available_variations,这就是我得到的;

Here's what I get if I var_dump() $available_variations;

"[[" backorders_allowed] => bool(false)[" dimensions] => array(3){[" length] => string(4)" 11.8"[" width] => string( 4)"11.8" ["height"] =>字符串(4)"11.8"} ["dimensions_html"] =>字符串(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-300x300.jpg 300w, http://website/wp-content/uploads/2018/10/6712R-1-768x768.jpg 768w,字符串(31)"(最大宽度:600像素)100vw,600像素"[" full_src] =>字符串(59)" int(2000)[" full_src_h] => int(2000)[" gallery_thumbnail_src] =>字符串(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] =>字符串(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] =>字符串(3)" 164"[" is_downloadable] => bool(false)[" is_in_stock] => bool(true)[" is_purchasable] => bool(true)["is_sold_individuallyly"] =>字符串(2)"no" ["is_virtual"] => bool(false)["max_qty"] => int(17)["min_qty"] => int (1)["price_html"] =>字符串(145)"

" ["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"]=> string(59) "http://website/wp-content/uploads/2018/10/6712R-1.jpg" ["alt"]=> string(0) "" ["src"]=> string(67) "http://website/wp-content/uploads/2018/10/6712R-1-600x600.jpg" ["srcset"]=> string(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] =>字符串(5)" 6712R"[" variation_description] =>字符串(0)""[" variation_id] => int(1462)[" variation_is_active] =>布尔(true)["variation_is_visible"] => bool(true)["weight"] =>字符串(0)" ["weight_html"] =>字符串(3)"N/A"} [1] =>数组(24){["attributes"] => array(1){["attribute_pa_size"] => string(4)"14in"} ["availability_html"] => string(51)"

" ["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) "

这仅适用于一种产品,每个变体都有一个,但这使您了解其工作原理.我也愿意尝试另一种方法来获得相同的结果,因此,如果您知道的话,请告诉我.谢谢

This is just for one product, there is one for each variation, but this gives you the idea of how it works. I'm also open to trying another method to get the same results so if you know of one let me know. Thanks

推荐答案

您需要为产品属性使用第二个foreach循环:

You need to use a 2nd foreach loop for the product attributes:

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>';
            }
        }
    }
}

这篇关于如何获得WooCommerce产品变化值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆