首页 > 解决方案 > 通过 URL 添加 WooCommerce 优惠券

问题描述

我在申请优惠券时遇到了麻烦。下面的代码可以正常工作,除非用户第一次访问该站点并且尚未将任何内容添加到购物车中。我需要清除缓存以重现此错误。

function process_url()
{
    if( empty($_GET['coupon']) )
        return;

    // Add the discount.
    global $woocommerce;
    $result = $woocommerce->cart->add_discount($_GET['coupon']);
}
add_action('init', 'process_url');

难道我做错了什么?

标签: wordpresssessionwoocommercesession-cookiescoupon

解决方案


显然,如果您应用优惠券,则不会存储用户会话。您需要先添加产品或执行其他存储会话的操作。不过,我们可以手动完成,即自己创建会话 cookie。

if( !WC()->session->has_session() )
    WC()->session->set_customer_session_cookie(true);

带了我一整天。希望有人能够使用它。


推荐阅读