Рейтинг:0

Как обновить и перезагрузить (с помощью ajax?) панели проверки заказа и расчет заказа независимо от обновления корзины (например, изменение платежного адреса)

флаг fr

У меня следующая проблема:

Во время оформления заказа мой клиент должен указать свой платежный адрес (по крайней мере, в первый раз), чтобы рассчитать ставку НДС и цену брутто. После этого дальнейший расчет выполняется через процессор заказов. Пока это работает нормально.

Моя проблема в том, что обновление заказа в корзине не обновляет панели проверки (например, сводку заказа) через AJAX, когда страна выставления счета (и, возможно, действующая ставка НДС тоже) изменилась. Пользователь должен активно перезагружать страницу в браузере или должен отправить форму, чтобы увидеть эффект, даже если заказ уже был обновлен (и пересчитан) за кулисами.

  1. Как я могу принудительно обновить корзину и пересчитать ее с помощью моего пользовательского обработчика заказов, независимо от интервала обновления заказа в корзине?
  2. Как я могу запустить перезагрузку для своих панелей оформления заказа (в лучшем случае через AJAX из-за лучшего UX), чтобы пользователь вовремя увидел изменения?

Я узнал, что в D7 были хуки для этого, но в D8/D9 хуки и сервисы, кажется, больше не существуют (например, commerce_cart_order_refresh() - видеть: Как я могу программно пересчитать сумму заказа после изменения страны выставления счета ).

Рейтинг:1
флаг kz

Итак, вы хотите обновить некоторый контент на странице, который не является частью формы оформления заказа? По сути, это можно сделать с помощью обратного вызова Ajax и одной или нескольких команд обратного вызова Ajax:

https://www.drupal.org/docs/drupal-apis/ajax-api/core-ajax-callback-команды

Вам нужно будет добавить обратный вызов Ajax в поле страны, используя form_alter(), и в этом обратном вызове возвращаются команды Ajax, необходимые для замены целевого контента, выбранного по классу или идентификатору.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.