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

WooCommerce:将指定产品变体价格替换为Price on request

替换WooCommerce指定产品变体价格为“Price on request”

代码实现

将以下代码添加到你的主题functions.php文件,或通过自定义代码插件(如Code Snippets)导入:

// 定义需要替换价格的变体ID列表
function get_request_price_variation_ids() {
    return array( 123, 456 ); // 替换为你的目标变体ID
}

// 替换变体价格的静态显示
add_filter( 'woocommerce_get_price_html', 'replace_variation_price_with_request_text', 10, 2 );
function replace_variation_price_with_request_text( $price, $product ) {
    // 仅针对变体产品生效
    if ( $product->is_type( 'variation' ) ) {
        $target_variations = get_request_price_variation_ids();
        if ( in_array( $product->get_id(), $target_variations ) ) {
            return '<span class="price">Price on request</span>';
        }
    }
    return $price;
}

// 处理变体选择后的动态价格更新
add_action( 'woocommerce_variable_add_to_cart', 'handle_variation_selection_price_update' );
function handle_variation_selection_price_update() {
    global $product;
    $default_parent_price = $product->get_price_html();
    $target_ids = json_encode( get_request_price_variation_ids() );
    
    wc_enqueue_js( "
        $(document).on('found_variation', 'form.cart', function( event, variation ) {
            var targetVariationIds = {$target_ids};
            if ( targetVariationIds.includes(variation.variation_id) ) {
                $('.summary > p.price').html('<span class=\"price\">Price on request</span>');
                $('.woocommerce-variation-price').hide();
            } else {
                if(variation.price_html) $('.summary > p.price').html(variation.price_html);
                $('.woocommerce-variation-price').hide();
            }
        });
        
        $(document).on('hide_variation', 'form.cart', function( event, variation ) {
            $('.summary > p.price').html('" . addslashes( $default_parent_price ) . "');
        });
    " );
}

配置说明

  1. 修改目标变体ID:找到代码里的get_request_price_variation_ids函数,把数组里的123、456替换成你需要修改的变体ID(可在WooCommerce产品编辑页的“变体”标签下查看每个变体的ID)。
  2. 效果覆盖:这段代码会处理两种场景:
    • 单个变体产品页面的价格直接替换为文本
    • 父可变产品页面,选择目标变体后自动更新显示文本,未选择变体时恢复父产品默认价格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:01:08