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

求助:如何修改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模板文件:

  1. 在你的子主题目录下创建woocommerce/checkout文件夹(无则新建)
  2. 复制WooCommerce插件目录中的wp-content/plugins/woocommerce/templates/checkout/form-coupon.php文件到上述子主题文件夹
  3. 打开子主题中的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>
    
  4. 将其中的Apply coupon替换为你的阿拉伯语文本,例如:
    <button type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'تطبيق القسيمة', 'woocommerce' ); ?>"><?php esc_html_e( 'تطبيق القسيمة', 'woocommerce' ); ?></button>
    
  5. 保存文件后刷新页面即可生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:01:01