<strong>Version 1.2.4.3, December 27, 2022</strong>
<ul>
	<li>Fix: Resolved the pass expiration code exiting early.</li>
	<li>Fix: An valid start time that isn't a date/time string could cause a fatal error.</li>
</ul>

<strong>Version 1.2.4.2, November 17, 2022</strong>
<ul>
	<li>Improvement: Retrieving the customer pass object has been updated to be more efficient.</li>
	<li>Fix: Included price variations did not always appear to have saved correctly.</li>
	<li>Dev: Unnecessary files have been removed from the final build package.</li>
</ul>

<strong>Version 1.2.4.1, November 7, 2022</strong>
<ul>
	<li>Fix: Ensure discount meta is properly saved and retrieved if not properly migrated.</li>
	<li>Fix: Improve renewal payment detection for passes.</li>
</ul>

<strong>Version 1.2.4, October 17, 2022</strong>
<ul>
	<li>Improvement: Remove unneeded files from the final build.</li>
	<li>Fix: For customers with active subscriptions for a pass, show a message instead of the "Renew Now" button.</li>
	<li>Fix: Prevent the default EDD price options form from showing after All Access price options have already output.</li>
	<li>Fix: Passes purchased with a subscription were not correctly expiring and being replaced with upcoming passes.</li>
	<li>Fix: Downloads with multiple files were not always delivering the correct file.</li>
</ul>

<strong>Version 1.2.3, October 6, 2022</strong>
<ul>
	<li>Fix: Manually creating an order in EDD 3.0 did not automatically generate the customer's pass.</li>
	<li>Fix: Enabling the "allow redownload" setting could prevent the initial download being logged for a customer.</li>
	<li>Fix: Trashing an order in EDD 3.0 did not remove the pass from the customer's account, although the pass could not be used.</li>
</ul>

<strong>Version 1.2.2, July 27, 2022</strong>
<ul>
	<li>New: a setting has been added to allow customers to redownload files without counting against the download limit. This feature requires EDD 3.0.</li>
	<li>Fix: Customer specific settings were not overriding the default pass settings.</li>
	<li>Fix: The category selector has been updated for PHP8 compatibility.</li>
	<li>Fix: On sites with many All Access enabled products, some could be excluded from the list of AA products.</li>
	<li>Fix: If a product is incorrectly configured to include specific price IDs without specifying any, an All Access pass would not work correctly.</li>
	<li>Fix: A fatal error occurred in outdated PHP versions.</li>
</ul>

<strong>Version 1.2.1, June 24, 2022</strong>
<ul>
	<li>Improvement: Products included in an All Access pass which have no files of their own now show a message instead of the download button.</li>
	<li>Fix: The site's list of All Access products is now stored as an option instead of a transient.</li>
</ul>
<strong>Version 1.2, June 14, 2022</strong>
<ul>
	<li>New: The edd_aa_download_limit shortcode has been registered to allow store owners to easily show customers how many downloads they have remaining, when downloads are limited.</li>
	<li>Improvement: The logic for checking whether a pass can access a download has been extracted into a class for improved logic and readability.</li>
	<li>Improvement: A new function, edd_all_access_valid_order_statuses, has been registered.</li>
	<li>Improvement: The All Access customer details header has been updated to match EDD core.</li>
	<li>Fix: If the site's list of All Access products was deleted, the list is automatically regenerated.</li>
	<li>Fix: Passes now grant access to downloads in child categories when the parent category is enabled.</li>
	<li>Fix: If a pass' status was invalid, it could throw a fatal error when viewing the customer details in the admin.</li>
	<li>Fix: Commissions styles/scripts are conditionally enqueued.</li>
	<li>Fix: Accessing a single price All Access product via ajax could throw a PHP notice.</li>
	<li>Fix: A PHP notice could occur if a payment object could not be retrieved for a pass.</li>
	<li>Fix: Only show upcoming access periods if the dates can be calculated.</li>
	<li>Refactor: The AllAccessProduct class has been introduced to consistently retrieve product data.</li>
	<li>Dev: Refactor how the plugin is loaded and checks system requirements.</li>
	<li>Dev: Minimum PHP version is 5.6.</li>
	<li>Dev: A new function has been registered for retrieving the customer metadata for All Access passes.</li>
	<li>Dev: EDD 3.0 - Partially refunded orders are included in valid order statuses.</li>
	<li>Dev: EDD 3.0 - Unit tests have been updated for EDD 3.0 compatibility.</li>
	<li>Dev: EDD 3.0 - Order dates have been updated to be consistent with EDD 3.0.</li>
</ul>

