Изменить текст потерянного пароля Woocommerce на моей учетной записи / потерянном пароле / странице без переопределения шаблона - PullRequest
1 голос
/ 22 мая 2019

Стандартный текст на странице Woocommerce Lost Password:

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

Я использовал Измените ярлык «имя пользователя» на «номер счета» при регистрации в WooCommerce для страницы входа и попробовал дополнительные коды ниже для страницы с утерянным паролем

Code1 - Это не влияет

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 голосов
/ 24 мая 2019

Существующий код эффективно переводит каждую переводимую строку в пустой результат, оставляя вас с практически пустым содержимым страницы, которое вы видите. Что-то ближе к этому должно работать:

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.';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...