# 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).&#x20;

You can control default and active icon states easily:

<figure><img src="https://577283513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3MMybclNPfdZUpnUggUT%2Fuploads%2FTQ2dWaWGj39WJ4aZ426a%2Fimage.png?alt=media&#x26;token=47a26b09-0c80-43a4-8327-8adb4e769aaf" alt=""><figcaption></figcaption></figure>

### 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:<br>

```php
$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

Sometimes we want to display this: ![](https://577283513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3MMybclNPfdZUpnUggUT%2Fuploads%2F5sPNdtsdiV9f4J771ZjM%2Fimage.png?alt=media\&token=8f37f39b-f065-472d-9ee0-cd891f16b1d8) and update the number every time post is being added to wishlist. We can use simple PHP function to retrieve this number:

```php
<?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.
