Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Place Woopay “Direct Checkout” Behind a Feature Flag #8088

Merged
merged 2 commits into from
Jan 29, 2024

Conversation

ricardo
Copy link
Member

@ricardo ricardo commented Jan 25, 2024

Fixes 2445-gh-Automattic/woopay

Changes proposed in this Pull Request

  • Place the "direct checkout" feature behind a _wcpay_feature_woopay_direct_checkout option feature flag.

Testing instructions

  1. Checkout to this branch and 2390-gh-Automattic/woopay.
  2. Add a new option: _wcpay_feature_woopay_direct_checkout set to 1.
  3. Follow the instructions in 2390-gh-Automattic/woopay and ensure it tests as expected.
  4. Set the feature flag to 0 and ensure the user is always redirected to the merchant checkout.
  5. Set _wcpay_feature_woopay_direct_checkout to 1 and _wcpay_feature_woopay_first_party_auth to 0 and ensure the user is always redirected to the merchant checkout.

  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@ricardo ricardo requested review from a team and bborman22 and removed request for a team January 25, 2024 05:22
@ricardo ricardo mentioned this pull request Jan 25, 2024
6 tasks
@botwoo
Copy link
Collaborator

botwoo commented Jan 25, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 8088 or branch name add/direct-checkout-feature-flag in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 6c90426
  • Build time: 2024-01-29 14:41:24 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Jan 25, 2024

Size Change: 0 B

Total Size: 1.27 MB

ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.06 kB
release/woocommerce-payments/assets/css/success.css 158 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 1.81 kB
release/woocommerce-payments/dist/blocks-checkout.css 1.81 kB
release/woocommerce-payments/dist/blocks-checkout.js 85.1 kB
release/woocommerce-payments/dist/checkout-rtl.css 318 B
release/woocommerce-payments/dist/checkout.css 319 B
release/woocommerce-payments/dist/checkout.js 37.1 kB
release/woocommerce-payments/dist/index-rtl.css 36.9 kB
release/woocommerce-payments/dist/index.css 37 kB
release/woocommerce-payments/dist/index.js 291 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.4 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 60.9 kB
release/woocommerce-payments/dist/multi-currency.css 3.4 kB
release/woocommerce-payments/dist/multi-currency.js 56.3 kB
release/woocommerce-payments/dist/order-rtl.css 676 B
release/woocommerce-payments/dist/order.css 679 B
release/woocommerce-payments/dist/order.js 42.2 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.31 kB
release/woocommerce-payments/dist/payment-gateways.css 1.31 kB
release/woocommerce-payments/dist/payment-gateways.js 39.8 kB
release/woocommerce-payments/dist/payment-request-rtl.css 153 B
release/woocommerce-payments/dist/payment-request.css 153 B
release/woocommerce-payments/dist/payment-request.js 13.4 kB
release/woocommerce-payments/dist/product-details.js 919 B
release/woocommerce-payments/dist/settings-rtl.css 10.3 kB
release/woocommerce-payments/dist/settings.css 10.3 kB
release/woocommerce-payments/dist/settings.js 234 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.5 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 710 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.6 kB
release/woocommerce-payments/dist/tos-rtl.css 230 B
release/woocommerce-payments/dist/tos.css 231 B
release/woocommerce-payments/dist/tos.js 22.1 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 2.06 kB
release/woocommerce-payments/dist/woopay-express-button-rtl.css 153 B
release/woocommerce-payments/dist/woopay-express-button.css 153 B
release/woocommerce-payments/dist/woopay-express-button.js 52.4 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.18 kB
release/woocommerce-payments/dist/woopay.css 4.19 kB
release/woocommerce-payments/dist/woopay.js 72.1 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 622 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 812 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.43 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.01 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 522 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 581 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/babel.config.js 160 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.css 2.37 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.js 13.5 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.rtl.css 2.37 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.03 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 291 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 403 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 299 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 742 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 572 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 411 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.8 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.83 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 502 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 355 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 429 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 781 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.27 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 392 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.05 kB

compressed-size-action

Copy link
Contributor

@bborman22 bborman22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was able to test this feature flag out locally after getting some local domain issues resolved (couldn't use just localhost as my WooPay domain, set up a hosts file entry for woopay.test instead).

A couple things I tested:

  • ✅ Test with _wcpay_feature_woopay_direct_checkout flag enabled (yes redirect)
  • ✅ Test with _wcpay_feature_woopay_first_party_auth flag disabled (no redirect)
  • ✅ Test with WooPay overall disabled (no redirect)
  • ✅ Test with an adapated extension enabled (Gift Cards) (no redirect)

This hits on all the main test scenarios from what I can tell and they all worked as expected. The code changes are also following other feature patterns and looked good!

@ricardo ricardo added the status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. label Jan 26, 2024
@ricardo
Copy link
Member Author

ricardo commented Jan 26, 2024

Marking as blocked so that we don't merge until #7890 is ready.

@bborman22
Copy link
Contributor

@ricardo I was wondering if you could merge it into that branch and then we'll use #7890 to get the feature and the flag into develop through that PR? @lovo-h let me know if you have a preference on how to handle this merge?

@lovo-h
Copy link
Contributor

lovo-h commented Jan 29, 2024

@lovo-h let me know if you have a preference on how to handle this merge?

@bborman22, this PR is independent enough from #7890 to be merged independently, so I don't have a preference; either way, works. Although, if we decide to merge this branch (i.e. add/direct-checkout-feature-flag) into poc/woopay-direct-checkout, we may want to consider removing the changelog generated in this branch.

@bborman22
Copy link
Contributor

we may want to consider removing the changelog generated in this branch

Good call. In general, I think I'd prefer this PR gets merged into poc/woopay-direct-checkout otherwise I think we'd have a gap where the feature is just enabled for everyone on develop until this PR is merged. It seems more complete to me to make our first merge into develop include the whole feature along with the feature flag, but I could be missing something. I'm going to finish / re-run my review on #7890 now so hopefully we can get both of these all merged today!

@lovo-h
Copy link
Contributor

lovo-h commented Jan 29, 2024

It seems more complete to me to make our first merge into develop include the whole feature along with the feature flag, but I could be missing something.

This is a great call-out. This also applies when switching between commits in the repo. With this said, I agree that it's better to merge this branch into the poc/woopay-direct-checkout branch 😎

@lovo-h lovo-h removed the status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. label Jan 29, 2024
@lovo-h lovo-h merged commit 2f815f5 into poc/woopay-direct-checkout Jan 29, 2024
21 checks passed
@lovo-h lovo-h deleted the add/direct-checkout-feature-flag branch January 29, 2024 17:20
@allie500 allie500 restored the add/direct-checkout-feature-flag branch February 6, 2024 16:24
@allie500 allie500 deleted the add/direct-checkout-feature-flag branch February 6, 2024 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants