Easy Digital Downloads 3.0 – Release Update

Well the time has arrived! We are tagging our final release candidate for EDD 3.0. Many of you have been following along on our GitHub repository over the last several months, helping test and finding things that need to be addressed. We’re very thankful for your help getting to this point.

As we approach the final release date of July 13th, 2022 here are the changes since the last major tag we gave you all.

There have been a significant number of bug fixes, but we wanted to call attention to some of the larger changes that might pose an issue for developers as they integrate with EDD.

Reporting Changes

We’ve made a few changes related to the reports to help give store owners an actionable set of information on the ‘Dashboard’ of reports. Many of these changes came after we’ve had a chance to use Easy Digital Downloads 3.0 on our own site, for our daily business operations.

The first thing you’ll notice is that we’ve consolidated some of the ’tiles’. We reduced the number of tiles in this Dashboard to make the overall view much more useful.

Updated Reports Dashboard tiles with improved styles for relational data.

We’ve also been focused on fixing some issues around reporting with Timezones. As of EDD 3.0 all dates recorded in the database are in UTC. By doing this we gave ourselves a point of reference, so that we can always show the store’s reports based on the Timezone setting defined in the general WordPress settings.

Order status helper functions

As we started focusing on not just reporting on Gross and Net stats, we also found it necessary to define some ‘grouped’ order status keys. The following functions are helper functions to get specific order status that should be grouped. Each of these functions also contains a similar filter to allow extensions and customizations to add their own statuses.

edd_get_gross_order_statuses()

Returns an array of order status keys that should be used when wanting orders that should be considered part of a ‘gross’ report.


edd_get_net_order_statuses()

Returns an array of order status keys that should be used when wanting orders that should be considered part of a ‘net’ report.


edd_recoverable_order_statuses()

Returns an array of order status keys that can be used in the core payment recovery feature.


edd_get_complete_order_statuses()

Returns an array of order status keys that are considered ‘complete’. This means they have hit the end of any automated purchase process and no further action needs to be taken at this time.


edd_get_incomplete_order_statuses()

Returns an array of order status keys that are incomplete. This includes things like pending, abandoned, processing, failed or cancelled.


edd_get_refundable_order_statuses()

Returns an array of order status keys that can be refunded.


edd_get_deliverable_order_item_statuses()

Returns an array of order item status keys that should be considered when delivering files. Note that in EDD 3.0, deliverability should be handled at the individual order item level, since one order can contain multiple items with different statuses.

Enabled block editor on Download post type

The download custom post type is now available in the REST API, so your product pages can now be edited with the block editor.

Language files removed

We’ve removed all of our translation files from our package, in order to rely on the WordPress Translation community. We found a number of translation files that were out of date and causing fatal errors due to being incorrectly translated, so we felt it was best to remove them from our plugin entirely, and allow them to be downloaded from translate.wordpress.org.

On-the-fly Backwards Compatibility

We know that keeping stores accepting payments is important, and from day one of EDD 3.0’s development, we wanted to allow new purchases to be able to be completed, while the site was migrating existing payment data.

We’ve taken this a step further, so that when renewals are processed with Recurring Payments or licenses keys are interacted with (checking for updates, activating, deactivating, or checking), that these actions complete successfully with a ‘semi-backwards compatible’ layer of EDD that ensures critical functionality will still work.

We’ve also added the edd_v3_migration_pending option so that you can identify when a migration is either pending start or running. For instance, you may have seen this on our site a few weeks back while we were running this migration ourselves:

We displayed this message to users during the migration, using the edd_v3_migration_pending option.

Other Bug Fixes and Changes

  • Order details will now always show quantities for items.
  • Improved performance getting cart total, by making tax calculations more efficient.
  • Added a new Currency class, to help support multi-currency stores.
  • Filters were added to the discount list table.
  • Added a new edd_is_cart_empty() helper function.
  • Improved performance of status calculations for downloads.

So what is next?

Well, now that we’ve tagged our final release, we’re going to be pushing this to WordPress.org as a ‘development version’ in order to allow translators to start translating all the new strings.

Shortly after that we will tag our final release on WordPress.org and we’ll go live on July 13, 2022!

As always with large releases like this, especially ones that are moving data around, we would suggest making backups of your site and database prior to any changes being made, as well as testing this out on a staging or local copy of your site first! We’ve tested it extensively and are already running this on our site, but it is always good practice to try it in staging first.

Thanks for your help and support!

7 responses... add one

Version 3.0 feels like it’s been years in the making, and I am not even on the front lines of its development, so I wager it’s felt like even longer for the team involved.

Congrats when the day comes, for all of the hard work and effort put forth for this.

Thanks Michael!

It has been a long project and I’m very excited for the results. As we’ve been using it internally for the last couple of weeks on our own site, we’ve been able to fine tune some aspects of it before the final release that really make it shine for store owners.

Thanks for your words of encouragement!

Looking forward to this, thanks for all the hard work. I know it hasn’t been easy.

Leave a Reply to Chris Klosowski Cancel reply

Your email address will not be published. Required fields are marked *