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: Test Mode badge to Classic Checkout, Pay for Order, and Add Payment Method #9495

Merged
merged 20 commits into from
Oct 15, 2024

Conversation

danielmx-dev
Copy link
Contributor

@danielmx-dev danielmx-dev commented Sep 26, 2024

Fixes #9487

Changes proposed in this Pull Request

  • Add a "Test Mode" badge to Classic Checkout, Pay for Order, and Add Payment Method page that will match the badge already present in blocks checkout added by Updated blocks checkout payment method label design #9483
    • The styles are implemented using a grid layout to maintain consistency when the label size varies.

Testing Instructions - Prerequisites

  • Enable test mode.
  • Enable all payment methods.
  • Enable the following currencies: USD, EUR
  • Go to checkout

Testing Instructions - Checkout

  • Add a product to the cart over 50 USD and go to classic checkout
  • Verify that the test mode badge is displayed and that the layout is consistent whether the options are collapsed or expanded and in different resolutions.
    • Desktop
      image
    • Mobile
      image
  • Change the currency to EUR, verify that the payment methods are properly hidden
    • image
  • Change the address country between Belgium, Netherlands, Poland and verify that payment methods dynamically show/hide
    • image
  • Temporarily disable test mode and validate that the layout is consistent, but the badge is no longer displayed
    • Desktop
      image
    • Mobile
      image
  • Re-enable test mode

Testing Instructions - Add Payment Method

  • Go to My Account > Payment Methods > Add Payment Method
  • Validate that the test mode badge is displayed
    • image
  • Temporarily disable test mode and validate that the layout is preserved Re-enable test mode afterwards.

Testing Instructions - Pay for order

  • In WP Admin, create an order and open the customer payment page as a shopper
  • Validate that the test mode badge is displayed
    • image

Testing Instructions - Regression

  • In WP Admin, open a paid order.
  • Validate that the payment method string ONLY includes the name, and no additional characters/HTML is rendered.
    • image

  • 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

@danielmx-dev danielmx-dev self-assigned this Sep 26, 2024
@botwoo
Copy link
Collaborator

botwoo commented Sep 26, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 9495 or branch name add/test-mode-badge-classic-checkout 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: 64f0daa
  • Build time: 2024-10-15 16:25:58 UTC

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

Copy link
Contributor

github-actions bot commented Sep 26, 2024

Size Change: +454 B (0%)

Total Size: 1.33 MB

Filename Size Change
release/woocommerce-payments/dist/checkout-rtl.css 1.15 kB +225 B (+24%) 🚨
release/woocommerce-payments/dist/checkout.css 1.15 kB +226 B (+24%) 🚨
release/woocommerce-payments/dist/checkout.js 32.8 kB +3 B (0%)
ℹ️ 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 173 B
release/woocommerce-payments/assets/css/success.rtl.css 173 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 2.64 kB
release/woocommerce-payments/dist/blocks-checkout.css 2.64 kB
release/woocommerce-payments/dist/blocks-checkout.js 67.1 kB
release/woocommerce-payments/dist/cart-block.js 16.7 kB
release/woocommerce-payments/dist/cart.js 5.73 kB
release/woocommerce-payments/dist/express-checkout-rtl.css 230 B
release/woocommerce-payments/dist/express-checkout.css 230 B
release/woocommerce-payments/dist/express-checkout.js 14.7 kB
release/woocommerce-payments/dist/frontend-tracks.js 858 B
release/woocommerce-payments/dist/index-rtl.css 39.3 kB
release/woocommerce-payments/dist/index.css 39.2 kB
release/woocommerce-payments/dist/index.js 302 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.08 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.41 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 60.6 kB
release/woocommerce-payments/dist/multi-currency.css 3.41 kB
release/woocommerce-payments/dist/multi-currency.js 55.6 kB
release/woocommerce-payments/dist/order-rtl.css 730 B
release/woocommerce-payments/dist/order.css 730 B
release/woocommerce-payments/dist/order.js 42.7 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.35 kB
release/woocommerce-payments/dist/payment-gateways.css 1.35 kB
release/woocommerce-payments/dist/payment-gateways.js 39.3 kB
release/woocommerce-payments/dist/payment-request-rtl.css 230 B
release/woocommerce-payments/dist/payment-request.css 230 B
release/woocommerce-payments/dist/payment-request.js 14.1 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 386 B
release/woocommerce-payments/dist/plugins-page.css 386 B
release/woocommerce-payments/dist/plugins-page.js 20.1 kB
release/woocommerce-payments/dist/product-details-rtl.css 433 B
release/woocommerce-payments/dist/product-details.css 436 B
release/woocommerce-payments/dist/product-details.js 11.9 kB
release/woocommerce-payments/dist/settings-rtl.css 11.6 kB
release/woocommerce-payments/dist/settings.css 11.5 kB
release/woocommerce-payments/dist/settings.js 225 kB
release/woocommerce-payments/dist/subscription-edit-page.js 703 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.2 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 730 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 19.3 kB
release/woocommerce-payments/dist/tokenized-payment-request-rtl.css 230 B
release/woocommerce-payments/dist/tokenized-payment-request.css 230 B
release/woocommerce-payments/dist/tokenized-payment-request.js 14.9 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 235 B
release/woocommerce-payments/dist/tos.js 21.8 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 6.14 kB
release/woocommerce-payments/dist/woopay-express-button.js 24.5 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.52 kB
release/woocommerce-payments/dist/woopay.css 4.49 kB
release/woocommerce-payments/dist/woopay.js 71.6 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 625 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 814 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.46 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/jetpack-script-data.js 735 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/react-jsx-runtime.js 553 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.02 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/script-data.js 69 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/babel.config.js 163 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.css 2.45 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.js 14.2 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.rtl.css 2.45 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 280 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 625 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 333 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 626 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 417 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 584 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.css 215 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 721 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 412 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 621 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.04 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 294 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 408 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.59 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 301 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 746 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 574 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 414 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 543 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.78 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.84 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 545 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.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.7 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 507 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 358 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 428 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 782 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.09 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.26 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 391 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.04 kB

