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:
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.
Sometimes we want to display this: and update the number every time post is being added to wishlist. We can use simple PHP function to retrieve this number: