@YaMariya

Как заставить работать ajax добавление товара в корзину woo для товаров, полученных через wp_query?

Здраствуйте!

Вопрос такой - мне нужно на главной странице вывести слайдер с новыми товарами woocommerce. Сами товары я получаю через wp_query, а не вывожу шорткодом woo (потому что кастомный слайдер swiper). В принципе - получается, но проблема вознила с кнопкой добавления в корзину.

Саму кнопку вывожу стандартным:

Код кнопки

global $product;

echo apply_filters(
  'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
  sprintf(
    '<a href="%s" aria-describedby="woocommerce_loop_add_to_cart_link_describedby_%s" data-quantity="%s" class="%s product-card__add-to-cart" %s>%s</a>',
    esc_url($product->add_to_cart_url()),
    esc_attr($product->get_id()),
    esc_attr(isset($args['quantity']) ? $args['quantity'] : 1),
    esc_attr(isset($args['class']) ? $args['class'] : 'button'),
    isset($args['attributes']) ? wc_implode_html_attributes($args['attributes']) : '',
    esc_html($product->add_to_cart_text())
  ),
  $product,
  $args
);



И она работает, но не через ajax. Т.е. товар в корзину добавляется, но страница при этом перезагружается. Как можно победить эту проблему? В настройках woo ajax включен, в каталоге работает штатно.
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
@YaMariya Автор вопроса
Отвечу сама себе - да, можно использовать встроенный функционал woo:
<a href="<?php echo $product->add_to_cart_url() ?>" value="<?php echo esc_attr( $product->get_id() ); ?>" class="ajax_add_to_cart add_to_cart_button" data-product_id="<?php echo get_the_ID(); ?>" aria-label="Add “<?php the_title_attribute() ?>” to your cart"> 
Add to Cart 
</a>

И оно работает. Удалять вопрос не буду - может кому-то пригодится.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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