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

Add support for button styling for ECE buttons #8988

Merged
merged 9 commits into from
Jun 25, 2024

Conversation

reykjalin
Copy link
Contributor

@reykjalin reykjalin commented Jun 20, 2024

Fixes #8951

Changes proposed in this Pull Request

  • Respect Apple Pay and Google Pay button settings when using ECE buttons.

No automated tests because it's hard to make assertions on iframes and their style.

Testing instructions

Important

There's an issue with Storefront that causes the button width to be incorrect. We're still discussing how to address that. In the meantime you can test with Twenty-Twenty Four. See #8951 (comment) for details.

Important

HTTPS is a hard requirement for testing the buttons. They will not be rendered unless you have a valid HTTPS URL to test with. Jurassic tube is recommended for permanent custom URLs.

Setup

  1. Make sure you have a valid HTTPS URL you can use for testing the buttons.
  2. Register the domain for Apple Pay with the following CLI command:
curl https://api.stripe.com/v1/payment_method_domains \
     # Don't forget the `:` at the end!
  -u "<secret key, sk_xxx or rk_xxx>:" \
  -H "Stripe-Account: <merchant account ID>" \
     # Example: my.domain.com
  -d domain_name="<your_url>"
  1. Enable ECE buttons by setting the _wcpay_wcpay_feature_stripe_ece to 1: wp option set _wcpay_feature_stripe_ece 1.
  2. Keep a tab open on wp-admin → Payments → Settings → Express checkouts → Apple Pay/Google Pay → Customize. You'll be making changes there during the tests.
  3. Add a simple product to your cart.

Test button sizes

Note

Due to limitations in Stripe's API the maximum height of the buttons is 55px instead of the 56px suggested by the Large option in the settings. We're discussing this in #8951 (comment).

  1. Select a size in the settings.
  2. Open the shortcode Cart page.
  3. Inspect the button using your browser's developer tools.
  4. Make sure the height matches the setting.
  5. Repeat steps (2)-(4) for the shortcode Checkout, and Blocks Cart and Checkout pages.
  6. Repeat steps (1)-(5) for the other 2 sizes.

Test button theme (i.e. color)

Important

Stripe only supports an Outline version of the Google Pay button so both the Light and Outline themes will have an outline.

Note

You can keep the size the same while doing this test.

  1. Select a theme in the settings.
  2. Open the shortcode Cart page.
  3. Make sure the button theme matches the setting.
  4. Repeat steps (2)-(4) for the shortcode Checkout, and Blocks Cart and Checkout pages.
  5. Repeat steps (1)-(5) for the other 2 sizes.

Test combinations

  • Test other combinations of themes and sizes (not necessarily exhaustive, pick 2-3 additional combinations you haven't tested) and make sure the settings are applied correctly.

  • 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

@botwoo
Copy link
Collaborator

botwoo commented Jun 20, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 8988 or branch name add/8951-support-style-settings-with-ece-buttons 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: 3a3dd6c
  • Build time: 2024-06-25 04:00:44 UTC

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

Copy link
Contributor

github-actions bot commented Jun 20, 2024

Size Change: +471 B (0%)

Total Size: 1.25 MB

Filename Size Change
release/woocommerce-payments/dist/blocks-checkout.js 51.9 kB +206 B (0%)
release/woocommerce-payments/dist/express-checkout.js 5.14 kB +265 B (+5%) 🔍
ℹ️ 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/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.57 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/index-rtl.css 41.1 kB
release/woocommerce-payments/dist/index.css 41.1 kB
release/woocommerce-payments/dist/index.js 295 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.69 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.94 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.2 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

@reykjalin reykjalin marked this pull request as ready for review June 21, 2024 20:05
@reykjalin reykjalin requested review from a team and rafaelzaleski and removed request for a team June 21, 2024 21:11
@reykjalin reykjalin added pr: needs design review needs design The issue requires design input/work from a designer. labels Jun 24, 2024
@reykjalin reykjalin requested review from elizaan36 and nikkivias June 24, 2024 19:04
@reykjalin
Copy link
Contributor Author

@nikkivias @elizaan36 the screenshots of the different options are in #8951 (comment)

Copy link

@elizaan36 elizaan36 left a comment

Choose a reason for hiding this comment

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

LGTM! Thanks!

Copy link
Contributor

@rafaelzaleski rafaelzaleski left a comment

Choose a reason for hiding this comment

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

Edit: Just saw this in the PR description 😅

The light version of the button is the same as the outline version. Also, I believe we need to review the font sizes, as there is a noticeable difference between the WooPay button and the ECE button.

Screen Shot 2024-06-24 at 16 41 19 PM

@reykjalin
Copy link
Contributor Author

Also, I believe we need to review the font sizes, as there is a noticeable difference between the WooPay button and the ECE button.

We don't have direct control over font sizes, but we can set the base font size for Stripe's elements, so we can probably figure out a way to get the exact font size we want.

I'm curious if this should be a separate issue though? Are the font size not different in the PRB implementation? 🤔 If they're different there I'd say this isn't a regression and shouldn't be fixed in this PR.

@rafaelzaleski
Copy link
Contributor

We don't have direct control over font sizes, but we can set the base font size for Stripe's elements, so we can probably figure out a way to get the exact font size we want.

I'm curious if this should be a separate issue though? Are the font size not different in the PRB implementation? 🤔 If they're different there I'd say this isn't a regression and shouldn't be fixed in this PR.

I think it fits the scope of #8136.
I noticed that the GPay button uses an svg for the text and I think we should probably do the same in WooPay: #8136 (comment)

@reykjalin
Copy link
Contributor Author

I think it fits the scope of #8136.

Ah yes, I agree!

I noticed that the GPay button uses an svg for the text and I think we should probably do the same in WooPay

Yes, that sounds like a nice solution. It'd ensure it scales with the size of the button effortlessly too 👍

@reykjalin reykjalin requested a review from rafaelzaleski June 25, 2024 03:58
Copy link
Contributor

@rafaelzaleski rafaelzaleski left a comment

Choose a reason for hiding this comment

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

The code looks good, and the settings are correctly applied to the ECE buttons. Nice work!

There are some design inconsistencies, but they are out of scope for this review and have already been addressed in issue #8951 with the design team, resulting in new issues being created.

@reykjalin reykjalin added this pull request to the merge queue Jun 25, 2024
Merged via the queue into develop with commit e85cc3b Jun 25, 2024
23 checks passed
@reykjalin reykjalin deleted the add/8951-support-style-settings-with-ece-buttons branch June 25, 2024 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs design The issue requires design input/work from a designer. pr: needs design review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ensure Button Settings are applied in ECE and Obtain Design Approval
4 participants