【问题标题】:How to apply coupon code after users close popup?用户关闭弹窗后如何申请优惠码?
【发布时间】:2020-06-09 23:33:36
【问题描述】:

背景:

我有一个请求用户发送电子邮件的弹出窗口。如果他们完成电子邮件提交,我想在他们随后在结帐时购买时自动应用优惠券代码。

要应用优惠券代码,所有用户只需访问网址末尾带有/?coupon_code=xxxx 的链接。

此代码在此处获得:GET a coupon code via URL and apply it in WooCommerce Checkout page

问题:

当用户关闭弹窗时如何添加/?coupon_code=xxxx

我尝试过的:

我已尝试使用此处提供的解决方案 (Change URL without refresh the page)。这是我插入的。

history.pushState(null, '', '/?coupon_code=xxxx');

虽然这可以更改网址,但我发现在结帐时未应用优惠券代码。但是,如果我手动输入完整的网址并刷新页面,例如。 www.test.com/?coupon_code=xxxx,优惠券代码将在结帐时使用。

谢谢。

【问题讨论】:

    标签: javascript woocommerce


    【解决方案1】:

    在这种情况下是否可以进行 AJAX/fetch 请求?我不完全确定我理解这个问题,但也许你可以试试:

    
    let onClose = async () => {
        let response = await fetch(‘/?coupon_code=xxxx’);
        let data = await response.json();
        return data; //returns the result of your request to the coupon code URL
    }
    

    希望这会有所帮助!

    编辑:解释为什么会这样

    当您更改历史状态时,受影响的只是浏览器的本地状态。要应用优惠券代码,您实际上需要向您提供的 URL 发出 http 请求,这就是 fetch API 所做的。它是异步的,这就是我们使用 async/await 的原因。如果您愿意,也可以通过链接 .then() 来完成。

    【讨论】:

    • 谢谢。我可以知道是否有一种方法可以仅使用 javascript 来实现我想要的吗?原因是我对实现您的解决方案的编程了解不够。
    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2020-07-06
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多