The next major release for the All Access extension is version 1.1, and it has just been released into beta. Most of the changes in this version are small bug fixes and edge case handling, but it also contains a few farther-reaching fixes which help prevent future problems down the road. There’s also some new features which have been added to help you handle special customer cases while keeping everything in sync and running smoothly. Let’s dive into the main changes.
New Customer Regeneration Tool
In the past, if a customer’s All Access Pass accidentally expired for any reason, there was no way to un-expire their pass. The reason for this is intentional: Commissions are paid upon pass expiration. If a pass becomes un-expired, some of your Vendors could end up not being compensated for their products. But not everyone using All Access also uses the EDD Commissions extension, and often-enough, passes were expired accidentally, for various reasons.
There is now a way to fix those situations: a new tool in the Customer profile. To find the new tool, find the customer profile in Easy Digital Downloads and go to “Tools”. There, you’ll see a section called “All Access Tools” and a button that says “Regenerate All Access Passes”. This will go through a customer’s entire purchase history and regenerate every piece of All Access data that exists for this customer, fixing any out-of-sync problems that might have arisen, or applying changes you might have made to your All Access Products.
It’s important to be aware of this if you are using EDD Commissions, as un-expiring an already-expired All Access Pass means that commissions for that pass were already generated. While All Access protects you from accidentally double-generating commissions for an All Access Pass (even in this scenario), any products downloaded by the customer after the initial expiration won’t be accounted for. Thus, those Vendors will not be part of the commission split upon subsequent expiration.
Dates are now saved in UTC
Probably the biggest change in this version is that all dates, like the All Access start time, are now saved in UTC. Prior to this update, it saved the times using the timezone of the WordPress installation.
The problem here was that if you moved your store’s location, and so changed the timezone of your WordPress installation to match your new location, all of the times saved were now wrong. This could cause un-intended problems with things like expiration, and downloads-per-day resets.
Now, the times are saved in UTC, but get shown in the WordPress installation’s timezone. This is done by converting the UTC time to the WordPress timezone on-the-fly, just prior to outputting it to the screen.
After updating, you will see an upgrade routine which will modify the saved dates of every All Access pass in your store. You will want to run that upgrade routine, and make sure you don’t change your WordPress’s timezone prior to running that upgrade. After running it, you can change your WordPress installation’s timezone as often as you wish.
Easy Digital Downloads 3.0 Ready
This update also makes All Access ready for version 3.0 of Easy Digital Downloads, by changing all references of
EDD_Payment to instead use the helper function called
edd_get_payment. This takes advantage of the performance improvements which will be added to version 3 of Easy Digital Downloads.
Better Search Engine Schema
All Access has an option to modify the purchase form, and show a “Buy All Access” button alongside the normal purchase button. An un-intended side-effect of that was that the schema, which is data search engines use to understand your products, showed that the product price was the All Access price, and not the actual price of the product in question. That has been fixed.
Recurring Payments Integration Improvements
The “Limit File Downloads” setting in Recurring Payments prevents customers from being able to download recurring-enabled products unless they have an active, valid subscription. However, if you’re selling lifetime (and thus non-recurring) All Access Passes which include recurring-enabled products, the All Access Pass didn’t work because of that setting. That has now been fixed.
Content Restriction Integration Improvements
The Content Restriction extension allows you to hide content from users unless they purchase a product. All Access modifies this to cut-off their access if their All Access Pass is expired. But what had not been considered previously was if the page was restricted to a product within a pass, and not just to a pass itself. That has now been fixed.
Additionally restricting content to “all prices” now works. which previously was also not working. To further complete the integration, the
[edd_restrict] shortcode from Content Restriction also now takes into consideration content restricted to products within an All Access Pass, and not just to All Access products themselves.
Software Licensing Integration Improvements
Another one of the biggest changes in this version of All Access is the behaviour relating to licenses and recurring subscriptions. If you set an All Access Product to “Sync with Recurring”, the pass would expire when the recurring subscription expired. This worked great, except in specific cases where Software Licensing was also involved; specifically discounts/sales.
This is because Software Licensing has the concept of renewals, which also includes the ability to renew a product early, even if you also have an active subscription. While this isn’t typically normal customer behavior, during a sale, like one you might run on Black Friday, it suddenly becomes a customer’s intention. And it’s something Software Licensing and Recurring Payments work together to allow.
An early renewal in Software Licensing cancels the current recurring subscription and creates a brand new one to replace it. Suddenly the license and the subscription are now (correctly) out of sync, with the recurring subscription expiring at a different time than the license. This is how it is ensured that your customers don’t lose any time they’ve paid for.
The problem as far as All Access is concerned, is that it is set to “Sync with Recurring”, when really it should be set to “Sync with License”. To rectify that, All Access now uses the license’s expiration instead of the subscription’s expiration. If a license does not exist, it will then fall-back to use the recurring subscription’s expiration. This keeps All Access in sync with both Software Licensing and Recurring Payments while accounting for early renewals.
Fixed Restrict Content Pro Migrator
If you want to switch from Restrict Content Pro to use Easy Digital Downloads with Recurring Payments and All Access instead, All Access has a migration tool to help keep your current customers working. However that tool was not always working correctly. An issue that sometimes caused it to break on step 1 has now been resolved.
Other bug fixes and improvements
- There were some cache clears that were not required and they have now been removed.
- The edd_purchase_link_top hook was not always present on the purchase form with AA, it now is.
- The price ID attribute was not accounted for in the
[edd_all_access]shortcode. It now is.
- Added some better error handling if someone passes an invalid license to the Software Licensing API
- Fixed an edge case in the cart where errors were being cleared when they shouldn’t have been
How to test the beta:
As with all of our beta releases, you can get access to the beta in your WordPress dashboard by going to “Downloads” > “Tools” > “Beta Versions”.