Official development blog for Easy Digital Downloads

After nearly a month in development, the first beta of version Stripe Gateway 2.6 is available for testing. This upcoming release has quite a few significant improvements along with some bug fixes.

Existing Cards feature

Previously the Stripe Gateway has always required that a customer enter in their full card details in order to complete their purchase. In Stripe 2.6, logged in users will be presented with the ability to select a card they have used on a previous purchase or add a new card.

Uses will also be able to manage their cards associated with their Stripe account, including adding new cards, setting a new default card, removing a card, or update a card’s billing details. This form is included by default with the edd_profile_editor shortcode, but can also be included in a custom integration using the edd_stripe_manage_cards() function.

Because it’s helpful to know if this feature is being used, payments that use an existing card will have a flag set in post meta. We’ve included the ability to see this flag within the View Order Details in the ‘Payment Meta’ metabox, as well as a report in Downloads → Reports → Stripe Reports. This provides a graph showing the number of times a new card or existing card was used along with the revenue generated by each, to give store owners some insight into how the feature is affecting purchase behavior.

The existing card feature is only auto-enabled on new installations. When upgrading an existing site, it will need to enabled first. This is to prevent any unexpected display issues on checkout, giving store owners a chance to test it out before using it on their live sites.

If you are using Recurring Payments, the Existing Cards feature requires you be using Recurring Payments 2.7.1 or later.

How does this work?
It’s important to note that the Existing Cards feature in Stripe Gateway 2.6 does not keep any credit card information on a store’s server or database. Stripe has an existing API that allows us to request the payment methods of an existing Stripe customer record. Since the Stripe and Recurring Payments extensions for Easy Digital Downloads keep this Stripe customer ID associated with the EDD Customer record, we can retrieve it for users who are authenticated into their accounts. Full card details are not available via this API, and neither the full card number nor verification code (CVC) can be accessed. This data is securely stored on the Stripe servers.

Statement Descriptor setting

Easy Digital Downloads has previously used a combination of the products purchased and/or store name to determine what the statement descriptor, which is what charges from the store look like on a customer’s bank statements. In version 2.6, we’re adding the ability to define a Statement Descriptor to help customers easily identify charges from a store. This setting also comes with an email token so a customer can be informed of what the charges will look like in their purchase receipts.

Auto-complete attributes

When inputting card details into the checkout form, Stripe Gateway now fully supports the standard autocomplete attributes, allowing customers to use payment methods they have stored in their browser’s form fill tools, or other programs that securely store their card data.

Stripe Radar support

Radar is Stripe’s built in fraud prevention tool. It gives account owners the ability to define rules for payments that present risk to the store in the form of fraudulent purchases. If a payment via Stripe triggers a rule that allows the charge, but presents the store owner to review it, the Stripe Gateway extension will add a payment note stating that it was flagged for review. It will also add a payment note if a payment has been manually approved after it’s been reviewed.

Additional enhancements

Stripe Customer IDs migrated to customer meta, instead of user meta

Refactored the Javascript for better abstraction and performance

Improved flexibility of the card validation HTML5 attributes

Notable bug fixes

Duplicate customer records created during failed payments

Remove WP Version from the loading of the Stripe.js

Naming convention conflict with other projects using Stripe class

Upgrades needed

In order to facilitate migrating the Stripe Customer IDs to the customer meta table, we’ve included an upgrade routine that will handle this process. This can easily be run by clicking the link that will be presented to admins via a WordPress Admin Notice. We’ve also included the ability for this upgrade routine to be run via WPCLI. More instructions on that can be found by clicking the “Learn more about this upgrade” link in the notice.

Beta testing

The first beta of Stripe Gateway version 2.6 is available to all valid license holders now, allowing store owners to try it out on their staging environments before going live with it. We’ve been using it on our site prior to releasing this beta and are confident with this version, but we encourage testing first to be sure. To learn how to opt-in to beta versions of our extensions, you can use this guide.

Unfortunently, stored cards do not work with Stripe Checkout, since they have their own ‘remember me’ option. The Stripe Checkout modal is 100% loaded from Stripe directly, so it’s not something we can control.

I’m really surprised by this. Maybe to me it just seems like an “obvious” feature request to those who know about it, and those who don’t know what that Stripe can do Apple Pay don’t request it. Have you sent out a survey to see if there would actually be interest/usage from EDD Stripe customers?

Echoing everyone else, we’ve been patiently waiting for Apple Pay integration too with Stripe’s EDD! Stripe supports it and the Stripe EDD extension should factor it. Everything has gone mobile and it would make sense to help make checkout process much simpler!

We’re actively working on a number of Stripe enhancements that will likely include the extended features of Stripe. In order to do this, we’re having to rewrite how Stripe works from the ground up with EDD, including preparing for the upcoming European regulatory changes.

With the addition of Stripe Elements, v3 of their API, and the new PaymentIntents features necessary for the September changes, the groundwork is being developed for including these other gateway services.

Thanks for the feedback, and I hope we can have something for you in the near future.