Automattic / woocommerce-payments

Accept payments via credit card. Manage transactions within WordPress.
https://wordpress.org/plugins/woocommerce-payments/
Other
172 stars 69 forks source link

[GlobalStep] Blocks checkout not displaying correct content for subscription products: `Save payment information` checkbox is shown (should be hidden); `future payments` mandate not shown #5549

Closed gglobalstep closed 8 months ago

gglobalstep commented 1 year ago

Bug Description:

"Save payment information" checkbox is displayed for subscription product and legal mandate note fails to display on test page with Checkout Block.

Environment:

Woocommerce Version: WooCommerce 7.3.0 WooCommerce WooCommerce Payments - 5.5.0 test-2 WordPress version: v6.1.1

PC: Windows 10, MacOS 12.6.1 (Monterey) Chrome(Version 110.0.5481.78) Safari Version 16.2 (18614.3.7.1.5)

Steps To Reproduce:

  1. Create any test site using the JN site.
  2. Install and activate all the required plugins.
  3. Make sure the UPE is disabled using the WCPay Dev Tools.
  4. Create a test page with Checkout block.
  5. As a customer, add a subscription product to the cart and proceed to a blocks checkout.
  6. Observe that, "Save payment information" checkbox is displayed for subscription product and payment method storage legal disclaimer note fails to display.

Actual Result:

"Save payment information" checkbox is displayed for subscription product and legal mandate note fails to display on test page. with Checkout Block

Expected Result:

"Save payment information" checkbox should not be displayed for subscription product and legal mandate note should be displayed on test page with Checkout Block.

Screenshot:

#5549

Isolating the problem (mark completed items with an [x]):

` ### WordPress Environment ### WC Version: 7.3.0 REST API Version: ✔ 7.3.0 WC Blocks Version: ✔ 9.1.5 Action Scheduler Version: ✔ 3.4.0 Log Directory Writable: ✔ WP Version: 6.1.1 WP Multisite: – WP Memory Limit: 256 MB WP Debug Mode: ✔ WP Cron: ✔ Language: en_US External object cache: – ### Server Environment ### Server Info: Apache/2.4.55 (Unix) OpenSSL/1.0.2g PHP Version: 7.4.33 PHP Post Max Size: 1 GB PHP Time Limit: 30 PHP Max Input Vars: 5000 cURL Version: 7.47.0 OpenSSL/1.0.2g SUHOSIN Installed: – MySQL Version: 5.7.33-0ubuntu0.16.04.1-log Max Upload Size: 512 MB Default Timezone is UTC: ✔ fsockopen/cURL: ✔ SoapClient: ✔ DOMDocument: ✔ GZip: ✔ Multibyte String: ✔ Remote Post: ✔ Remote Get: ✔ ### Database ### WC Database Version: 7.3.0 WC Database Prefix: wp_ Total Database Size: 7.66MB Database Data Size: 5.48MB Database Index Size: 2.18MB wp_woocommerce_sessions: Data: 0.05MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_order_itemmeta: Data: 0.11MB + Index: 0.14MB + Engine InnoDB wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_actions: Data: 0.19MB + Index: 0.20MB + Engine InnoDB wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_logs: Data: 0.17MB + Index: 0.14MB + Engine InnoDB wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_comments: Data: 0.13MB + Index: 0.09MB + Engine InnoDB wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_options: Data: 3.48MB + Index: 0.08MB + Engine InnoDB wp_postmeta: Data: 0.39MB + Index: 0.38MB + Engine InnoDB wp_posts: Data: 0.11MB + Index: 0.06MB + Engine InnoDB wp_snippets: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_termmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_term_relationships: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_term_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_usermeta: Data: 0.06MB + Index: 0.03MB + Engine InnoDB wp_users: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_admin_notes: Data: 0.05MB + Index: 0.00MB + Engine InnoDB wp_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_wc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_product_attributes_lookup: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_product_download_directories: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_product_meta_lookup: Data: 0.02MB + Index: 0.09MB + Engine InnoDB wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB ### Post Type Counts ### attachment: 25 page: 10 post: 2 product: 25 product_variation: 7 revision: 4 shop_coupon: 1 shop_order: 55 shop_order_refund: 5 shop_subscription: 23 ### Security ### Secure connection (HTTPS): ✔ Hide errors from visitors: ✔ ### Active Plugins (6) ### Query Monitor: by John Blackbourn – 3.11.1 Code Snippets: by Code Snippets Pro – 3.2.2 Companion Plugin: by Osk – 1.29 WooCommerce Payments Dev Tools: by Automattic – WooCommerce Payments: by Automattic – 5.5.0-test-2 WooCommerce: by Automattic – 7.3.0 ### Inactive Plugins (3) ### Akismet Anti-Spam: by Automattic – 5.0.2 Hello Dolly: by Matt Mullenweg – 1.7.2 WooCommerce Subscriptions: by WooCommerce – 4.8.1 ### Dropin Plugins (1) ### db.php: Query Monitor Database Class (Drop-in) ### Settings ### API Enabled: – Force SSL: – Currency: USD ($) Currency Position: left Thousand Separator: , Decimal Separator: . Number of Decimals: 2 Taxonomies: Product Types: external (external) grouped (grouped) simple (simple) subscription (subscription) variable (variable) variable subscription (variable-subscription) Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog) exclude-from-search (exclude-from-search) featured (featured) outofstock (outofstock) rated-1 (rated-1) rated-2 (rated-2) rated-3 (rated-3) rated-4 (rated-4) rated-5 (rated-5) Connected to WooCommerce.com: – Enforce Approved Product Download Directories: ✔ Order datastore: WC_Order_Data_Store_CPT ### WC Pages ### Shop base: #5 - /shop/ Cart: #6 - /cart/ Checkout: #7 - /checkout/ My account: #8 - /my-account/ Terms and conditions: ❌ Page not set ### Theme ### Name: Storefront Version: 4.2.0 Author URL: https://woocommerce.com/ Child Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme WooCommerce Support: ✔ ### Templates ### Overrides: – ### Subscriptions ### WCS_DEBUG: ✔ No Subscriptions Mode: ✔ Live Subscriptions Live URL: https://bloody-clam.jurassic.ninja Subscriptions-core Library Version: 5.3.1 Subscription Statuses: wc-on-hold: 5 wc-cancelled: 1 wc-active: 17 WooCommerce Account Connected: ❌ No ### Store Setup ### Country / State: United States (US) — California ### Subscriptions by Payment Gateway ### WooCommerce Payments: wc-active: 17 wc-cancelled: 1 wc-on-hold: 5 ### Payment Gateway Support ### WooCommerce Payments: products refunds multiple_subscriptions subscription_cancellation subscription_payment_method_change_admin subscription_payment_method_change_customer subscription_payment_method_change subscription_reactivation subscription_suspension subscriptions gateway_scheduled_payments tokenization add_payment_method ### Admin ### Enabled Features: activity-panels analytics coupons customer-effort-score-tracks experimental-products-task experimental-import-products-task experimental-fashion-sample-products shipping-smart-defaults shipping-setting-tour homescreen marketing multichannel-marketing mobile-app-banner navigation onboarding onboarding-tasks remote-inbox-notifications remote-free-extensions payment-gateway-suggestions shipping-label-banner subscriptions store-alerts transient-notices woo-mobile-welcome wc-pay-promotion wc-pay-welcome-page Disabled Features: minified-js new-product-management-experience settings Daily Cron: ✔ Next scheduled: 2023-02-15 06:32:39 +00:00 Options: ✔ Notes: 39 Onboarding: completed ### WooCommerce Payments ### Version: 5.5.0-test-2 Connected to WPCOM: Yes Blog ID: 215596990 Account ID: acct_1MbIYnFdBqgM16K3 ### Action Scheduler ### Canceled: 17 Oldest: 2023-02-14 07:45:36 +0000 Newest: 2023-02-14 14:25:55 +0000 Complete: 475 Oldest: 2023-02-14 07:11:27 +0000 Newest: 2023-02-14 11:19:53 +0000 Pending: 20 Oldest: 2023-02-14 15:10:55 +0000 Newest: 2023-04-14 12:08:57 +0000 ### Status report information ### Generated at: 2023-02-14 15:11:08 +00:00 `
frosso commented 1 year ago

