当订单总额为0时重命名WooCommerce的“Place Order”按钮
WooCommerce 免费订单自定义“Place Order”按钮文本解决方案
没问题,你之前的代码是全局替换了按钮文本,没有判断订单总额是否为0。咱们调整一下,让代码只在订单总额为0的时候生效,其他情况保留默认按钮文本:
add_filter( 'woocommerce_order_button_text', 'misha_custom_free_order_button_text' ); function misha_custom_free_order_button_text( $button_text ) { // 确保WC购物车对象存在,避免报错 if ( ! WC()->cart ) { return $button_text; } // 获取购物车最终总额(已计算折扣、优惠券等后的数值) $cart_total = WC()->cart->get_total('float'); // 判断总额是否为0,是的话替换按钮文本 if ( $cart_total == 0 ) { return '获取免费商品'; // 这里改成你想要的免费订单按钮文本,比如“确认免费订单”都可以 } // 非免费订单,返回原按钮文本 return $button_text; }
代码说明:
- 先检查WC购物车对象是否存在,避免在非结账页面触发错误
get_total('float')获取的是数值类型的最终总额,判断起来更精准- 你可以自由替换代码里的自定义文本,完全贴合你的业务场景
使用方法:
- 把这段代码添加到你的WordPress主题(或子主题)的
functions.php文件末尾 - 或者用专门的自定义代码插件(比如Code Snippets)来添加,这样主题更新时不会丢失代码
内容的提问来源于stack exchange,提问作者Maged Mohamed
相关产品推荐
相关产品推荐

