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

Fix Teams for WooCommerce Memberships on product WooPay Express Checkout Button #7239

Conversation

alefesouza
Copy link
Member

@alefesouza alefesouza commented Sep 20, 2023

Changes proposed in this Pull Request

Fix Teams for WooCommerce Memberships fields data not send when clicking WooPay Express Checkout Button on product page.

Testing instructions

  • Install WooCommerce Memberships and Teams for WooCommerce Memberships plugins.
  • Create a team.
  • Create a product to join this team.
  • On product page, type the team name and check the Take up a seat checkbox.
  • Click the WooPay button.
  • You should be redirected to WooPay with the correct cart data.
  • On product page, do not fill out the team name field.
  • Click the WooPay button.
  • An error message should be shown.

  • 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

@alefesouza alefesouza requested a review from hsingyuc September 20, 2023 01:56
@botwoo
Copy link
Collaborator

botwoo commented Sep 20, 2023

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 7239 or branch name fix/teams-for-wc-memberships-on-product-woopay-express-checkout-button 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: 1745365
  • Build time: 2024-06-12 00:16:34 UTC

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

@github-actions
Copy link
Contributor

github-actions bot commented Sep 20, 2023

Size Change: 0 B

Total Size: 1.25 MB

ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.08 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.08 kB
release/woocommerce-payments/assets/css/success.css 172 B
release/woocommerce-payments/assets/css/success.rtl.css 172 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 2.07 kB
release/woocommerce-payments/dist/blocks-checkout.css 2.07 kB
release/woocommerce-payments/dist/blocks-checkout.js 51.1 kB
release/woocommerce-payments/dist/bnpl-announcement-rtl.css 530 B
release/woocommerce-payments/dist/bnpl-announcement.css 531 B
release/woocommerce-payments/dist/bnpl-announcement.js 20 kB
release/woocommerce-payments/dist/cart-block.js 15.3 kB
release/woocommerce-payments/dist/cart.js 4.5 kB
release/woocommerce-payments/dist/checkout-rtl.css 599 B
release/woocommerce-payments/dist/checkout.css 599 B
release/woocommerce-payments/dist/checkout.js 31.5 kB
release/woocommerce-payments/dist/express-checkout-rtl.css 155 B
release/woocommerce-payments/dist/express-checkout.css 155 B
release/woocommerce-payments/dist/express-checkout.js 3.59 kB
release/woocommerce-payments/dist/index-rtl.css 41.1 kB
release/woocommerce-payments/dist/index.css 41 kB
release/woocommerce-payments/dist/index.js 293 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.28 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 59.5 kB
release/woocommerce-payments/dist/multi-currency.css 3.29 kB
release/woocommerce-payments/dist/multi-currency.js 54.7 kB
release/woocommerce-payments/dist/order-rtl.css 733 B
release/woocommerce-payments/dist/order.css 735 B
release/woocommerce-payments/dist/order.js 41.8 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.21 kB
release/woocommerce-payments/dist/payment-gateways.css 1.21 kB
release/woocommerce-payments/dist/payment-gateways.js 38.6 kB
release/woocommerce-payments/dist/payment-request-rtl.css 155 B
release/woocommerce-payments/dist/payment-request.css 155 B
release/woocommerce-payments/dist/payment-request.js 5.92 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 388 B
release/woocommerce-payments/dist/plugins-page.css 388 B
release/woocommerce-payments/dist/plugins-page.js 19.3 kB
release/woocommerce-payments/dist/product-details-rtl.css 398 B
release/woocommerce-payments/dist/product-details.css 402 B
release/woocommerce-payments/dist/product-details.js 11.2 kB
release/woocommerce-payments/dist/settings-rtl.css 11 kB
release/woocommerce-payments/dist/settings.css 10.9 kB
release/woocommerce-payments/dist/settings.js 201 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 19.4 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 693 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 18.5 kB
release/woocommerce-payments/dist/tokenized-payment-request-rtl.css 155 B
release/woocommerce-payments/dist/tokenized-payment-request.css 155 B
release/woocommerce-payments/dist/tokenized-payment-request.js 6.33 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 236 B
release/woocommerce-payments/dist/tos.js 21 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 4.86 kB
release/woocommerce-payments/dist/woopay-express-button-rtl.css 155 B
release/woocommerce-payments/dist/woopay-express-button.css 155 B
release/woocommerce-payments/dist/woopay-express-button.js 15.1 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.25 kB
release/woocommerce-payments/dist/woopay.css 4.22 kB
release/woocommerce-payments/dist/woopay.js 69.4 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 622 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 815 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.44 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.01 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 196 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 20 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 196 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 627 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 20 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 628 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 390 B
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-connection/src/sso/jetpack-sso-admin-create-user.css 214 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 523 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 722 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 408 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 517 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.36 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.36 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

…on' into fix/fix-gravity-forms-addon-on-product-woopay-express-checkout-button
…on' into fix/fix-gravity-forms-addon-on-product-woopay-express-checkout-button
…heckout-button' into fix/teams-for-wc-memberships-on-product-woopay-express-checkout-button
@hsingyuc hsingyuc self-assigned this Sep 27, 2023
Copy link
Contributor

