Wishlist 3.x is on version 3.0.9, released on Sept 12, 2025
Released Sept 12, 2025
Add list-owner enforcement for managing list items from the front-end.
Released July 18, 2025
Add “Add to Cart” action events.
Update English translations.
Released May 01, 2025
Update GraphQL resolvers to use ElementCollection correctly.
Fix PDF handling for Craft Cloud.
Fix typo when generating an error when rendering a PDF template
Fix an error where wishlist items on Matrix blocks in Craft 4 were throwing an error.
Fix a Wishlist 3 migration error where custom fields on items weren’t being migrated properly.
Fix normalization of bulk or multi-actions for items (like adding multiple items to a nominated listId).
Released Mar 04, 2025
Fix Wishlist items not working correctly for contentless elements like Matrix blocks.
Released Feb 03, 2025
Fix an error when adding wishlist items to a cart.
Released Oct 20, 2024
Improve list.getItem() performance when not providing additional query params to filter by.
Released Sept 14, 2024
Fix unnecessary duplicates when purging lists.
Fix an inconsistency when purging empty lists, where items still exist, but no longer relate to an element.
Released Sept 07, 2024
Fix Wishlist summary not appearing in user profile in the control panel.
Fix adding an item as a duplicate not working correctly.
Released July 21, 2024
Add listTypeHandle as a query param for fetching items.
Add Craft Teams support for permissions.
Update English translations.
Clearing a list after adding to the cart is only allowed if the list is the owners.
Fix an error when checking if an item is in a list.
Fix an error when editing lists on the front-end for logged-in users.
Fix an error for guests creating lists from the front-end.
Fix an error when creating new items without a linked element.
Fix list permissions enforcement for adding items to a cart from another users list.
Released May 18, 2024
Add the ability to create a list when adding or toggling an item in one request.
Add newList parameter when managing items, to force-create a new list, even if one for the chosen type exists (and add the items to that list).
Add craft.wishlist.getUserList(params) to quickly get the current users list. Using params allows you to specify other list types, and more.
Add list.addItemUrl(element, params) list.toggleItemUrl(element, params) list.removeItemUrl(element, params).
Add craft.wishlist.addItemUrl(element, params) craft.wishlist.toggleItemUrl(element, params) craft.wishlist.removeItemUrl(element, params).
Add support to update multiple items at once.
Add bulk list actions for add/remove/toggle/update, to perform tasks on multiple lists at once.
Add the ability to change the owner user for a list in the control panel.
Add the ability to duplicate a list from the front-end.
Add List::isEmpty() to check if there are any items in the list.
Add List::getItem(element, params) to get a specific item, based on a given element and any additional query params.
Add List::hasItem(item) to check if a list has a specific item.
Add support for Item::getInList(list) to pass in a specific list to check.
Add the ability to attach a PDF to the share email.
Improve item query performance.
Add item.element eager-loading.
Add list.items eager-loading.
Add trashedElement element query param for items.
Add the ability to populate cart line item options from list or item custom fields.
Add ability to set a custom email template when sharing a list.
Add support for items to pick any element type when editing via the control panel.
Add Items:: EVENT_MODIFY_SUPPORTED_ELEMENT_TYPES event.
Update List Type custom fields to support UI elements and other field layout changes.
Now requires PHP 8.2.0+.
Now requires Craft 5.0.0+.
All URL-based actions now have their query parameters encoded to prevent tampering with.
craft.wishlist.getInUserLists() now accepts an element as its parameter, not just an elementId.
Change listTypeHandle parameter for managing items to listType.
Item queries by default now don’t return items where the linked element has been trashed or deleted.
PDFs now support using the current site’s locale language and formatting.
Fix duplicating lists (via “Save as a new list”) not working.
Remove listTypeId parameter for managing items. Use listType instead.
Remove listTypeHandle parameter for managing items. Use listType instead.
Remove \verbb\wishlist\services\Items::getItemsForList().
Remove \verbb\wishlist\services\Lists::getList().
Remove forceSave parameter on craft.wishlist.lists(). Lists are now created when items are added, rather than when calling this tag.
Deprecated craft.wishlist.item(). Use craft.wishlist.items(params) to find items, or craft.wishlist.addItemUrl/toggleItemUrl/removeItemUrl to manage items.
Released Sept 12, 2025
Add list-owner enforcement for managing list items from the front-end.
Released July 18, 2025
Update English translations.
Released May 01, 2025
Fix PDF handling for Craft Cloud.
Released Mar 04, 2025
Fix Wishlist items not working correctly for contentless elements like Matrix blocks.
Released Sept 14, 2024
Fix unnecessary duplicates when purging lists.
Fix an inconsistency when purging empty lists, where items still exist, but no longer relate to an element.
Released July 21, 2024
Fix an error when editing lists on the front-end for logged-in users.
Released June 18, 2024
Update English translations.
Clearing a list after adding to the cart is only allowed if the list is the owners.
Fix an error for guests creating lists from the front-end.
Fix list permissions enforcement for adding items to a cart from another users list.
Released May 18, 2024
Update English translations.
Enforce permissions for lists when managing via the front-end.
Released Mar 04, 2024
Add currentSite as a variable when rendering a PDF.
Add the ability to order list items by their linked-to element’s title with orderBy(‘elementTitle asc’).
Bump dompdf/dompdf requirement to 2.0.4.
Fix order of operations when uninstalling the plugin.
Released Jan 30, 2024
PDFs now support using the current site’s locale language and formatting.
Fix being unable to delete a disabled list.
Released Oct 25, 2023
Implement Element::trackChanges() for Blitz compatibility.
Released July 11, 2023
Add reference to the List element index columns.
Fix when duplicating a list, a new reference wasn’t generated.
Released May 27, 2023
Add empty linked element checks to wishlist/items/cleanup-orphaned-items
Only admins are now allowed to access plugin settings
Fix Wishlist list type permissions not using UIDs.
Fix being unable to customise item element index columns in the control panel, when editing a list.
Released Dec 18, 2022
Added support for item options to be updated when managing items. (thanks @bymayo).
Add cross-site item management.
Add support for siteId for craft.wishlist.item.
Update element GraphQL description.
Fixed PHP errors that could occur when executing GraphQL queries.
Released Oct 23, 2022
Add batch processing for purge list/items commands.
Released Sept 25, 2022
Fix an error when running Craft's Garbage Collection. (thanks @olivierbon).
Fix an error when viewing list owners in the control panel.
Released Sept 17, 2022
Fix an error when deleting a list type.
Fix multiple list types able to be set as the default.
Fix an error running resave console commands.
Released July 20, 2022
Add missing translations.
Add resave console command for elements.
Add checks for registering events for performance.
Memoize all services for performance.
Rename base plugin methods.
Add archiveTableIfExists() to install migration.
Now requires PHP 8.0.2+.
Now requires Craft 4.0.0+.
Now supports dompdf/dompdf:^2.0.
pdfAllowRemoteImages is now true by default.
Fix an error when uninstalling.
Fix project-config/rebuild support.
Remove deprecated item and notice from Ajax responses.
Released Dec 18, 2022
Added support for item options to be updated when managing items. (thanks @bymayo).
Released Dec 07, 2022
Add cross-site item management.
Add support for siteId for craft.wishlist.item.
Released Oct 23, 2022
Add batch processing for purge list/items commands.
Released Aug 09, 2022
Add wishlist/items/cleanup-orphaned-items.
Show list owners with status and thumbnail in list element index view. (thanks @martyspain).
Fix items not being removed when pruning lists.
Released July 27, 2022
Add missing English translations.
Fix an error when trying to update list items.
Released Mar 15, 2022
Now requires Craft 3.6.0+.
Fix GraphQL generator issues in some cases (Gatsby).
Fix when purging lists, not taking into account timezone and comparing UTC dates correctly.
Fix an error when generating PDFs and custom fonts, where the temporary folder isn’t writable (or created).
Released Sept 07, 2021
Fix wishlist item title not being set when saving items through ajax requests.
Fix craft.wishlist.getInUserLists() not implemented properly.
Released July 20, 2021
Fix consolidateListsToUser only working for default list types.
Fix lack of table prefix for mergeLastListOnLogin handling.
Released June 04, 2021
Fix issue where trying to remove or toggle a wishlist item with the options param could have no effect. (thanks @benface).
Fix mergeLastListOnLogin not respecting allowDuplicates by allowing duplicates during merging of guest and user lists.
Add craft.wishlist.getInUserLists().
Released May 08, 2021
Add the ability to match existing wishlist items by itemId and options when trying to remove or toggle a wishlist item in a list.
Allow custom fields and options to be added when toggling a wishlist item.
Released Apr 21, 2021
Add notes for list/items when they have no custom fields in the control panel.
Fix an error with Commerce 3.3+ and DomPDF version collision.
Fix an error when creating a new list item in the control panel.
Released Apr 02, 2021
Fix mergeLastListOnLogin not correctly merging lists when logging in a user.
Released Mar 04, 2021
Update mergeLastListOnLogin to only merge lists of the same type if they have the same title.
Fix default list type not saving to project config when first installing the plugin.
Released Jan 24, 2021
Add updateItemSearchIndexes config setting to control updating search indexes for Wishlist items.
Add updateListSearchIndexes config setting to control updating search indexes for Wishlist Lists.
Improve item and list database query performance.
Fix craft.wishlist.item forcing the creation of a new list, when it shouldn’t.
Fix incorrectly showing list items in other users’ lists.
Released Dec 22, 2020
Fix lists/add-to-cart not supporting custom error/success messages.
Fix lists/share-by-email not supporting custom error/success messages.
Fix user wishlist’s always showing the currently logged-in user, when editing a user in the control panel.
Released Dec 16, 2020
When performing any list or item actions from the front end, a flash error/notice is now available with the result. Use craft.app.session.getFlash('notice') to output this message when using the url() methods or using a <form> POST submit.
When submitting a form for managing items, you can see a successMessage or failMessage to modify the flash message returned. This is not available when using the url() methods. Be sure to hash the message: <input type="hidden" name="successMessage" value="{{ 'Override Message' | hash }}">.
Released Dec 07, 2020
Wishlist queries via GraphQL are now no longer automatically included in the public schema.
Released Nov 10, 2020
Add params to addUrl(), removeUrl() and toggleUrl() to make it easier to create URLs.
Add listType handle to craft.wishlist.item().
Add listTypeId query param to Item queries.
craft.wishlist.item() no longer automatically creates new lists when the page is loaded, preventing lots of lists being created for guests. Previously as soon as the page loaded with this call, a list would be created for users, meaning lists could get out of control easily. Be sure to double check your templates.
Released Oct 06, 2020
Fix optionsSignature error when updating.
Released Oct 04, 2020
Guest lists are now (finally) persistent! Using cookies, even when the user closes their browser, their lists are retained for their next visit.
Add migration for Shortlist plugin for Craft 2.
Add migration for Upvote plugin.
Add PDF template handling, to provide an easy way to generate PDF's of your lists and their content. See docs.
Add Item Options, allowing you to save additional, arbitrary content on items. See docs.
Add all available config settings to be able to be managed in the control panel.
Add support for Craft 3.5+ field layouts.
Add support for multiple tabs for lists.
Add support for multiple tabs for list items.
Add support to customise the item element table columns when editing a list.
Add new tab to user’s account, for all wishlists and items they may own.
Add cookieExpiry config setting.
Add showListInfoTab config setting.
Add pdfFilenameFormat config setting.
Add pdfPath config setting.
Add pdfAllowRemoteImages config setting.
Add pdfPaperSize config setting.
Add pdfPaperOrientation config setting.
Now requires Craft 3.5+.
Released Oct 03, 2020
Add craft.wishlist.plugin Twig variable, allowing access to plugin services.
Add lists/update-items controller action, to enable bulk-updating on list items, similar to a cart.
Add BCC and CC email options when sharing a list by email.
Released Sept 26, 2020
Add fields to share-lists controller action. Allowing additional content to be used in email notifications
Released Sept 18, 2020
Add ability to remove items from a list when adding to cart.
Allow add-to-cart and share-by-email endpoints for lists to be accessed anonymously.
Change add-to-cart behaviour so that it only adds supplied purchasables to the cart - if provided.
Released Sept 03, 2020
The update list action can now be accessed anonymously. (thanks @BrandonJamesBorders).
Released Aug 21, 2020
Fix type check error when trying to determine list owner.
Released Aug 10, 2020
Add wishlist/lists/purge-inactive-lists console command.
Provide the list object to controller actions, to allow usage like {{ redirectInput('lists/{id}') }}. (thanks @brandonohara).
Add purgeEmptyListsOnly and purgeEmptyGuestListsOnly config settings.
Improve error-handling for some template functions, to guard against errors.
Released June 30, 2020
Return list reference on wishlist/lists/create. (thanks @BrandonJamesBorders).
Released June 15, 2020
Add wishlist/lists/update action to enable list updating from the front-end.
Released June 09, 2020
Full item model is now included in Ajax responses for toggle requests.
Fix incorrect return values for add/delete/toggle for Ajax requests.
item is now deprecated in Ajax responses for add/delete/toggle actions, and will be removed in the next major release. Please adjust your code to instead rely on items which is an array of returned Wishlist items. This is because these actions can support multiple items, rather than just a single one.
Released May 31, 2020
Change purgeInactiveLists to be on by default. This will prevent your wishlists from getting out of control.
Released May 29, 2020
Add item model to add/remove ajax actions.
Implement GraphQL for items and lists. See docs.
Released May 16, 2020
Change mergeLastListOnLogin to be off by default. User lists won't be merged automatically, by default.
Released May 14, 2020
Add resave/wishlist-items console command.
Add resave/wishlist-lists console command.
Fix potential error when fetching an items list, when it doesn’t exist.
Released May 12, 2020
Return “items” when toggling an item. This will be the item ID and the action taken upon an item ('added' or 'removed').
Released May 12, 2020
Add action param to all item and list controller actions
Released Apr 16, 2020
Fix logging error Call to undefined method setFileLogging().
Released Apr 16, 2020
Add mergeLastListOnLogin, on by default to merge guests’ lists when logging in with existing saved lists.
Ensure saved lists for users aren’t overridden on next login.
Released Apr 15, 2020
File logging now checks if the overall Craft app uses file logging.
Log files now only include GET and POST additional variables.
Released Apr 07, 2020
Fix managing lists on the front-end and requiring permissions.
Released Apr 01, 2020
Only allow editing of list types if editable.
Fix default data when installing conflicting with project config.
Ensure plugin project config is removed when uninstalling.
Released Jan 30, 2020
Allow list actions to be callable via URL.
Add manageDisabledLists config setting to manage disabled lists and their items (default to true).
Fix error when adding a new item to list in the CP.
Fix unable to update the element for an item through the CP.
Released Jan 29, 2020
Craft 3.4 compatibility.
Released Jan 18, 2020
Fix project config error.
Released Jan 18, 2020
Fix list items having incorrect search attributes.
Released Jan 10, 2020
Add project config support.
Add support for add/delete/toggle multiple items. See docs
Add purgeInactiveGuestListsDuration to set times for guest lists to be purged, separate to user lists. This is default to 1 day.
Add purge lists to Craft's garbage collection.
Add guest list to user list when logging in.
Add email share action for lists. Users can directly and easily send their list via email.
Allow managing of list items in the CP, including add and delete.
Add forceSave to craft.wishlist.lists() to force a new list to be generated.
Fixed SQL error for PostgreSQL. (thanks @Tam).
Fix craft.wishlist.item() when called for a specific list.
Fix issue when calling multiple lists in the same request not returning the correct list.
Released Mar 02, 2019
Add update controller action for items.
Fix title on CP edit item page.
Fix saving items in the CP.
Fix missing delete action for items
Released Mar 01, 2019
Fix setting field params via URL not working correctly.
Released Feb 27, 2019
Fix purge function to only remove lists with zero items.
Released Feb 27, 2019
Fix typo in purge lists function.
Released Feb 26, 2019
Fix permissions for lists.
Fix permissions for list types.
Fix sidebar menu for using plugin name override.
Released Feb 17, 2019
Adding option to provide a list type handle or id when adding an Item. (thanks @echantigny).
Fix owner column not being correct.
Correct AJAX action for list type deletion. (thanks @AugustMiller).
Add routing rule for index of list type. (thanks @echantigny).
Fix error thrown when viewing list when created in the CP. (thanks @echantigny).