# 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="/files/jA4kpu06DXCaUCGyoYms" 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: ![](/files/47tAlU6e0sXfXkDi05Al) 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.brickstheme.com/basics/bricks-boilerplate-addon-plugin/wishlist.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
