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

Avada主题WooCommerce分类页如何移除指定即将上线产品的加购及详情按钮

问题根因
  • 原有代码挂载的after_setup_theme钩子触发时机过早,此时分类页的商品循环还未启动,get_the_ID()无法获取到循环内的当前商品ID,所以读取自定义元数据返回null
  • 后台存储的元数据值为大写Yes,但判断条件用了小写yes,大小写不匹配也会导致逻辑不触发
修复后可直接使用的代码
// 替换原有代码,挂载到商品循环项启动的钩子上
add_action( 'woocommerce_before_shop_loop_item', 'adjust_coming_soon_product_buttons', 5 );
function adjust_coming_soon_product_buttons() {
    global $avada_woocommerce;
    $product_id = get_the_ID();
    $coming_soon = get_post_meta( $product_id, 'comingsoon-checkbox', true );
    
    // 同时兼容大小写配置,避免匹配失败
    if ( 'Yes' === $coming_soon || 'yes' === $coming_soon ) {
        // 移除Avada默认的加购、详情按钮
        remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'template_loop_add_to_cart' ), 10 );
        remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'show_details_button' ), 15 );
        // 新增即将上线提示文本
        add_action( 'woocommerce_after_shop_loop_item', 'coming_soon_text', 30 );
    }
}

// 未定义coming_soon_text时可补充这段,自定义提示样式
function coming_soon_text() {
    echo '<p style="color:#dc2626; font-weight:500; margin-top:10px;">即将上线</p>';
}
兼容调整说明

如果替换代码后未生效,可做以下检查:

  • 确认你的Avada版本中两个按钮的挂载优先级,部分新版本Avada会将show_details_button的优先级调整为20,对应修改remove_action中的第三个参数即可
  • 测试前清空所有缓存:包括Avada主题缓存、站点缓存、WooCommerce片段缓存,避免旧缓存干扰效果

内容的提问来源于stack exchange,提问作者Patrick Nelson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 23:06:04