Изменить текст метки поля в форме входа в Woocommerce - PullRequest
0 голосов
/ 02 января 2019

Этот вопрос похож на Переименовать имя пользователя на странице входа в woocommerce

Я пытаюсь изменить ярлык «Имя пользователя или адрес электронной почты» на «Ваш зарегистрированный адрес электронной почты»

See screenshot where I am trying to change the label

Я пытаюсь сделать это без изменения файла шаблона form-login.php.

Пока что я попробовал следующий код:

function wppb_change_text_login( $translated_text, $text ) {
    //Login page
    $original_text = 'Username or email address';
    $new_text = 'Your registered email address';
    if ( $text == $original_text ) {
        $translated_text = $new_text;
    }
}
add_filter( 'gettext', 'wppb_change_text_login', 30, 2 );

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

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Ваш код будет работать, если вы добавите return $translated_text; в конце своей функции , так как в любом хуке фильтра обязательно вернуть отфильтрованное значение.

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

add_filter( 'gettext', 'wppb_change_text_login', 10, 3 );
function wppb_change_text_login( $translated_text, $text, $domain ) {
    // Only on my account registering form
    if ( ! is_user_logged_in() && is_account_page() ) {
        $original_text = 'Username or email address';

        if ( $text === $original_text )
            $translated_text = esc_html__('Your registered email address', $domain );
    }
    return $translated_text;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here

0 голосов
/ 02 января 2019

Для переименования ярлык «Имя пользователя или адрес электронной почты» на «Ваш зарегистрированный адрес электронной почты». Пожалуйста, добавьте следующую функцию в вашу тему function.php

add_filter(  'gettext',  'register_text'  );
add_filter(  'ngettext',  'register_text'  );
function register_text( $translated ) {
     $translated = str_ireplace(  'Username or Email Address',  'Your registered email address',  $translated );
     return $translated;
}

Я протестировал вышеупомянутую функцию с темой магазина, и она работает для меня, пожалуйста, проверьте скриншот https://prnt.sc/m25hwz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...