Ajax-обновление количества избранных товаров
Использую плагин YITH WOOCOMMERCE WISHLIST на своем сайте для реализации избранных товаров. Пытаюсь заставить обновляться без перезагрузки количество товаров в шапке сайта, которые находятся в избранном.
Может кто-то сможет подсказать что можно сделать с этим кодом, чтобы количество начало обновляться моментально без перезагрузки страницы.
<div class="header_account_list header_wishlist">
<a href="<?php echo esc_url(YITH_WCWL()->get_wishlist_url()); ?>" title="<?php echo esc_attr__('Избранное', 'lafka') ?>">
<span class="lnr lnr-heart"></span>
<span class="item_count"><?php echo esc_html(YITH_WCWL()->count_products()); ?></span>
</a>
</div>
Ответы (1 шт):
Автор решения: Darth KYL
→ Ссылка
не знаю на сколько это актуально, но возможно кому то пригодится
в functions.php нужно добавить этот код
add_action( 'wp_ajax_update_yith_wishlist_count', 'get_wishlist_count' );
add_action( 'wp_ajax_nopriv_update_yith_wishlist_count', 'get_wishlist_count' );
function get_wishlist_count() {
wp_send_json( [ 'count' => function_exists( 'yith_wcwl_count_all_products' ) ? yith_wcwl_count_all_products() : 0 ] );
}
в файл js
let updateWishlistCount = {
init() {
this.events();
},
events() {
jQuery( document ).on( 'added_to_wishlist removed_from_wishlist', this.getWishlistCount.bind( this ) )
},
getWishlistCount() {
jQuery.ajax( {
url: '/wp-admin/admin-ajax.php', // url лучше брать из json c настройками темы
method: 'POST',
data: {
action: 'update_yith_wishlist_count'
}
} ).success( function( response ) {
// нужно заменить селектор на ваш
jQuery( '.wishlist-count' ).text( response.count );
} );
}
};
updateWishlistCount.init();
