如何更改“有优惠券?” Woocommerce结帐页面中的文本

时间:2018-09-26 00:56:43

标签: php wordpress woocommerce checkout gettext

我正在尝试翻译“有优惠券吗?”使用以下代码在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);

但是它不起作用。

请有人告诉我为什么?

1 个答案:

答案 0 :(得分:0)

  

它不起作用,因为文本不是大写并且您没有使用正确的变量。

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

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文件中。经过测试,可以正常工作。


相关: