Checkout for WooCommerce is out it's a big milestone release for us!
In this release, we tackled our current white whale: Stripe 4.x
For those who aren't aware, exactly 4 days before we released version 1.0.0, WooCommerce released a major overhaul of their Stripe gateway which totally broke our integration. This caused us to really re-evaulate our submission model and ask ourselves questions like Why are we having to jump through so many hoops to support gateways like Stripe?
We realized that there were some subtle differences in our checkout submission process versus how WooCommerce natively handles submissions:
Checkout for WooCommerce
You wouldn't think this would make that much of a difference, but it turns out that this difference is crucial. Gateways like Stripe 4.x (and even Stripe 3.x) as well as BlueSnap intercept the submit event to do their credit card tokenization and then re-fire submit.
Since our call chain totally skipped submit, we ran into a multitude of compatibility problems.
Our refactored flow follows the native submission model as closely as possible, which should protect us from Stripe 5.x or the next major overhaul.
This is something we should have thought of before release, but we didn't. We don't use the phone fields much in our own e-commerce stores, so it slipped our notice.
In 1.2.0 it's now possible enable phone fields using this handy snippet:
In order to preserve our UI/UX, we add a phone field to both the shipping and the billing address. The shipping phone is displayed beneath the shipping address when viewing an order in the admin.
We don't love the notes field because it's not used by most customers, but we recognize it's importance. If you'd like to turn on the notes field, you can now do so with this snippet.
We worked directly with several customers to get feedback on these and other changes. Thank you to everyone who participated, and please continue to tell us what you need to be successful with Checkout for WooCommerce. We're listening!
Full Change Log
- We refactored our submission model to work with more gateways out of the box. 🏗
- Stripe 4.x gateway support! (Backwards compatible with Stripe 3.x) 💳
- AND! Stripe Checkout (modal)
- ALSO: Bancontact, SOFORT, Giropay, iDeal, P24, Alipay, SEPA Direct Debit, etc
- BlueSnap gateway support 💳
- Phone fields support (added with filter) 📞
- Notes field support (added with filter) 📝
As much as we try to avoid bugs in our releases, we definitely missed a few important ones in 1.2.0. We released 1.2.1 this afternoon with the following changes:
- BUG: Fix issue where "Same as Shipping" radio button resulted in billing field errors.
- BUG: Fix issue where "View cart" button could be hijacked with checkout url.
- BUG: Fix issue where JS error was possible on checkout page.
- BUG: Fix issue where billing phone was required even though phone fields were disabled.
- BUG: Fix issue where double or triple clicking submit could result in multiple orders.
- BUG: Fix issue where "Create Account" checkbox did not result in an account being created.
- ENHANCEMENT: Remove link underline on header logo area.
- FEATURE: Add support for Authorize.net CIM
We're working on end-to-end testing, and an overall refinement of our testing procedures to help us avoid misses like this in the future.