@Muvka

Как сохранить в ajax запросе информацию о странице?

В магазине сделал возможность подгрузки товаров с помощью ajax. В целом все хорошо, но проблема в том, что после того, как я подгружаю товары, ломаются ссылки в пагинации. Да, пагинацию тоже обновляю при этом. Сама пагинация остается и все работает, но уже нет возможности правильно скопировать ссылку или открыть страницу в новом окне, т.к. ссылка ведет не туда, куда надо.
Вот пример - wp-admin/admin-ajax.php?paged=2, а должна быть /category/bukety-iz-roz/page/2/.

Дополнение. Нашел, что можно установить руками $_SERVER['REQUEST_URI'], если идет ajax запрос. Это хороший способ?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@Muvka Автор вопроса
Вообщем сделал так:
в js скрипте передаю еще и путь
const data = {
  action: 'load_products',
  paged: Product.paged,
  slug: myajax.slug,
  orderby: Product.orderby,
  path: window.location.pathname
};

В обработчике в functions.php перед пагинацией заменяю REQUEST_URI, а после пагинации возвращаю старый:
if(isset($post['path'])) {
      $old_path = $_SERVER['REQUEST_URI'];
      $_SERVER['REQUEST_URI'] = esc_html($post['path']);
    }

    pagination(array(
      'pages' => $custom_query->max_num_pages,
      'paged' => $paged,
      'range' => 2,
      'additional_class' => 'product-ajax__pagination'
    ));

    if(isset($post['path'])) {
      $_SERVER['REQUEST_URI'] = $old_path;
    }

Подскажите, плох ли такой вариант?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы