求助:如何修改WooCommerce结账页面Apply优惠券按钮文本
解决WooCommerce结账页面“Apply Coupon”按钮文本修改问题
一、修正代码错误(最直接修复)
你之前的代码存在钩子与函数名不匹配的问题(比如钩子用bt_rename_coupon_field_on_cart,但实际函数是njengah_rename_coupon_field_on_cart),导致代码完全不生效。以下是修正后的代码,替换你当前主题/子主题的functions.php代码即可:
// 替换结账/购物车页面的优惠券相关文本 add_filter( 'gettext', 'njengah_rename_coupon_field_on_cart', 20, 3 ); // 专门针对Apply Coupon按钮的钩子(调高优先级确保生效) add_filter( 'woocommerce_button_apply_coupon_text', 'njengah_rename_apply_coupon_button' ); function njengah_rename_coupon_field_on_cart( $translated_text, $text, $text_domain ) { if ( is_admin() || 'woocommerce' !== $text_domain ) { return $translated_text; } // 替换各类优惠券相关文本 switch ( $text ) { case 'Coupon:': $translated_text = 'القسيمة:'; // 可根据需求调整阿拉伯语翻译 break; case 'Coupon has been removed.': $translated_text = 'تم إزالة القسيمة.'; break; case 'Apply coupon': $translated_text = 'تطبيق القسيمة'; break; case 'Coupon code': $translated_text = 'كود القسيمة'; break; } return $translated_text; } function njengah_rename_apply_coupon_button() { return 'تطبيق القسيمة'; // 直接返回阿拉伯语按钮文本 } // 替换结账页面的提示文本 add_filter( 'woocommerce_checkout_coupon_message', 'njengah_rename_coupon_message_on_checkout' ); function njengah_rename_coupon_message_on_checkout() { return 'لديك كود قسيمة؟' . ' <a href="#" class="showcoupon">' . __( 'اضغط هنا لإدخال الكود', 'woocommerce' ) . '</a>'; } // 替换优惠券错误/提示消息中的文本 add_filter( 'woocommerce_coupon_error', 'njengah_rename_coupon_label', 10, 3 ); add_filter( 'woocommerce_coupon_message', 'njengah_rename_coupon_label', 10, 3 ); function njengah_rename_coupon_label( $err, $err_code = null, $something = null ) { $err = str_ireplace( 'Coupon', 'القسيمة', $err ); return $err; }
二、Loco Translate 正确操作步骤
如果坚持用插件翻译,按以下步骤排查:
- 打开Loco Translate → 插件 → 找到WooCommerce → 选择阿拉伯语(无对应语言则新建)
- 搜索精准字符串:
Apply coupon(注意大小写和空格,必须与原文本完全一致) - 输入对应的阿拉伯语翻译后点击“保存”
- 清除站点所有缓存(页面缓存、浏览器缓存),刷新结账页面查看效果
三、模板覆盖方案(终极解决)
若以上方法均失效,直接修改WooCommerce模板文件:
- 在你的子主题目录下创建
woocommerce/checkout文件夹(无则新建) - 复制WooCommerce插件目录中的
wp-content/plugins/woocommerce/templates/checkout/form-coupon.php文件到上述子主题文件夹 - 打开子主题中的
form-coupon.php,找到以下代码行:<button type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>"><?php esc_html_e( 'Apply coupon', 'woocommerce' ); ?></button> - 将其中的
Apply coupon替换为你的阿拉伯语文本,例如:<button type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'تطبيق القسيمة', 'woocommerce' ); ?>"><?php esc_html_e( 'تطبيق القسيمة', 'woocommerce' ); ?></button> - 保存文件后刷新页面即可生效
内容的提问来源于stack exchange,提问作者Rama Absa
相关产品推荐
相关产品推荐