compressed-size-action

@danielmx-dev danielmx-dev marked this pull request as ready for review September 26, 2024 17:51
@danielmx-dev danielmx-dev requested review from a team and frosso and removed request for a team September 26, 2024 17:51
@danielmx-dev danielmx-dev changed the title Add/test mode badge classic checkout Add: Test Mode badge to Classic Checkout, Pay for Order, and Add Payment Method Sep 26, 2024
@danielmx-dev
Copy link
Contributor Author

After reviewing my own screenshots I noticed that the badge looked a bit off, so I just pushed a commit to vertically center it.

image

Despite looking a bit off in the description screenshots, the badge should be properly centered now during testing.

frosso
frosso previously requested changes Sep 30, 2024
Copy link
Contributor

@frosso frosso left a comment

Choose a reason for hiding this comment

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

Some small changes for i18n. I'll take care of them tomorrow.

I also wonder if we could benefit from some horizontal spacing between the label and the payment method name
Screenshot 2024-09-30 at 4 11 03 PM


if ( is_checkout() || is_add_payment_method_page() ) {
if ( WC_Payments::mode()->is_test() ) {
$test_mode_badge = '<span class="test-mode badge">Test Mode</span>';
Copy link
Contributor

Choose a reason for hiding this comment

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

We'll need to use the __() i18n wrapper, here

@frosso
Copy link
Contributor

frosso commented Oct 1, 2024

Screenshot 2024-10-01 at 6 16 31 PM Updated to have i18n wrapper, added 8px spacing in 7b273a6 .

Re-assigning for internal review, as discussed in team meeting.

@frosso frosso requested review from frosso and a team and removed request for frosso and a team October 1, 2024 16:17
@frosso frosso removed their request for review October 1, 2024 16:18
@frosso frosso requested review from frosso, a team and gpressutto5 and removed request for frosso and a team October 1, 2024 16:18
@gpressutto5
Copy link
Contributor

@danielmx-dev @frosso FYI paJDYF-foh-p2#comment-26617

@danielmx-dev
Copy link
Contributor Author

I have pushed a commit 4daaf36 to only render the badge for the credit card payment method as it was already done for blocks checkout in #9514

image

Copy link
Contributor

@gpressutto5 gpressutto5 left a comment

Choose a reason for hiding this comment

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

image image

Can we move the label to the text line when there's not enough space instead of changing the logo size? Like we do in the blocks checkout:

image

@danielmx-dev
Copy link
Contributor Author

I pushed an update to push the badge if there is not horizontal space.

image

If there's enough space the badge will appear next to the payment method title
image

@danielmx-dev
Copy link
Contributor Author

There are some themes that do not hide the radio button like Storefront does (e.g. twenty twenty-four), which was causing issues with the layout. I have updated the styles to make sure the styles look good in that scenario.

image

Since the payment methods other than card won't use the badge, I won't apply any of the new complex styles on them, to keep things simpler.

Copy link
Contributor

@gpressutto5 gpressutto5 left a comment

Choose a reason for hiding this comment

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

It looks great!

image

@danielmx-dev
Copy link
Contributor Author

The alignment of the title was a bit off so I added a couple of commits to fix it. It should be fine now.

Storefront:
image
image

Twenty twenty-four
image

Twenty twenty-two
image

@danielmx-dev danielmx-dev added this pull request to the merge queue Oct 15, 2024
Merged via the queue into develop with commit 3a0ed10 Oct 15, 2024
25 checks passed
@danielmx-dev danielmx-dev deleted the add/test-mode-badge-classic-checkout branch October 15, 2024 17:34
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.

Applying V2 card styles to V1 element: Test mode flag (shortcode)
5 participants