<strong>Version 1.1.11, March 23, 2022</strong>
<ul>
	<li>Dev: Software Licensing integration is compatible with EDD 3.0.</li>
	<li>Improvement: The Commissions integration has been improved.</li>
	<li>Improvement: The `edd_all_access_get_customer_pass_objects` helper function has been introduced to return the most up to date pass objects for a customer.</li>
	<li>Improvement: When instantiating the `EDD_All_Access_Pass` class, the expiration date is now checked automatically.</li>
	<li>Fix: Passes which should sync with Recurring Payments now use the subscription expiration instead of replicating calculations.</li>
	<li>Fix: Post meta tooltip text now displays correctly.</li>
</ul>

<strong>Version 1.1.10, November 18, 2021</strong>
<ul>
	<li>Fix: Database upgrade stuck in loop.</li>
	<li>Fix: Upgrade prompt showing on fresh install.</li>
	<li>Fix: Renew Now button could show incorrect pricing.</li>
	<li>Fix: Renew Now button could show if selected price option is not currently owned.</li>
</ul>

<strong>Version 1.1.9, August 23, 2021</strong>
<ul>
	<li>Fix: Fatal error when regenerating a pass</li>
</ul>

<strong>Version 1.1.8, August 18, 2021</strong>
<ul>
	<li>Fix: Correct file not being downloaded if a product has more than one file associated with it.</li>
</ul>

<strong>Version 1.1.7, August 4, 2021</strong>
<ul>
	<li>New: Introduced `edd_all_access_check_response_for_download` filter, which allows you to control access to a download.</li>
	<li>Fix: Fatal error on All Access admin page when an upgraded pass has been refunded.</li>
	<li>Fix: Edge case where a pass tied to a subscription never renews if the pass expiration date is slightly after the subscription renewal date.</li>
	<li>Fix: `edd_all_access_download_form()` function not working well with variable priced products and lazy loading. (We made some further updates to this fix, which started in version 1.1.6.)</li>
</ul>

<strong>Version 1.1.6, May 18, 2021</strong>
<ul>
	<li>Improvement: Instead of removing duplicate passes from the cart after the fact, the duplicates are now prevented from being added to the cart at all.</li>
	<li>Fix: "Files downloaded in this period" not always paginating.</li>
	<li>Fix: `edd_all_access_download_form()` function not working well with variable priced products and lazy loading.</li>
	<li>Fix: Varible-priced passes could have tax rates missing from the product page. (When "Display Tax Rates on Prices" is enabled.)</li>
	<li>Fix: Deprecation notices in PHP 8.</li>
</ul>
<strong>Version 1.1.5, February 8, 2021</strong>
<ul>
	<li>Improvement: Download popularity report now includes links to relevant downloads for quick access.</li>
	<li>Improvement: Customer passes are now deleted if the associated payment is deleted.</li>
	<li>Fix: Ensure only the owner of the pass can view pass details on the front-end.</li>
	<li>Fix: Under certain circumstances, "Buy All Access" button wasn't appearing correctly for products with variable prices.
	<li>Fix: Certain upgrade circumstances could incorrectly result in a renewal button being shown on a download, despite the person owning a lifetime All Access Pass for that product.</li>
	<li>Fix: Unnecessarily duplicating a hook in the admin screen, which could result in some EDD tools appearing twice in Downloads > Tools.</li>
	<li>Fix: PHP warning when viewing a pass in the admin screen that is set to all categories.</li>
	<li>Fix: SourceMap URLs return 404</li>
	<li>Fix: PHP deprecation notice for implode.</li>
	<li>Fix: Undefined variable "all_access_duration_unit".</li>
	<li>Fix: PHP warning: Invalid argument supplied for foreach().</li>
	<li>Tweak: Change plugin author to Sandhills Development, LLC.</li>
	<li>Dev: EDD 3.0 compatibility.</li>
	<li>Dev: Fix invalid HTML.</li>
</ul>
<strong>Version 1.1.4, January 31, 2020</strong>
<ul>
	<li>Fixed: Download counter was not properly incrementing.</li>
</ul>
<strong>Version 1.1.3, January 28, 2020</strong>
<ul>
	<li>Fixed: Products with multiple files were not properly displaying to logged-in AA customers.</li>
	<li>Fixed: Accessibility labels were not properly set for their associated input field.</li>
