更改我的帐户/密码丢失/页面上的Woocommerce密码丢失文本,无需覆盖模板

时间:2019-05-22 11:03:30

标签: php wordpress woocommerce

Woocommerce丢失密码页面上的标准文本为:

Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.

标签为: Username or email

我在登录页面上使用了Change label “username” to “account number” in WooCommerce registration,并在下面的丢失密码页面上尝试了其他代码

代码1 -这没有影响

add_filter( 'gettext', 'change_lost_usename_label', 10, 3 );
function change_lost_usename_label( $translated, $text, $domain ) {
    if( is_lost_password_page() && ! is_wc_endpoint_url() ) {
            if( $text === 'username or' ) {
            $translated = __( 'Registered', $domain );
        }
    }
    return $translated;
}

代码2 -

add_filter('gettext', 'change_lost_password' );
function change_lost_password($translated) {
    if( is_lost_password_page() ) {
  $translated = str_ireplace('username or email', 'Registered email', $translated);
  return $translated; 
}}

此方法有效,但搞砸了登录页面-请参见下面的屏幕截图 Messed up login page

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

现有代码可以有效地将每个可翻译字符串转换为空结果,从而使您拥有看到的大部分空白的页面内容。与此更接近的方法应该起作用:

add_filter('gettext', 'change_lost_password' );
function change_lost_password($translated) {
   if( is_lost_password_page() && 'Username or email' === $translated) {
      return 'Registered email';
   } else {
      return $translated; 
   }
}

使用gettext过滤器进行翻译可能会使您的网站变慢,因为它们针对每个可翻译字符串运行。因此,如果这对您来说是一个问题,那么您可能想看看一些WordPress翻译插件。

编辑:和用于更改说明文字的代码段:

add_filter('woocommerce_lost_password_message', 'change_lost_password_message');
function change_lost_password_message() {
    return 'Lost your password? Please enter your registered email address. You will receive a link to create a new password via email.';
}