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

Change the alert text on add to cart action without selected variation in Woocommerce

在 Wordpress 中,我使用的是 Woocommerce v3.3.5,在可变产品的单个产品页面中,当我单击“添加到购物车”按钮时,我没有 select 变体选项,它会弹出一个警告说:

Please select some product options before adding this product to your cart.

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

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

试试这个,它应该可以解决您的问题:

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

代码进入您的活动子主题(或活动主题)的 function.php 文件。它已经过测试并且有效。

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

如果 WooCommerce 更改此翻译,您将对已接受的答案有疑问,您的条件将是错误的。

对于那些无法使代码工作的人,这是因为 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### 替换为以下任何一项(VARIABLE => 默认值 Message/Error/Text):

  • 'i18n_no_matching_variations_text' => 'Sorry, no products matched your selection. Please choose a different combination.'
  • 'i18n_make_a_selection_text' => 'Please select some product options before adding this product to your cart.'
  • 'i18n_unavailable_text' => 'Sorry, this product is unavailable. Please choose a different combination.'

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

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

已添加到 function.php 此代码

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

函数change_alert_text($params, $handle){ 如果($句柄==='wc-add-to-cart-variation') $params['Please select some product options before adding this product to your cart.'] = __( 'Your new alert text', 'sivona.ee' ); return $参数; }

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