在WooCommerce单个产品上动态设置和显示自定义产品变化值

女孩

我有一个WooCommerce珠宝网站。在单个可变产品页面上,我有一些变化,并且添加了一个文本框(文本框供客户写一些将打印在珠宝上的东西)。

因此,我希望页面的工作方式如下:如果客户选择了特定的产品变体并开始在文本框中输入,则产品的价格应根据字母数而变化(注意:仅在选择了一个特定的变体时,此功能才有效)其他所有产品的价格将是固定的。

我确实设法完成了文本框价格更新的部分。

我在这里遇到的问题是如何选择特定的产品。

基于“显示Woocommerce答案中所选变体的产品属性项”,我尝试使用以下代码尝试解决此问题:

function vendor_defined_taxonomy() {
    return 'Materijal'; 
}

add_action( 'woocommerce_product_meta_end', 'display_product_vendors', 10 );
function display_product_vendors() {
    $taxonomy = vendor_defined_taxonomy();
    $term_ids = wp_get_post_terms( get_the_ID(), $taxonomy, array('fields' => 
    'ids') );
    if( sizeof($term_ids) > 0 ){ 
        echo '<span class="posted_in vendors"></span>';
    }
}

add_filter( 'woocommerce_available_variation', 'selected_variation_vendor_value', 10, 3 );
function selected_variation_vendor_value( $data, $product, $variation ) {
    $taxonomy = vendor_defined_taxonomy();

    if( isset($data['attributes']['attribute_'.$taxonomy]) )
        $term = get_term_by( 'slug', $data['attributes']['attribute_'.$taxonomy], $taxonomy );

    if( isset($term) && is_a($term, 'WP_Term' ) )
        $data['variation_description'] .= '<input type="hidden" name="vendor- hidden" id="vendor-hidden" value="'.$term->name.'">';

    return $data;
}

add_action('woocommerce_before_add_to_cart_button', 'custom_product_jquery_script');
function custom_product_jquery_script() {
    global $product;

    $taxonomy     = vendor_defined_taxonomy();
    $terms_string = $product->get_attribute($taxonomy);

    if( ! empty($terms_string) ) :
    ?>
    <script type="text/javascript">
    jQuery(function($) {
        var form = 'form.variations_form',       
            selected = 'input[name="variation_id"]',
            vendorVal = 'input#vendor-hidden',
            vendorTarget = 'span.vendors',
            vendorHtml = $(vendorTarget).text(), 
            vendorLabel = '';

        // On variation select
        $(form).on( 'blur', 'select', function() {
            if($(selected).val() != ''){
                $(vendorTarget).text("");
                if($(vendorVal).val() == 'Zlato'){
                    //$(vendorTarget).text(vendorLabel+' 
                    '+$(vendorVal).val());
                    $(vendorTarget).text("here is your text");
                }
            } 
        });
    });
    </script>
    <?php
    endif;
}

但是我无法在产品meta部分下打印“ Matrijal”产品属性选择的名称值。

