[英]How to apply coupon code after users close popup?
背景:
我有一個要求用戶發送電子郵件的彈出窗口。 如果他們完成電子郵件提交,如果他們隨后在結賬時購買,我想自動應用優惠券代碼。
對於要應用的優惠券代碼,所有用戶所要做的就是訪問 URL 末尾帶有/?coupon_code=xxxx
的鏈接。
此代碼是在此處獲得的: 通過 URL 獲取優惠券代碼並將其應用於 WooCommerce Checkout 頁面
問題:
當用戶關閉彈出窗口時,如何添加/?coupon_code=xxxx
?
我嘗試過的:
我嘗試使用此處提供的解決方案( 更改 URL 而不刷新頁面)。 這是我插入的。
history.pushState(null, '', '/?coupon_code=xxxx');
雖然這適用於更改 url,但我發現在結帳時未應用優惠券代碼。 但是,如果我手動輸入完整的 url 並刷新頁面,例如。 www.test.com/?coupon_code=xxxx
,優惠券代碼將在結賬時使用。
謝謝你。
在這種情況下,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() 來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.