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

WooCommerce移除加入购物车按钮失败求助(Newspaper主题)

解决WooCommerce移除加入购物车按钮失效问题

原代码的问题

你写的这段代码有两个关键问题:

  • 函数名WC和WooCommerce内置的全局函数重名,会导致函数执行异常或被覆盖
  • 仅定义了函数但未挂载到WordPress钩子上,代码根本没被触发执行

正确的基础修复代码

把下面的代码添加到子主题的functions.php中(别改核心文件,插件更新会覆盖修改):

function remove_add_to_cart_buttons() {
    // 移除商店循环页面的加入购物车按钮(优先级和原钩子一致)
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    // 移除单产品页面的加入购物车按钮(优先级和原钩子一致)
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
// 挂载到init钩子,确保在WooCommerce加载后执行
add_action( 'init', 'remove_add_to_cart_buttons' );

注意必须带上优先级参数(比如后面的10、30),remove_action需要和原add_action的优先级完全匹配才能生效,这是很多人忽略的点。

Newspaper主题的特殊处理

如果上面的代码还是无效,说明Newspaper主题可能自定义了加入购物车按钮的显示逻辑,没使用WooCommerce默认钩子:

  • 找主题专属钩子:打开主题的WooCommerce相关模板文件(比如woocommerce/loop/add-to-cart.php或主题自带的产品模板),查看主题用什么钩子输出按钮(比如可能是td_wc_after_shop_loop_item这类主题专属钩子),找到后用remove_action移除即可。
  • CSS应急隐藏:如果找不到钩子,直接用CSS隐藏按钮,添加到子主题的style.css或后台自定义CSS里:
/* 隐藏商店循环页面的加入购物车按钮 */
.woocommerce ul.products li.product .add_to_cart_button {
    display: none !important;
}
/* 隐藏单产品页面的加入购物车按钮 */
.woocommerce div.product form.cart .single_add_to_cart_button {
    display: none !important;
}

重要提醒

  • 绝对不要修改WooCommerce核心文件(比如WC-template-hooks.php),插件更新会直接覆盖你的修改。
  • 所有自定义代码都要放在子主题里,避免主题更新丢失修改。

内容的提问来源于stack exchange,提问作者Manoj Redhu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:56:06