在 Woocommerce 中没有选择变化的情况下更改添加到购物车操作的警报文本

Ali*_*eda 0 php wordpress product gettext woocommerce

在 Wordpress 中,我正在使用 Woocommerce v3.3.5 并在可变产品的单个产品页面中,当我单击添加到购物车按钮而我没有选择变体选项时,它会弹出一个警报,上面写着:

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

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

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

小智 8

WooCommerce 有一个过滤器“woocommerce_get_script_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;
}
Run Code Online (Sandbox Code Playgroud)

如果 WooCommerce 更改此翻译,您将遇到接受答案的问题,您的条件将是错误的。


小智 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;
}
Run Code Online (Sandbox Code Playgroud)

替换###INSERT YOUR VARIABLE HERE###为以下任何内容(变量 => 默认消息/错误/文本):

  • 'i18n_no_matching_variations_text' => '抱歉,没有符合您选择的产品。请选择不同的组合。
  • 'i18n_make_a_selection_text' => '在将此产品添加到您的购物车之前,请选择一些产品选项。'
  • 'i18n_unavailable_text' => '抱歉,此产品不可用。请选择不同的组合。

您可以使用以下方法复制代码以替换多个全店错误:

自定义错误 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' );