Wishlist

This feature comes with an Element "Wishlist" that is meant to be used inside a query loop. With this you can let users save favorite posts (products).

You can control default and active icon states easily:

Creating a list of favorite posts

If user is not logged in - favorite posts are stored in a local storage. If they are logged in, favorite posts are tied to their account. Use this custom code to query them (Query editor - PHP) - in this case its for products:

$wishlist_items = brtheme_get_wishlist_items();
if ( empty( $wishlist_items ) ) {
 return [
  'post_type' => 'product',
  'posts_per_page' => -1,
   'post__in' => [-1]
  ];
}
return [
  'post_type' => 'product',
  'posts_per_page' => -1,
  'post__in' => $wishlist_items
  ];

Showing dynamic number indicating number of favorite posts

<?php
// Get wishlist items
$wishlist_items = brtheme_get_wishlist_items();

// Count the number of items in the wishlist
$wishlist_count = count($wishlist_items);

// Output the number of wishlist items
echo '<span class="brt-wishlist-items-count">' . $wishlist_count . '</span>';

// Check if the wishlist is empty and set query arguments accordingly
if ( empty( $wishlist_items ) ) {
    // Return empty result if no items in the wishlist
    $query_args = [
        'post_type'      => 'product',
        'posts_per_page' => -1,
        'post__in'       => [-1]
    ];
} else {
    // Return wishlist items query
    $query_args = [
        'post_type'      => 'product',
        'posts_per_page' => -1,
        'post__in'       => $wishlist_items
    ];
}
?>

Make sure that the returned element has this class: "brt-wishlist-items-count" which will update our number via AJAX.

Last updated