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

购物车存在指定商品时显示提示文本的实现问题

问题解决:购物车指定商品显示优惠券提示

原代码失效的核心原因是你直接引用了$cart_item变量,但在cart.php第149行的位置并没有遍历购物车项的循环,这个变量根本未定义,自然拿不到商品ID,只会输出空段落。

下面是修正后的代码,替换你原来的那段即可:

<p>
<?php
// 获取WooCommerce购物车实例
$cart = WC()->cart;
// 定义需要触发提示的商品ID集合
$target_product_ids = array(15502, 15566, 15567, 18946, 18947, 18948, 16199);
$has_target_product = false;

// 遍历购物车中的所有商品项
foreach ($cart->get_cart() as $cart_item) {
    // 获取当前商品的ID(优先取变体ID,没有则取主商品ID)
    $product_id = $cart_item['variation_id'] > 0 ? $cart_item['variation_id'] : $cart_item['product_id'];
    // 检查是否在目标ID集合中
    if (in_array($product_id, $target_product_ids)) {
        $has_target_product = true;
        break; // 找到一个就停止遍历,提升性能
    }
}

// 如果存在目标商品,输出提示文本
if ($has_target_product) {
    echo '您可以使用优惠券"x"兑换免费贺卡!';
}
?>
</p>

代码逻辑说明

  • 通过WC()->cart获取购物车对象,确保能拿到完整的购物车商品数据
  • 用数组存储目标商品ID,比一堆||判断更简洁易维护
  • 遍历购物车所有商品项,逐个检查商品ID是否匹配目标集合
  • 一旦找到匹配项就标记并终止循环,避免不必要的性能消耗
  • 最后根据标记结果判断是否输出提示文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:10:17