在Woocommerce登录表单上更改字段标签文本

时间:2019-01-02 11:48:26

标签: php wordpress woocommerce gettext account

此问题类似于Rename username label on woocommerce login page

我正在尝试将标签“用户名或电子邮件地址”更改为“您的注册电子邮件地址”

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 :(得分:2)

如果您在函数的末尾添加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

答案 1 :(得分:0)

要将“用户名或电子邮件地址”标签重命名为“您的注册电子邮件地址”,请在主题函数中添加以下功能。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