用户关闭弹窗后如何申请优惠码?
Posted
技术标签:
【中文标题】用户关闭弹窗后如何申请优惠码?【英文标题】: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
,优惠券代码将在结帐时使用。
谢谢。
【问题讨论】:
【参考方案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 来实现我想要的吗?原因是我对实现您的解决方案的编程了解不够。以上是关于用户关闭弹窗后如何申请优惠码?的主要内容,如果未能解决你的问题,请参考以下文章
云服务器ECS优惠券 阿里云 ecs 5折优惠码 阿里云5折优惠码 阿里云5折推荐码 阿里云优惠码 阿里云的5折优惠券 阿里云服务器购买优惠码 服务器购买优惠码