代码之家  ›  专栏  ›  技术社区  ›  Ali Beshir

在Woocommerce中更改“添加到购物车”操作的警报文本,而不选择任何变化

  •  1
  • Ali Beshir  · 技术社区  · 6 年前

    在Wordpress中,我使用的是Woocommerce v3。3.5和在可变产品的单产品页面中,当我单击“添加到购物车”按钮而不选择可变选项时,会弹出一个警报,提示:

    在将此产品添加到购物车之前,请选择一些产品选项。

    到目前为止,这是合乎逻辑的。。

    我的问题是如何将警报文本更改为其他内容以适合我的业务?

    4 回复  |  直到 6 年前
        1
  •  9
  •   Keylies    6 年前

    WooCommerce有一个过滤器“WooCommerce\u get\u script\u data”,用于所有发送到JavaScript的数据,包括翻译文本。 因此,这是更改此文本的正确方法:

    add_filter( 'woocommerce_get_script_data', 'change_alert_text', 10, 2 );
    function change_alert_text( $params, $handle ) {
        if ( $handle === 'wc-add-to-cart-variation' )
            $params['i18n_unavailable_text'] = __( 'Your new alert text', 'domain' );
    
        return $params;
    }
    

    如果WooCommerce更改此翻译,您将对接受的答案有问题,您的条件将为false。

        2
  •  6
  •   Das_Geek Narendra Chennamsetti    5 年前

    对于那些无法让代码工作的人来说,这是因为Keylies代码调用的变量使用了错误的变量。

    正确的变量遵循相同的编码约定,并且适应性极强。

    您可以编辑 public_html/YOURDOMAIN/wp-content/plugins/woocommerce/includes/class-wc-frontend-scripts.php

    或者将下面的代码片段(包含相关变量)放入主题中 functions.php 文件

    add_filter( 'woocommerce_get_script_data', 'change_alert_text', 10, 2 );
    function change_alert_text( $params, $handle ) {
        if ( $handle === 'wc-add-to-cart-variation' )
            $params['###INSERT YOUR VARIABLE HERE###'] = __( 'Your new alert text', 'domain' );
        return $params;
    }
    

    代替 ###INSERT YOUR VARIABLE HERE### 使用以下任一选项(变量=>默认消息/错误/文本):

    • 'i18n\u no\u matching\u variances\u text'=>'抱歉,没有与您选择的产品匹配的产品。请选择其他组合。”
    • “i18n\u make\u a\u selection\u text”=>'在将此产品添加到购物车之前,请选择一些产品选项。”
    • “i18n\u不可用\u文本”=>'抱歉,此产品不可用。请选择其他组合。”

    您可以使用以下方法复制代码以替换多个车间范围的错误:

    自定义错误1: $params['i18n_make_a_selection_text'] = __( 'Hey, you... yeah you... make a selection!', 'domain' );

    自定义错误2: $params['i18n_unavailable_text'] = __( 'Oh no we've run out of that product but it's not the end of the world it'll be back soon', 'domain' );

        3
  •  3
  •   LoicTheAztec    6 年前

    试试这个,它会解决你的问题:

    add_filter( 'gettext', 'customizing_variable_product_message', 97, 3 );
    function customizing_variable_product_message( $translated_text, $untranslated_text, $domain )
    {
        if ($untranslated_text == 'Please select some product options before adding this product to your cart.') {
            $translated_text = __( 'Here goes your custom text', $domain );
        }
        return $translated_text;
    }
    

    代码进入功能。活动子主题(或活动主题)的php文件。它已经过测试,可以工作了。

        4
  •  0
  •   Steve    4 年前

    已添加到函数。php此代码

    add_filter( 'woocommerce_get_script_data', 'change_alert_text', 10, 2 );
    

    函数change\u alert\u text($参数,$句柄){ 如果($handle===“wc添加到购物车变体”) $参数[“请在将此产品添加到购物车之前选择一些产品选项。”]=\uu(“您的新警报文本”,“sivona.ee”); 返回$参数; }

    但仍然: https://prnt.sc/samecx