</ul>
<strong>Version 1.1.2, January 27, 2020</strong>
<ul>
	<li>New: A report of the most popular products, as downloaded by All Access Pass customers.</li>
	<li>New: Customers can now see their download history as part of the [edd_aa_customer_passes] shortcode</li>
	<li>New: When changing the customer attached to a payment, the All Access pass now automatically get transferred to match.</li>
	<li>New: Brought most of the codebase up to WPCS standards.</li>
	<li>New: The [edd_aa_all_access] shortcode now accepts multiple product IDs, allowing you to restrict content to multiple All Access Passes.</li>
	<li>New: The “Process All Access Passes” tool is now re-named to “Backfill All Access Passes” to better describe what it does.</li>
	<li>New: When a customer has a lifetime All Access Pass, they now see a message about not needing to renew, instead of the “Renew” purchase button.</li>
	<li>New: Made upgrade permissions specific to EDD core user permissions.</li>
	<li>New: Replaced direct calls to EDD_Payment class to use the edd_get_payment helper function.</li>
	<li>Fixed: If you had purchased All Access, any license key was acting like that All Access license.</li>
	<li>Fixed: If a user didn’t log in for over a year, their downloads per day were not properly being reset.</li>
	<li>Fixed: Variably priced AA passes were not properly syncing to license expirations in all cases.</li>
	<li>Fixed: Error was happening when a payment did not have a customer attached.</li>
</ul>
<strong>Version 1.1.1, May 24, 2019</strong>
<ul>
 	<li>Fix: The "Process All Access Passes" tool was failing on step 1 because of a failed nonce.</li>
</ul>
<strong>Version 1.1, May 14, 2019</strong>
<ul>
 	<li>New: Added a "Sync with License" option for better integration with Software Licensing</li>
	<li>New: Added a tool to the customer profile to regenerate their All Access Passes</li>
 	<li>New: Added a filter to provide option to hide file-level download options</li>
 	<li>New: Improved code markup and formatting</li>
 	<li>New: Changed all references of EDD_Payment to edd_get_payment function</li>
	<li>New: Scripts are now built using webpack</li>
 	<li>New: Moved priority of main plugins_loaded hook to 20 in preparation for EDD 3.0</li>
	<li>Fix: While editing a pass, "Are you sure" showed when it shouldn't</li>
 	<li>Fix: Made sure schema data for search engines is correct for purchase form</li>
 	<li>Fix: If "Limit File Downloads" was enabled in Recurring Payments, valid AA downloads were prevented</li>
 	<li>Fix: Migrations from RCP stopped after 1 step</li>
 	<li>Fix: All dates are now saved in UTC instead of website’s timezone</li>
 	<li>Fix: Prevent AA passes from expiring if recurring subscription’s product changes</li>
 	<li>Fix: Set the file id being downloaded based on the price ID being downloaded</li>
 	<li>Fix: Made the price_id attribute work for the edd_all_access shortcode</li>
 	<li>Fix: Made sure the edd_purchase_link_top hook is present in AA purchase form</li>
 	<li>Fix: Content Restriction Integration: Made restricting a page to “All Prices” in Content Restriction work for AA prices</li>
 	<li>Fix: Content Restriction Integration: Made edd_restrict shortcode consider AA passes</li>
 	<li>Fix: Software Licensing Integration: Added better handling for invalid license keys</li>
 	<li>Fix: Cart error for ‘never expires’ was being cleared when it shouldn’t</li>
 	<li>Fix: Made expiration of AA based on start time of All Access, not start time of payment/order</li>
 	<li>Fix: Software Licensing Integration: Made AA passes sync with Licenses instead of Recurring</li>
 	<li>Fix: Recurring Payments Integration: Allow early renewals even if subscription exists</li>
 	<li>Fix: All unneeded cache clears have been removed</li>
 	<li>Fix: Lifetime licenses were causing invalid AA passes</li>
 	<li>Fix: Free Downloads integration priority setting now lets AA override Free Downloads when set as such</li>
 	<li>Fix: Issue with Customer reset tool where customer had an expired pass and an active one, resulting in expired.</li>
 	<li>Fix: Race condition with manual subscription renewals where payment had no products yet</li>
</ul>
<strong>Version 1.0.11, March 26, 2018</strong>
<ul>
	<li>Fixed: Purchases were blocked for AA purchases if user was logged out since 1.0.10</li>
</ul>
<strong>Version 1.0.10, March 21, 2018</strong>
<ul>
	<li>Fixed: Don’t prevent variations of same AA pass in cart</li>
	<li>Fixed: If the customer is upgrading, don’t prevent even if a sub already exists for it. </li>
	<li>Fixed: Make sure $license is instance of EDD_Sl_License when using it as such</li>
	<li>Fixed: Download form output in situations where the first price variation is not available</li>
	<li>Fixed: Bad purchase prevention errors were not showing if licensing enabled</li>
	<li>Added: Filter hook called edd_all_access_modify_purchase_form</li>
	<li>Added: Filter hook called edd_all_access_download_should_be_counted</li>
	<li>Added: Action hook called edd_all_access_download_being_counted_before</li>
	<li>Added: Action hook called edd_all_access_download_being_counted_after</li>
	<li>Added: Allow individual files to be downloaded if multiple files attached to product</li>
