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

WooCommerce商品追加销售标题翻译代码失效求助

WooCommerce追加销售标题翻译失效问题

问题描述

我用一段代码翻译WooCommerce里其他翻译插件未识别的文本,95%的未翻译字符串都能生效,但商品追加销售的“You may also like…”标题始终无效,连Loco Translate也处理不了这个字符串,请问原因是什么?

用到的代码如下:

// Alter WooCommerce View Cart Text
add_filter( 'gettext', function( $translated_text ) {
    if ( 'You may also like…' === $translated_text ) {
        $translated_text = 'To moze Ci sie spodobac';
    }
    return $translated_text;
} );

原因分析

  • 字符串精准匹配失败:你代码里用的是全角省略号…,但WooCommerce源码中该标题的省略号大概率是半角...,或者字符串存在空格、大小写等细微差异,导致全等匹配没命中。
  • 钩子参数不全且优先级低:gettext钩子默认优先级为10,可能被其他主题/插件抢先修改了该字符串;另外你只使用了$translated_text一个参数,未限定woocommerce文本域,无法精准锁定目标字符串。
  • 专属钩子绕过了gettext流程:WooCommerce的追加销售标题有专属过滤钩子woocommerce_upsells_title,该字符串的输出根本不走常规的gettext翻译流程,所以你的代码无法捕获。

解决办法

方法1:修正匹配规则并限定文本域

补全gettext钩子的参数,同时确认源码中的原始字符串(可查看WooCommerce的includes/wc-template-functions.php文件里的woocommerce_upsell_display函数):

add_filter( 'gettext', function( $translated_text, $text, $domain ) {
    // 限定只处理WooCommerce的文本
    if ( 'woocommerce' === $domain && 'You may also like...' === $text ) {
        $translated_text = 'To moze Ci sie spodobac';
    }
    return $translated_text;
}, 20, 3 ); // 提高优先级到20,确保晚于其他修改执行

如果源码里是全角省略号,就把匹配文本改成'You may also like…'。

方法2:使用专属钩子直接修改

针对追加销售标题的专属钩子修改,精准度更高:

add_filter( 'woocommerce_upsells_title', function( $title ) {
    return 'To moze Ci sie spodobac';
} );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:32:45