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

WooCommerce仅开启含available标签商品加购按钮问题

解决WooCommerce仅显示带available标签商品的加入购物车按钮问题

你的代码逻辑存在疏漏:当前只给带有available标签的商品设置$is_purchasable = true,但没有修改无该标签商品的默认可购买状态,所以其他商品依然保持原本的可购买属性,导致加购按钮没被隐藏。

修正后的代码如下:

add_filter( 'woocommerce_is_purchasable', 'only_available_tag_purchasable', 10, 2 );
function only_available_tag_purchasable( $is_purchasable, $product ) {
    // 默认所有商品不可购买
    $is_purchasable = false;
    
    // 仅当商品带有`available`标签时,允许购买
    if( has_term( 'available', 'product_tag', $product->get_id() ) ) {
        $is_purchasable = true;
    }
    
    return $is_purchasable;
}

额外说明:

  • 如果你需要兼容可变产品(Variable Product),还需要添加一个过滤器控制变体的可购买状态,代码如下:
add_filter( 'woocommerce_variation_is_purchasable', 'only_available_tag_variation_purchasable', 10, 2 );
function only_available_tag_variation_purchasable( $is_purchasable, $variation ) {
    $is_purchasable = false;
    // 检查父产品是否带有`available`标签
    if( has_term( 'available', 'product_tag', $variation->get_parent_id() ) ) {
        $is_purchasable = true;
    }
    return $is_purchasable;
}
  • 把代码添加到你的主题functions.php文件中,或者使用自定义代码插件(如Code Snippets)来避免主题更新丢失代码。

内容的提问来源于stack exchange,提问作者Eiman Maghfouri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:25:56