Javascript 用户关闭弹出窗口后如何应用优惠券代码?

Javascript 用户关闭弹出窗口后如何应用优惠券代码?,javascript,woocommerce,Javascript,Woocommerce,背景: 我有一个弹出窗口,要求用户发送电子邮件。如果他们完成电子邮件提交,我想应用一个优惠券代码自动,如果他们随后在结帐购买 对于要应用的优惠券代码,所有用户都必须访问url末尾带有/?优惠券\u code=xxxx的链接 此代码在此处获得: 问题: 当用户关闭弹出窗口时,如何添加/?优惠券\u code=xxxx 我尝试过的: 我已尝试使用此处提供的解决方案()。这是我插入的内容 history.pushState(null, '', '/?coupon_code=xxxx'); 虽然这在更

背景:

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

对于要应用的优惠券代码,所有用户都必须访问url末尾带有
/?优惠券\u code=xxxx
的链接

此代码在此处获得:

问题:

当用户关闭弹出窗口时,如何添加
/?优惠券\u code=xxxx

我尝试过的:

我已尝试使用此处提供的解决方案()。这是我插入的内容

history.pushState(null, '', '/?coupon_code=xxxx');
虽然这在更改url时起作用,但我发现优惠券代码并没有在结账时应用。但是,如果我手动输入完整url并刷新页面,例如
www.test.com/?优惠券\u code=xxxx
,优惠券代码将在结帐时应用


谢谢。

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


让onClose=async()=>{
let response=wait fetch(“/?优惠券代码=xxxx”);
让data=wait response.json();
return data;//将请求结果返回到优惠券代码URL
}
希望这有帮助

编辑:解释为什么会这样


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

谢谢。我可以知道是否有一种方法可以只使用javascript实现我想要的吗?原因是我对编程了解不够,无法实现您的解决方案。