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

WooCommerce加购链接如何设置加购时应用促销价而非标准价

WooCommerce 加购链接专属应用促销价实现方案

WooCommerce 原生加购链接不支持直接携带参数自动应用促销价,你可以通过添加自定义参数+挂载系统钩子的方式实现需求,不会影响产品详情页的原价展示规则,具体操作如下:

步骤1:调整加购链接格式

在原有加购链接末尾添加自定义标识参数apply_sale=1,调整后链接如下:

https://yourdomain.com/?add-to-cart=25&apply_sale=1

步骤2:添加功能代码

将以下代码复制到当前WordPress主题的functions.php文件末尾,或者自定义功能插件的代码文件中即可生效:

// 加购时存储自定义标识到购物车项元数据
add_filter('woocommerce_add_cart_item_data', function($cart_item_data, $product_id) {
    if (isset($_GET['apply_sale']) && $_GET['apply_sale'] == 1) {
        $cart_item_data['use_sale_price'] = true;
        // 避免不同加购方式的同商品被合并
        $cart_item_data['unique_key'] = md5(microtime().rand());
    }
    return $cart_item_data;
}, 10, 2);

// 购物车结算时对带标识的商品应用促销价
add_action('woocommerce_before_calculate_totals', function($cart) {
    if (is_admin() && !defined('DOING_AJAX')) return;
    foreach ($cart->get_cart() as $item) {
        if (isset($item['use_sale_price']) && $item['use_sale_price']) {
            $sale_price = $item['data']->get_sale_price();
            if ($sale_price) $item['data']->set_price($sale_price);
        }
    }
});

// 产品详情页仅展示常规售价,隐藏促销价
add_filter('woocommerce_get_price_html', function($price_html, $product) {
    // 仅针对ID为25的产品生效,可删除该判断适配所有产品
    if (is_product() && $product->get_id() == 25) {
        $regular_price = wc_get_price_to_display($product, ['price' => $product->get_regular_price()]);
        return wc_price($regular_price) . $product->get_price_suffix();
    }
    return $price_html;
}, 10, 2);

注意事项

  • 需提前在产品后台编辑页设置好对应产品的促销价,代码会直接读取你已配置的促销价,不会接受前端自定义传价,无恶意改价安全风险
  • 修改代码后需清空WordPress站点缓存和浏览器缓存再测试
  • 只有走带apply_sale=1参数的加购链接才会触发促销价,直接在详情页加购仍会使用常规售价

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:02