Как применить код купона после закрытия всплывающего окна? - PullRequest
0 голосов
/ 26 февраля 2020

Справочная информация:

У меня есть всплывающее окно, которое запрашивает электронные письма от пользователей. Если они завершат отправку электронного письма, я хотел бы автоматически применить код купона, если они впоследствии совершат покупку при оформлении заказа.

Чтобы применить коды купона, все пользователи должны получить доступ к ссылке с /?coupon_code=xxxx в конце URL.

Этот код был получен здесь: ПОЛУЧИТЕ код купона через URL и примените его на странице оформления заказа WooCommerce

Проблема:

Как добавить /?coupon_code=xxxx, когда пользователь закрывает всплывающее окно?

Что я пробовал:

Я пытался использовать предлагаемое здесь решение ( Изменить URL без ссылки sh на странице ). Это то, что я вставил.

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

Хотя это работает при изменении URL, я обнаружил, что код купона не применяется при оформлении заказа. Однако, если я вручную ввел полный URL-адрес и обновил страницу, например. www.test.com/?coupon_code=xxxx, код купона будет применен при оформлении заказа.

Спасибо.

1 Ответ

0 голосов
/ 26 февраля 2020

Будет ли в этом сценарии работать запрос 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
}

надеюсь, что это поможет!

Изменить: объяснить, почему это работает

Когда Вы изменяете историческое состояние, все, что затрагивается, это локальное состояние браузера. Чтобы применить код купона, вам действительно нужно сделать http-запрос к предоставленному вами URL-адресу, что и делает API выборки. Это асинхронный, поэтому мы используем async / await. Это также можно сделать цепочкой .then (), если вы предпочитаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...