如何更改 Woocommerce 结帐页面中的 "Have a coupon?" 文本

How to change "Have a coupon?" text in Woocommerce checkout page

我正在尝试使用以下代码翻译 "Have a coupon?" Woocommerce 结帐页面中的文本:

function custom_strings_translation( $translated_text, $text, $domain ) {
  switch ( $translated_text ) {
    case 'HAVE A COUPON?' : 
        $translated_text =  __( 'TIENES UN CUPÓN?', '__x__' );
        break;
}

  return $translated_text;
}
add_filter('gettext', 'custom_strings_translation', 20, 3);

但是没用。

有人能告诉我为什么吗?

It doesn't work because the text is not in capitals and you are not using the right variable.

有两种方法可以更改此文本(第二种方法似乎最好):

1) 以这种方式使用 gettext 过滤器挂钩:

add_filter('gettext', 'custom_strings_translation', 20, 3);
function custom_strings_translation( $translated_text, $text, $domain ) {
    if( $text == 'Have a coupon?' ){
        $translated_text =  __( 'Tienes un cupón?', $domain );
    }
    return $translated_text;
}

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


2) 使用 woocommerce_checkout_coupon_message 过滤器钩子可以让您进行更多更改:

add_filter( 'woocommerce_checkout_coupon_message', 'custom_checkout_coupon_message', 20, 1 );
function custom_checkout_coupon_message( $notice ) {
    return __( 'Tienes un cupón?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Haga clic aquí para ingresar su código', 'woocommerce' ) . '</a>'
}

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


相关: