You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce中“Invalid username”错误消息的来源定位与修改需求

找到并修改WooCommerce的"Invalid username."错误消息

我来帮你定位这个错误消息的来源,以及安全修改它的方法:

一、消息的核心生成位置

这个错误消息是在WooCommerce处理登录请求的核心逻辑里生成的,具体路径是:
wp-content/plugins/woocommerce/includes/class-wc-form-handler.php

在这个文件的process_login()方法中,当系统检测到输入的用户名不存在时,会生成这条错误消息,代码大致如下:

if ( ! $user_exists ) {
    wc_add_notice( sprintf( __( '<strong>ERROR</strong>: Invalid username. <a href="%s">Lost your password?</a>', 'woocommerce' ), esc_url( wc_get_lost_password_url() ) ), 'error' );
}

你之前搜索不到精确字符串的原因是:这条文本是通过WordPress的翻译函数__()包裹的,代码里的写法是'Invalid username.'(带引号和句号),如果直接搜索无引号的字符串,可能会因为文件编码或搜索工具的规则错过它。

二、安全修改错误消息的方法

绝对不建议直接修改WooCommerce核心文件(更新插件后修改会丢失),推荐使用WordPress钩子来实现:

方法1:使用woocommerce_login_errors钩子过滤错误消息

这个钩子专门用于修改登录相关的错误提示,代码可以添加到你的主题functions.php文件或者自定义插件中:

add_filter( 'woocommerce_login_errors', 'custom_wc_login_invalid_username_error', 10, 3 );
function custom_wc_login_invalid_username_error( $error_message, $username, $email ) {
    // 匹配并替换目标错误文本
    if ( strpos( $error_message, 'Invalid username.' ) !== false ) {
        $error_message = str_replace( 'Invalid username.', '你的自定义错误文本', $error_message );
    }
    return $error_message;
}

方法2:使用gettext钩子翻译目标字符串

因为原消息是通过翻译函数生成的,你可以用这个钩子直接替换指定的翻译文本:

add_filter( 'gettext', 'custom_translate_wc_login_error', 20, 3 );
function custom_translate_wc_login_error( $translated_text, $original_text, $domain ) {
    // 只针对WooCommerce的文本,替换目标字符串
    if ( $domain === 'woocommerce' && $original_text === 'Invalid username.' ) {
        $translated_text = '你的自定义错误提示';
    }
    return $translated_text;
}

两种方法都能安全修改错误消息,且不会影响WooCommerce的更新。

内容的提问来源于stack exchange,提问作者WebDevBooster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:47:49