产品属性名称为“ Matrijal”(子弹“ mats” ……例如,术语名称为“ Zlato” (和子弹“ zlato”)

有什么帮助吗?

LoicTheAztec

您正在使事情变得更复杂,以至于它们应该……

这是一种轻巧有效的方法,可以将特定的所选变体自定义值(来自特定的产品属性)添加到单个产品元数据之后的其他html上。

您只需要在第一个函数中定义正确的产品属性分类法。

代码:

// Add custom variation data to variation form data
add_filter( 'woocommerce_available_variation', 'add_variation_vendor_value', 10, 3 );
function add_variation_vendor_value( $data, $product, $variation ) {
    // Here define the targeted taxonomy used in product variation
    $taxonomy  = 'pa_mats';

    $term_name = $variation->get_attribute($taxonomy);

    if( ! empty($term_name) ) {
        $data['vendor_value'] = $term_name;
    }
    return $data;
}

// Display after product meta an empty span html on variable products 
add_action( 'woocommerce_product_meta_end', 'display_product_vendors', 10 );
function display_product_vendors() {
    global $product;

    if ( $product->get_type() === 'variable' ) {
        echo '<span class="posted_in vendors"></span>';
    }
}

// Fill in our html "span" with specific text value from selected variation
add_action('woocommerce_after_variations_form', 'custom_product_variation_js');
function custom_product_variation_js() {
    ?>
    <script type="text/javascript">
    jQuery(function($) {
        var $form   = $('form.variations_form'),
            $vendor = $('span.vendors'),
            text    = $vendor.text();

        $form.on('show_variation', function(event, data){ // On selected variation
            if ( data.vendor_value ) {
                $vendor.text( data.vendor_value );
            }
        }).on('hide_variation', function(){ // Not on selected variation
            $vendor.text( text );
        });
    });
    </script>
    <?php
}

代码进入活动子主题(或活动主题)的functions.php文件中。

在具有定义的产品属性(用于变体)分类的可变产品上测试并使用最新的WooCommerce版本(4.9.2)。

请记住,产品属性分类法始终以“ pa _” +产品属性段开头。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

显示WooCommerce自定义产品属性和单个产品上的所有术语

来自分类Dev

从WooCommerce中的变化产品获取自定义字段值和最高价格

来自分类Dev

如何在单个产品页面woocommerce上显示高级自定义字段Google Map

来自分类Dev

通过挂钩在WooCommerce单个产品页面中显示自定义字段值

来自分类Dev

在Woocommerce单个产品页面中显示特定产品标签的自定义内容

来自分类Dev

在 Woocommerce 的前端显示自定义单选和复选框产品设置数据

来自分类Dev

在WooCommerce产品页面中显示自定义产品属性值

来自分类Dev

WooCommerce - 产品变化 - 自定义裁剪尺寸

来自分类Dev

自定义循环上的 Woocommerce 产品变化图像更改

来自分类Dev

Woocommerce 单个产品页面中的自定义内容问题

来自分类Dev

仅在WooCommerce Admin单个订单的手动订单中显示产品自定义字段

来自分类Dev

根据WooCommerce产品类型显示或隐藏管理员自定义设置字段

来自分类Dev

设置产品自定义字段并在购物车,结帐和查看订单中显示值

来自分类Dev

添加产品时,如何在woocommerce产品页面中设置必填(必填)自定义字段值

来自分类Dev

以编程方式更新WooCommerce产品中设置的自定义属性值

来自分类Dev

在WooCommerce电子邮件通知上显示自定义产品图片

来自分类Dev

WooCommerce - 在单个产品页面上创建自定义产品循环

来自分类Dev

在Woocommerce商店和产品类别页面上显示高级自定义字段

来自分类Dev

在WooCommerce的任何地方保存和显示产品选择的自定义数据

来自分类Dev

在 WooCommerce 中保存和显示产品选择的自定义数据

来自分类Dev

WooCommerce:从产品变型中获取自定义字段,并将其显示为变化价格的后缀

来自分类Dev

Woocommerce 中的自定义产品模板和操作挂钩

来自分类Dev

在单个产品页面上显示相关产品中的自定义属性

来自分类Dev

在常规单个产品页面的自定义选项卡中显示“相关产品”

来自分类Dev

在woocommerce网站的产品列表上的快速编辑选项上添加自定义产品字段

来自分类Dev

自定义WooCommerce产品小部件

来自分类Dev

Woocommerce自定义产品文本

来自分类Dev

woocommerce中的自定义产品

来自分类Dev

如何在WooCommerce订单中显示产品自定义字段(自定义SKU)

Related 相关文章

  1. 1

    显示WooCommerce自定义产品属性和单个产品上的所有术语

  2. 2

    从WooCommerce中的变化产品获取自定义字段值和最高价格

  3. 3

    如何在单个产品页面woocommerce上显示高级自定义字段Google Map

  4. 4

    通过挂钩在WooCommerce单个产品页面中显示自定义字段值

  5. 5

    在Woocommerce单个产品页面中显示特定产品标签的自定义内容

  6. 6

    在 Woocommerce 的前端显示自定义单选和复选框产品设置数据

  7. 7

    在WooCommerce产品页面中显示自定义产品属性值

  8. 8

    WooCommerce - 产品变化 - 自定义裁剪尺寸

  9. 9

    自定义循环上的 Woocommerce 产品变化图像更改

  10. 10

    Woocommerce 单个产品页面中的自定义内容问题

  11. 11

    仅在WooCommerce Admin单个订单的手动订单中显示产品自定义字段

  12. 12

    根据WooCommerce产品类型显示或隐藏管理员自定义设置字段

  13. 13

    设置产品自定义字段并在购物车,结帐和查看订单中显示值

  14. 14

    添加产品时,如何在woocommerce产品页面中设置必填(必填)自定义字段值

  15. 15

    以编程方式更新WooCommerce产品中设置的自定义属性值

  16. 16

    在WooCommerce电子邮件通知上显示自定义产品图片

  17. 17

    WooCommerce - 在单个产品页面上创建自定义产品循环

  18. 18

    在Woocommerce商店和产品类别页面上显示高级自定义字段

  19. 19

    在WooCommerce的任何地方保存和显示产品选择的自定义数据

  20. 20

    在 WooCommerce 中保存和显示产品选择的自定义数据

  21. 21

    WooCommerce:从产品变型中获取自定义字段,并将其显示为变化价格的后缀

  22. 22

    Woocommerce 中的自定义产品模板和操作挂钩

  23. 23

    在单个产品页面上显示相关产品中的自定义属性

  24. 24

    在常规单个产品页面的自定义选项卡中显示“相关产品”

  25. 25

    在woocommerce网站的产品列表上的快速编辑选项上添加自定义产品字段

  26. 26

    自定义WooCommerce产品小部件

  27. 27

    Woocommerce自定义产品文本

  28. 28

    woocommerce中的自定义产品

  29. 29

    如何在WooCommerce订单中显示产品自定义字段(自定义SKU)

热门标签

归档