Hi. How can we help?

Wishlist - How to count number of products wishlist in ajax

You can try to add the following code to functions.php of your theme or child

if ( defined( 'YITH_WCWL' ) && ! function_exists( 'yith_wcwl_get_items_count' ) ) {
 function yith_wcwl_get_items_count() {
  ob_start();
  ?>
  <span class="yith-wcwl-items-count">
      <i class="yith-wcwl-icon fa fa-star-o">
    <?php echo esc_html( yith_wcwl_count_all_products() ); ?>
      </i>
  </span>
  <?php
return ob_get_clean();
}
add_shortcode( 'yith_wcwl_items_count', 'yith_wcwl_get_items_count' );
}

if ( defined( 'YITH_WCWL' ) && ! function_exists( 'yith_wcwl_ajax_update_count' ) ) {
 function yith_wcwl_ajax_update_count() {
  wp_send_json( array(
      'count' => yith_wcwl_count_all_products()
  ) );
 }
 add_action( 'wp_ajax_yith_wcwl_update_wishlist_count', 'yith_wcwl_ajax_update_count' );
 add_action( 'wp_ajax_nopriv_yith_wcwl_update_wishlist_count', 'yith_wcwl_ajax_update_count' );
}

if ( defined( 'YITH_WCWL' ) && ! function_exists( 'yith_wcwl_enqueue_custom_script' ) ) {
 function yith_wcwl_enqueue_custom_script() {
  wp_add_inline_script(
      'jquery-yith-wcwl',
      "
        jQuery( function( $ ) {
          $( document ).on( 'added_to_wishlist removed_from_wishlist', function() {
            $.get( yith_wcwl_l10n.ajax_url, {
              action: 'yith_wcwl_update_wishlist_count'
            }, function( data ) {
              $('.yith-wcwl-items-count').html( data.count );
            } );
          } );
        } );
      "
  );
 }
 add_action( 'wp_enqueue_scripts', 'yith_wcwl_enqueue_custom_script', 20 );
}

This will define [yith_wcwl_items_count] shortcode in your site; place it wherever you want your counter to appear, and the plugin will do the rest

Shortcode will be replaced with current items count; besides, if user adds or removes something from wishlist, count will be automatically updated via AJAX

Was this article helpful?
22 out of 57 found this helpful

Back to Help Center >