</ul>
<strong>Version 1.0.9, October 26, 2017</strong>
<ul>
	<li>Fixed: All Access pass could not be purchased if a previous attempt including a free trial failed or was abandoned.</li>
</ul>
<strong>Version 1.0.8, October 25, 2017</strong>
<ul>
	<li>Fixed: Only store upgrade data in customer meta if both the pre-upgrade and post-upgrade products are All Access enabled.</li>
	<li>Fixed: Additional logic was added to the All Access processing tool to fix additional issues caused by the bug which was fixed in 1.0.7.</li>
	<li>Fixed: Do additional logic checks when showing the customer's AA data to them with the edd_aa_customer_passes shortcode.</li>
</ul>
<strong>Version 1.0.7, October 7, 2017</strong>
<ul>
	<li>Fixed: Do downloads used counter resets only for active passes. Affected only anyone who has already run the retroactive tool and had customers with more than 1 different All Access purchase prior to activating All Access.</li>
</ul>
<strong>Version 1.0.6, September 20, 2017</strong>
<ul>
	<li>Fixed: Integration with Content Restriction was not working due to improperly used variable.</li>
</ul>
<strong>Version 1.0.5, September 11, 2017</strong>
<ul>
	<li>Changed: Commissions integration now uses EDD_Commissions class in all instances.</li>
</ul>
<strong>Version 1.0.4, August 21, 2017</strong>
<ul>
	<li>Fixed: Individually excluded products were still showing in the [downloads] shortcode with all_access_customer_downloads_only present.<li>
	<li>Fixed: Software Licensing checks were requiring logins over API</li>
	<li>Fixed: Renewals were prevented for cancelled subscriptions when it should have only been prevented for active or trialling subscriptions.</li>
	<li>Fixed: The download counter was not being incremented in some situations.</li>
</ul>
<strong>Version 1.0.3, August 4, 2017</strong>
<ul>
	<li>Fixed: With Software Licensing, licenses for any product were allowing other products to be activated if using item_name in API</li>
	<li>Fixed: Account for "trialling" status in Recurring Payments</li>
	<li>Fixed: EDD 2.8 admin changes the layout for Variable Prices. This conforms it to work with that.</li>
	<li>Fixed: Intermittent issue with downloads_used not being updated after download</li>
	<li>Added: Restrict Content Pro migration tool</li>
	<li>Added: Filters for the "pricing" button so you can modify it on a product-by-product basis<li>
	<li>Added: Option to hide variable options from All Access members if they don't have access to those variable prices.</li>
	<li>Added: Prices are automatically hidden if logged in and have access to download product.</li>
</ul>
<strong>Version 1.0.2, June 21, 2017</strong>
<ul>
 	<li>Fix: Make All Access licenses work if the product is also a bundle (requires Software Licensing update to 3.5.14)</li>
	<li>Fix: Make sure included_categories always returns array from EDD_All_Access_Pass object.</li>
	<li>Fix: Make sure post revisions are not counted as "saves" when adding a product to the All Access passes array.</li>
	<li>Added: Ability to limit discount codes to be used by All Access pass holders only. </li>
	<li>Added: UX Improvement: automatically remove duplicate All Access products from the cart.</li>
	<li>Added: Filter called "edd_all_access_commission_rate_override" to allow commission rates for All Access calculations to be over-ruled.</li>
</ul>
<strong>Version 1.0.1, May 16, 2017</strong>
<ul>
 	<li>Fix: Shortcode [downloads] was not showing any download when all_access_customer_downloads_only="yes" was present even when it should.</li>
	<li>Fix: The "Renew" button would show the dash separator between price and text even if the price was set to be hidden.</li>
	<li>Added: The shortcode [purchase_link] now accepts a paramater called "all_access_download_now_text" which allows customization of "Download Now" button text.</li>
	<li>Added: When using the option to show AA Passes alongside normal "Buy now" buttons, it now outputs all relevant AA products instead of just the newest.</li>
	<li>Added: A new option allows you to replace the AA passes with a custom button. This is useful for showing a "pricing" button.</li>
</ul>
<strong>Version 1.0, May 11, 2017</strong>
<ul>
 	<li>Initial release</li>
</ul>
