WooCommerce缺失翻译字符串对应过滤器钩子查询
WooCommerce前端待翻译字符串对应过滤器及查找方法
各目标字符串对应可用过滤器
以下钩子适配WooCommerce 7.0+官方版本,直接替换返回值为目标翻译文本即可:
- "Coupon Code"(优惠券区块标题):对应钩子
woocommerce_cart_coupon_label
示例代码:add_filter('woocommerce_cart_coupon_label', function(){ return '替换为你的翻译文本'; }); - "Code here"(优惠券输入框占位符):对应钩子
woocommerce_coupon_code_placeholder
若当前WooCommerce版本无该专属钩子,可直接使用后文提到的gettext全局过滤器替换。
示例代码:add_filter('woocommerce_coupon_code_placeholder', function(){ return '替换为你的翻译文本'; }); - "Apply coupon"(应用优惠券按钮文本):对应钩子
woocommerce_apply_coupon_button_text
示例代码:add_filter('woocommerce_apply_coupon_button_text', function(){ return '替换为你的翻译文本'; }); - "Update cart"(更新购物车按钮文本):对应钩子
woocommerce_cart_update_button_text
示例代码:add_filter('woocommerce_cart_update_button_text', function(){ return '替换为你的翻译文本'; }); - "Back to cart"(返回购物车链接文本):对应钩子
woocommerce_checkout_back_to_cart_text
示例代码:add_filter('woocommerce_checkout_back_to_cart_text', function(){ return '替换为你的翻译文本'; }); - "Your order"(结账页订单概览区块标题):对应钩子
woocommerce_checkout_order_review_title
示例代码:add_filter('woocommerce_checkout_order_review_title', function(){ return '替换为你的翻译文本'; }); - "Related"(相关产品短标签/前缀文本):该文本无统一专属过滤器,你之前替换"Related Products"使用的
woocommerce_product_related_products_heading仅针对完整标题,单独出现的"Related"短文本建议直接使用gettext全局过滤器替换。
翻译类钩子常规查找方法
- 模板溯源法:WooCommerce所有前端输出的文本,都存放在插件目录下的
templates/文件夹内的对应模板文件中。直接在该目录搜索你要找的原始英文字符串,定位到字符串输出的代码位置,附近的apply_filters()函数调用的第一个参数,就是该文本对应的专属过滤器钩子。你之前用到的woocommerce_product_related_products_heading,就可以在templates/single-product/related.php文件中直接找到。 - 全局过滤器兜底法:如果某段文本没有提供专属过滤器,直接使用WordPress核心提供的
gettext全局过滤器,指定匹配woocommerce文本域的字符串进行替换即可,不需要逐一定位钩子,适配所有版本的WooCommerce文本替换,示例代码:add_filter('gettext', 'custom_woo_string_translate', 20, 3); function custom_woo_string_translate($translated, $original_text, $domain){ // 仅处理WooCommerce文本域的内容 if($domain !== 'woocommerce'){ return $translated; } // 逐一定义待替换文本 switch($original_text){ case 'Related': $translated = '替换为你的翻译文本'; break; // 可在下方追加其他待替换字符串 // case '其他原文本': // $translated = '对应翻译'; // break; } return $translated; }
注意:专属过滤器的生效优先级高于全局gettext过滤器,不会被主题、其他插件的翻译逻辑覆盖,优先使用;使用gettext过滤器时建议将优先级参数设为20及以上,避免被WooCommerce默认加载的官方语言包翻译覆盖。
内容的提问来源于stack exchange,提问作者ecommerce direct
相关产品推荐
相关产品推荐

