如何在WooCommerce中移除Add to Cart按钮且保留商品变体下拉选项
WooCommerce全站隐藏Add to Cart按钮(保留变体下拉、价格显示)
问题原因
你之前的代码冲突是因为 remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); 会直接移除可变商品的整个变体区域(包含下拉菜单、价格、加购按钮三个部分),所以后续针对可变商品加购按钮的移除代码自然无法生效,因为挂载的父区域已经被删掉了。
完整可用代码
把下面的代码添加到你当前主题的functions.php文件,或者自定义代码片段插件中即可:
// 1. 移除商店列表/归档页所有商品的Add to Cart按钮 remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); // 2. 商品详情页分类型处理:移除简单商品的加购区域,保留可变商品的变体区域 add_action( 'woocommerce_single_product_summary', 'custom_remove_add_to_cart_by_product_type', 1 ); function custom_remove_add_to_cart_by_product_type() { global $product; // 仅对简单商品移除整个加购模板 if ( $product->is_type( 'simple' ) ) { remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); } } // 3. 移除可变商品详情页的Add to Cart按钮,保留变体下拉、价格显示 remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
效果说明
- 全站所有商品列表页、详情页均不显示Add to Cart按钮
- 简单商品详情页正常显示价格、商品描述等内容
- 可变商品详情页正常显示变体下拉选择框、选中变体后的实时价格,不会被连带隐藏
- 完全不影响你用WPForms实现的加购、结账逻辑
内容的提问来源于stack exchange,提问作者Ray Essop
相关产品推荐
相关产品推荐

