Skip to content

Release testing instructions for WC Payments 8.7.0

Zvonimir Maglica edited this page Dec 19, 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.
Clone this wiki locally