@hsingyuc hsingyuc left a comment

Choose a reason for hiding this comment

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

@alefesouza Thank you for working on this! If I test a team that doesn't exist, I can still get redirected to WooPay. Is that intentional?

Screen Shot 2023-09-27 at 2 13 58 PM

@alefesouza
Copy link
Member Author

@hsingyuc it looks like it's expected as the same happens on normal checkout flow, the purchase is for the user create a team which have access to a membership plan and then the user can add new users to this team.

While testing I noticed that this extension requires the user to be authenticated on merchant store if an existing email is detected, otherwise the extension will create a new user, currently we cannot create new users from WooPay and probably we would need to show an alert asking the user to login if the email exists on merchant store, @pierorocca should we skip this extension for now?

@pierorocca
Copy link
Contributor

pierorocca commented Sep 28, 2023

@nerrad you mentioned your team is looking at the possibility of enabling this use case. Can you share more detail and tentative timelines to help inform our path forward here? Many thanks.

@nerrad
Copy link

nerrad commented Sep 28, 2023

you mentioned your team is looking at the possibility of enabling this use case

hmm... I might need my memory refreshed on where I stated this, I don't recall where I might have mentioned that. What I can tell you is that to my knowledge this is not something currently on our roadmaps. How critical is it?

It looks like the behaviour here is something that the extension needs to implement. What value is there having Woo core handle automatically requesting login if the email provided exists for a given user account?

@pierorocca
Copy link
Contributor

pierorocca commented Sep 28, 2023

you mentioned your team is looking at the possibility of enabling this use case

hmm... I might need my memory refreshed on where I stated this, I don't recall where I might have mentioned that. What I can tell you is that to my knowledge this is not something currently on our roadmaps. How critical is it?

@nerrad it was during the BE showcase Points & Rewards and Gift Card Demo. We have you on video ;). One of the limitations I noted was the inability for WooPay to create a store account so that a shopper could earn points if they hadn't signed up in the store. To which you responded IIRC that your team was looking at a way to help facilitate the account creation. Did I understand incorrectly?

@nerrad
Copy link

nerrad commented Sep 29, 2023

it was during the BE showcase Points & Rewards and Gift Card Demo. We have you on video ;). One of the limitations I noted was the inability for WooPay to create a store account so that a shopper could earn points if they hadn't signed up in the store. To which you responded IIRC that your team was looking at a way to help facilitate the account creation. Did I understand incorrectly?

Ahh right, this is slightly different than what is being referred to in this issue though. What I was referring to in the call was implementing a "create user" flow that would happen post-purchase (likely embedded within the order confirmation page).

Right now account creation is already facilitated by WC checkout but one distinction between the blocks and the shortcode based flow is that with the shortcode checkout, one of the available options (depending on how the store is configured) is for the shopper to provide username and password for the created account. The block flow does not provide that option (and that's what ideally would be post-purchase).

@pierorocca
Copy link
Contributor

a "create user" flow that would happen post-purchase (likely embedded within the order confirmation page).

Thanks @nerrad. Do you think in that scenario the points would be earned on that just completed purchase or only on future purchases? Ideally we'd want the user to not miss out on points. There's the challenge of surfacing store's account / privacy policy which may make it too challenging to do pre-purchase in a hosted context. Post-purchase isn't an acceptable fallback as a start.

@nerrad
Copy link

nerrad commented Sep 30, 2023

Thanks @nerrad. Do you think in that scenario the points would be earned on that just completed purchase or only on future purchases? Ideally we'd want the user to not miss out on points. There's the challenge of surfacing store's account / privacy policy which may make it too challenging to do pre-purchase in a hosted context. Post-purchase isn't an acceptable fallback as a start.

It is likely when we implement an embedded account creation flow for the new checkout that it will default to post-purchase - for the majority of stores this will prevent shopper friction on checkout causing abandonment. My comments are exclusively about what WC core would likely ship with.

In the context of the described features in this issue, it's up to the membership extension (+ however WooPay adds support for the extension) to ensure assigned points on initial purchase (and account creation) - I would think that receiving those points for account creation would even be an incentive to complete the signup?

Regardless, if post-purchase won't work for this particular extension, it sounds like there'd need to be a custom flow added by the extension to the checkout. I must admit though, I'm a bit confused about whether this issue is about attributing earned points or the teams feature in WooCommerce Memberships.

@pierorocca
Copy link
Contributor

Typo on my part...post-purchase would be an acceptable place to start and optimize from there.

@alefesouza
Copy link
Member Author

@hsingyuc #8924 fixes the account creation issue on this PR too, could you review this again?

@alefesouza alefesouza requested a review from hsingyuc June 12, 2024 00:14
Copy link
Contributor

@hsingyuc hsingyuc left a comment

Choose a reason for hiding this comment

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

@alefesouza test as expected. 👍

@alefesouza alefesouza added this pull request to the merge queue Jun 13, 2024
Merged via the queue into develop with commit 6b5b9a6 Jun 13, 2024
23 checks passed
@alefesouza alefesouza deleted the fix/teams-for-wc-memberships-on-product-woopay-express-checkout-button branch June 13, 2024 19:00
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.

5 participants