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

如何在WordPress中修改WooCommerce默认提示且避免被更新覆盖

安全修改WooCommerce系统提示文本的方法(避免插件更新覆盖)

方法一:使用WordPress gettext 过滤钩子

这是单文本修改最灵活的方式,无需额外工具,直接通过代码实现。所有通过WordPress翻译函数(__()、_e())输出的文本都能被拦截替换。

将以下代码添加到当前主题的functions.php文件或自定义功能插件中:

add_filter( 'gettext', 'custom_woocommerce_text_replace', 20, 3 );
function custom_woocommerce_text_replace( $translated_text, $text, $domain ) {
    // 仅针对WooCommerce的文本域生效
    if ( 'woocommerce' === $domain ) {
        // 匹配原文本并替换为自定义内容
        switch ( $translated_text ) {
            case 'Your password has been reset successfully':
                $translated_text = 'Your password has been set';
                break;
            // 可在此添加更多需要替换的文本
            // case '原文本内容':
            //     $translated_text = '自定义文本';
            //     break;
        }
    }
    return $translated_text;
}
  • 原理:gettext钩子会在文本被翻译输出前触发,指定只处理WooCommerce的文本域(woocommerce),精准替换目标文本。
  • 优势:修改精准,无需处理批量文本,插件更新后代码不受影响(主题或自定义插件不会被WooCommerce更新覆盖)。

方法二:创建自定义语言包

适合批量修改多个文本,或需要维护多语言场景的需求,完全符合WooCommerce的国际化设计规范。

  1. 下载WooCommerce的基础语言模板文件:/wp-content/plugins/woocommerce/i18n/languages/woocommerce.pot
  2. 使用Poedit(免费翻译工具)打开该文件,搜索目标文本Your password has been reset successfully,将其翻译为Your password has been set
  3. 保存文件时按规则命名:woocommerce-[语言代码].po(比如英文对应woocommerce-en_US.po),Poedit会自动生成对应的.mo文件
  4. 将生成的.po和.mo文件上传到wp-content/languages/plugins/目录下(目录不存在则手动创建)
  • 原理:WordPress会优先加载用户自定义目录下的语言包,而非插件自带的语言文件,因此WooCommerce更新时不会覆盖该目录下的文件。
  • 优势:适合批量修改,符合官方国际化流程,便于后续维护多语言版本。

注意:绝对不要直接修改WooCommerce插件目录下的核心文件(如class-wc-shortcode-my-account.php或自带语言文件),插件更新时这些文件会被完全替换,修改内容会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:00:22