Reference to the critical flows: https://github.com/Automattic/woocommerce-payments/wiki/Testing-instructions-for-critical-flows#toggle-terms-when-saving-payment-methods

james-allan commented 1 year ago

I haven't been able to replicate this on a fresh JN site or on GS's test site.

My setup:

Screenshot 2023-02-16 at 11 35 52 am
WC v7.4
WC Payments v5.5.0-test2

Subscription product in cart without a "Save payment information" checkbox shown.

Screenshot 2023-02-16 at 11 37 53 am

On https://bloody-clam.jurassic.ninja/test-checkout

Screenshot 2023-02-16 at 11 39 42 am

Not sure if I'm missing anything. Given I can't replicate this issue on my environment or the test environment, I'm going to remove the confirmed bug labels.

james-allan commented 1 year ago

Not sure if I'm missing anything.

I've been able to replicate it now. It requires UPE to be disabled - that was the missing piece.

james-allan commented 1 year ago

I've removed the critical label from this as this doesn't appear to impact merchants or customers in any meaningful way.

The payment method storage mandate (see below) missing is important, so I've given it a high priority.

Screenshot 2023-02-16 at 12 46 40 pm

Purchasing a subscription with WC Pay with and without WC Subscriptions continues to work as expected if you leave this checkbox unchecked or check it.

My understanding is that this checkbox is hidden because when you're purchasing a subscription, saving the payment method is forced and so displaying the option to the customer is irrelevant.

FWIW I've gone back to 5.0.3 and this bug exists back then too so this isn't a recent regression.

haszari commented 1 year ago

@james-allan clarifying priority. Do you think we need to fix this before WCPay 5.5 is released?

Also can you update the title and the reproduce steps with the latest info - so it's clear what the bug is and how to replicate.

james-allan commented 1 year ago

@james-allan clarifying priority. Do you think we need to fix this before WCPay 5.5 is released?

I’ve been able to replicate on 5.4.0 so this wasn’t introduced in 5.5.0. I also went back to 5.0.3 and the issue persisted there too. So this isn't a regression as far as I can tell, this has existed for some time.

IMO that somewhat removes the blocking nature of this.

haszari commented 1 year ago

Thanks @james-allan , I agree. Do you know if this affects WCPay Subscriptions too? Assuming yes (adding label).

pierorocca commented 8 months ago

@c-shultz I see a note from James Allan indicating it wasn't replicable on UPE. Would you recommend that this be closed?

c-shultz commented 8 months ago

I see a note from James Allan indicating it wasn't replicable on UPE. Would you recommend that this be closed?

Since all updated stores have been migrated to UPE, let's go ahead and close it.