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

如何为WooCommerce单个产品添加自定义价格且不影响关联产品

调整后可直接使用的代码

add_filter('woocommerce_empty_price_html', 'show_alert_info_if_no_price', 10, 1);
function show_alert_info_if_no_price ($product){
    // 调用WooCommerce全局循环变量,判断当前是否为关联产品区域
    global $woocommerce_loop;

    // 关联产品区域统一返回短文本,跳过后续逻辑
    if (isset($woocommerce_loop['name']) && $woocommerce_loop['name'] == 'related') {
        return 'Contact us';
    }

    // 仅产品详情页执行后续展示逻辑
    if (is_product()) {
        $price = $product->get_price();
        if (empty($price)) {
            // 详情页无价格时返回长提示
            return '<div class="alert-info">Produk ini hanya dapat diproses melakukan pemesanan pembelian (PO). Segera hubungi tim kami. <a href="contactus.php">Kontak kami</a></div>';
        } else {
            return 'Contact us';
        }
    }
    // 其他场景默认返回短文本,避免空值异常
    return 'Contact us';
}

逻辑调整说明

  • 优先判断当前循环是否为关联产品区域,符合条件直接返回短文本,完全匹配需求
  • 移除了原代码中冗余的global $product声明,该钩子已直接传入产品对象作为参数,无需重复全局调用
  • 删除了原代码中无用的ob_start()冗余代码,原逻辑未用到输出缓冲相关操作
  • 新增了非详情页、非关联产品区域的默认返回值,避免钩子返回空值导致页面展示异常

内容的提问来源于stack exchange,提问作者Deta Zone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:51:02