Skip to content

Release testing instructions for WC Payments 8.7.0

Miguel Gasca edited this page Dec 20, 2024 · 9 revisions

Add seller_message to failed order notes

PR #9934

  • Use card 4000 0000 0000 0002 for testing.
  • In the checkout, as a shopper, you will still see the generic decline Your card was declined.
  • However, as a merchant, in the order note, you can see more details like this: Markup on 2024-12-18 at 15:34:41

Transaction Fee shows when payment is authorized but not captured

PR #9997

  1. Set WooPayments to "Issue an authorization on checkout, and capture later."

  2. Switch to the develop branch or use the plugin version without this change.

  3. Add an item to the cart and process the payment on the checkout page.

  4. Go to the order's view screen in the WP Admin page and confirm that the transaction fee is displayed as shown below:
    image

  5. Switch to this branch.

  6. Repeat the steps above.

  7. On the order's view screen in WP Admin, notice that the transaction fee is no longer displayed since the transaction is not yet captured.

image
  1. Capture the transaction in the Transactions tab.
  2. Return to the order's view screen in WP Admin.
  3. Confirm that the transaction fee is now displayed.
image

Load checkout scripts when they are not previously loaded on the checkout page

PR #9984

  1. Switch to the develop branch. or plugin version without this change.

  2. Ensure you have at least two shipping methods enabled.

  3. Add the following filter to your code (e.g., inside functions.php). Note that checking out to the develop branch might overwrite this change, so ensure the filter is re-added if needed. Adjust the shipping method name in the example (local_pickup) to match one you have configured. This filter removes WooCommerce Payments as a gateway for the specified shipping method:

    add_filter(
        'woocommerce_available_payment_gateways',
        function ( $available_gateways ) {
            $chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0] ?? '';
            if ( isset( $available_gateways['woocommerce_payments'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
                unset( $available_gateways['woocommerce_payments'] );
            }
            return $available_gateways;
        }
    );
  4. Test behavior on the develop branch:

    • Ensure the filter from Step 3 is in place, as switching to the develop branch might overwrite it.
    • Go to the checkout page.
    • Select the shipping method configured in the filter (e.g., local_pickup). Confirm that WooCommerce Payments is not available as a payment option.
    • Switch to a different shipping method. Confirm that WooCommerce Payments is displayed, and payment fields are rendered.
    • Switch back to the shipping method that disables WooCommerce Payments and refresh the page.
    • After the page refresh, switch to another shipping method that supports WooCommerce Payments. Confirm that the checkout blocks or payment fields (e.g., credit card fields) are not rendered.
  5. Switch to this branch and repeat the test:

    • Perform the same steps as above.
    • Confirm that this time the payment fields or credit card fields are correctly rendered for the supported shipping methods.

Fix issue where order status and data are not updated when an order is in the processing state and being captured.

PR #9922

  1. Enable manual capture.
  2. Switch to the develop branch or any branch without the code from this PR.
  3. Place an order and complete the payment.
  4. In the admin panel, locate the order and confirm it is in the "On-hold" state.
  5. Change the order status to "Processing."
  6. Navigate to Payments -> Transactions, then open the "Uncaptured Transactions" tab.
  7. Find the newly created order and click the Capture button.
    • Observe that the capture note is missing on the order screen.
    • Check Stripe and verify the transaction is captured.
  8. Attempt to refund the order:
    • Notice that you cannot refund because the order remains in the "requires capture" state, and an error message appears.

Invalidate transactions store when transaction is captured

PR #10015

  1. Enable auth + capture.
  2. Purchase a product.
  3. Navigate to Payments > Transactions.
  4. Select the Uncaptured tab.
  5. Capture the transaction purchased in step 2.
  6. Select the Transactions tab.
  7. Note that the transaction captured in step 5 is present.

Bug fix - User set Date and Time formatting aren't respected in react components.

PR #9635

We are going to test that date and times format follow the user preferences.

  1. As a merchant, navigate to WP Admin > Settings > General.
  2. Select the following date, time and timezone settings. Don't forget to save your changes:
  • Timezone: UTC
  • Date Format: F j, Y i.e. December 20, 2024
  • Time Format: g:i a i.e. 11:20 pm
  1. As a shopper, purchase an order. Note the transaction date and time and convert it to UTC if needed. We'll need it later.
  2. As a merchant, navigate to WP Admin > Payments > Transactions
  3. We need to check two things:
  • A notice appears at the top of the page, informing the merchant about the change of date and time formats.
  • The date column in the transactions list displays the date and time in the expected F j, Y / g:i format and the UTC timezone i.e. December 20, 2024 / 11:20 pm
  • You can use the screenshot below for reference
Screenshot 2024-12-20 at 12 06 26
  1. In the notice you can find a link to the settings page, click it.
  2. Select different date, time and timezone settings than before. Don't forget to save your changes:
  • Timezone: Madrid (or you can set a different timezone for your convenience)
  • Date Format: d/m/Y i.e. 20/12/2024
  • Time Format: H:i i.e. 12:20
  1. Navigate again to WP Admin > Payments > Transactions
  2. Check that the notice for merchants no longer appear and the Date column in the transactions list displays the date and time in the expected d/m/Y / H:i format and the UTC timezone i.e. 20/12/2024 / 12:20 pm. Please make sure to check the date displayed time is in the correct timezone.
Clone this wiki locally