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

如何在WooCommerce中首次添加商品至购物车时显示30分钟购物提醒?

在WooCommerce实现首次加购提示+30分钟超时清空购物车

当然可以实现这个需求!针对不同技术背景的开发者,我整理了两种实用方案:

方案一:自定义代码实现(适合有开发能力的用户)

这个方案通过WooCommerce的钩子函数来实现,灵活性更高,不需要依赖第三方插件。

1. 检测首次加购并设置会话+显示提示

将以下代码添加到你的主题functions.php文件中,或者自定义插件里:

// 检测首次加购并设置会话+显示提示
add_action('woocommerce_add_to_cart', 'wc_first_add_to_cart_session', 10, 6);
function wc_first_add_to_cart_session($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {
    // 判断是否是首次加购(未记录过加购时间)
    if (!WC()->session->get('first_add_to_cart_time')) {
        // 记录当前时间戳到会话中
        WC()->session->set('first_add_to_cart_time', time());
        // 向用户显示提示消息
        wc_add_notice(__('温馨提示:您拥有30分钟的购物时间,超时后购物车将自动清空,请尽快完成下单!', 'woocommerce'), 'notice');
    }
}

2. 定时检查超时并清空购物车

同样添加到functions.php或自定义插件,处理游客和登录用户的不同存储方式:

// 检查购物车超时并执行清空操作
add_action('woocommerce_init', 'wc_check_cart_timeout');
function wc_check_cart_timeout() {
    $first_add_time = '';
    
    // 区分登录用户和游客的时间存储方式
    if (is_user_logged_in()) {
        $first_add_time = get_user_meta(get_current_user_id(), 'first_add_to_cart_time', true);
    } else {
        $first_add_time = WC()->session->get('first_add_to_cart_time');
    }

    // 判断是否超时(30分钟=1800秒)
    if ($first_add_time && (time() - $first_add_time > 1800)) {
        // 清空购物车
        WC()->cart->empty_cart();
        
        // 清理时间记录,避免重复触发
        if (is_user_logged_in()) {
            delete_user_meta(get_current_user_id(), 'first_add_to_cart_time');
        } else {
            WC()->session->__unset('first_add_to_cart_time');
        }
        
        // 显示超时提示
        wc_add_notice(__('您的购物车已超时,已自动清空,请重新选购商品!', 'woocommerce'), 'error');
    }
}

补充说明

  • 登录用户的购物车数据存储在数据库中,所以用用户元数据记录加购时间;游客则用WooCommerce会话存储。
  • 代码中的提示文本可以根据你的需求自行修改。

方案二:使用插件实现(适合非技术用户)

如果不想写代码,可以借助专门的WooCommerce购物车超时插件,比如Cart Expiration for WooCommerce:

  • 安装并激活插件后,在插件设置页面可以直接设置购物车超时时间为30分钟。
  • 对于首次加购的提示消息,可以通过WooCommerce的「设置→消息」选项自定义,或者使用插件自带的提示功能(部分插件支持自定义触发条件的提示)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:33:19