获取WooCommerce Variable Product属性选择的值

时间:2017-10-06 08:14:31

标签: php wordpress woocommerce attributes product

我在我添加的woocommerce单一产品页面中有两个属性," Metal"和"戒指尺寸"。他们是"变种"这样它们就会在我的产品页面上下拉选择。

我希望能够点击我的按钮,我可以 抓取所选值 并将其添加到我的网址参数中。

我解决了所有被抓取的值不正确的部分。

到目前为止,我已经尝试了这个,但它只是给了我一个属性可能的值/选择的列表,而不是单个选定的值..

$metal = $product->get_attribute( 'Metal' );

http://example.com/?metal=18K%20White%20Gold%20|%2018K%20Yellow%20Gold%20|%20Rose%20Gold%20|%20Platinum

我只想要在下拉列表中选择的内容,如下所示:

http://example.com/?metal=Platinum

1 个答案:

答案 0 :(得分:1)

以下是您可能需要自定义一些代码的示例。这段代码将:

  • 显示临时自定义按钮(用于测试),其自定义href值如下:
    home-url/?metal= ... home-url是您的网站网址)
  • 从“metal”属性中获取所选值,并将其附加到按钮网址。

以下是代码:

add_filter( 'woocommerce_single_variation', 'get_variation_selectected_value', 25 );
function get_variation_selectected_value() {
    global $product;

    // Display button (Just for testing purpose) 
    // You can remove or comment the line of code below …
    // But you need to set your url like: http://example.com/?metal=
    echo '<br /><a href="'.home_url("/?metal=").'" class="book-now button">'. __('Make an Appointment Now') .'</a>';

    // The script
    ?>
    <script>
    jQuery(document).ready(function($) {
        // Get the default value
        var selectedValue = $('select#metal option:checked').val(),
            hrefAttribute = $('a.book-now').attr("href");
            $('a.book-now').attr("href", hrefAttribute+selectedValue);

        // Display on browser console (for test)
        console.log($('a.book-now').attr("href"));

        // Get the live selected value
        $('select#metal').blur( function(){
            selectedValue = $('select#metal option:checked').val();
            hrefAttribute = $('a.book-now').attr("href");
            $('a.book-now').attr("href", hrefAttribute+selectedValue);

            // Display on browser console (for test)
            console.log($('a.book-now').attr("href"));
        });
    });
    </script>
    <?php
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

代码已经过测试(使用其他属性)并且正常工作。