WooCommerce:为无定价商品修改“加入购物车”按钮文本
解决方案
要同时实现无定价商品替换价格显示文本和修改对应商品的“加入购物车”按钮文本,可以将两段代码逻辑整合,以下是合并后的完整代码:
// 替换无定价商品的价格显示文本 function add_inquiry_link_instead_price( $price, $product ) { if ( '' === $product->get_price() || 0 == $product->get_price() ) { return '<span class="price_on_inquiry">价格待定</span>'; // 可自定义价格替换文本 } return $price; } add_filter( 'woocommerce_get_price_html', 'add_inquiry_link_instead_price', 100, 2 ); // 修改无定价商品的加入购物车按钮文本 function woocommerce_custom_product_add_to_cart_text( $text, $product ) { // 判断商品是否无定价或价格为0 if ( '' === $product->get_price() || 0 == $product->get_price() ) { return __( '了解更多详情', 'woocommerce' ); } // 有定价商品保留默认按钮文本 return $text; } // 指定接收2个参数,确保能获取商品对象用于判断 add_filter( 'woocommerce_product_add_to_cart_text', 'woocommerce_custom_product_add_to_cart_text', 10, 2 );
关键说明:
- 原按钮文本修改代码未接收
$product参数,无法判断商品价格状态,现在通过在add_filter中添加第三个参数2,让函数能获取商品对象。 - 按钮文本函数中增加价格判断逻辑,仅对无定价/0元商品修改按钮文本,其余商品保留默认的“加入购物车”。
- 价格替换文本可根据需求自行修改(比如改成“询价”等)。
内容的提问来源于stack exchange,提问作者Benb1
相关产品推荐
相关产品推荐

