Skip to content

WPS Migration: Check PayPal payment status before sending capture request #60242

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

Merged

Conversation

Mayisha
Copy link
Contributor

@Mayisha Mayisha commented Aug 7, 2025

Submission Review Guidelines:

Changes proposed in this Pull Request:

Checking the _paypal_status before sending a request to capture the payment to avoid duplicate capture requests (the 2nd request fails anyway but it may set the order status as failed wrongly)

How to test the changes in this Pull Request:

Ensure that the payment capture is functioning properly.

  1. You will need a Business sandbox account (merchant) and a Personal sandbox account (shopper).
  2. Set the deprecated PayPal gateway feature flag, and set the Orders v2 migration flag:
wp option patch update woocommerce_paypal_settings _should_load 'yes'
wp option patch update woocommerce_paypal_settings use_orders_v2 'yes'
  1. Go to WooCommerce > Settings > Payments > and enable PayPal Standard.
  2. Configure PayPal Standard's setting:
  • For PayPal email, enter your merchant sandbox account email.
  • Check Enable PayPal sandbox
  • Check Enable logging (optional, for logging)
  • For Payment action, select Capture
  1. To enable end-to-end testing, add the PayPal API client and secret (used by the feature branch's test proxy):
wp option update wc_paypal_api_client_id <YOUR-PAYPAL-CLIENT>
wp option update wc_paypal_api_client_secret <YOUR-PAYPAL-CLIENT-SECRET>
  1. As a shopper, add a product to cart and go to checkout.
  2. You should see PayPal as a payment option.
  3. Click "Proceed to PayPal".
  4. Use your Personal sandbox account credentials to log in and approve the purchase.
  5. You should get redirected to the "Order Confirmation" page.
  6. Wait a few seconds, and go to the wp-admin order page.
  7. There should be an order note about payment capture.
  8. The order's status should be "Processing". (or "Completed" for digital products )
  9. In the order details section, the transaction ID should be linked.
  10. Click the transaction ID. It should take you to the PayPal transaction page.

Changelog entry

  • Automatically create a changelog entry from the details below.
  • This Pull Request does not require a changelog entry. (Comment required below)
Changelog Entry Details

Significance

  • Patch
  • Minor
  • Major

Type

  • Fix - Fixes an existing bug
  • Add - Adds functionality
  • Update - Update existing functionality
  • Dev - Development related task
  • Tweak - A minor adjustment to the codebase
  • Performance - Address performance issues
  • Enhancement - Improvement to existing functionality

Message

Changelog Entry Comment

Comment

@github-actions github-actions bot added the plugin: woocommerce Issues related to the WooCommerce Core plugin. label Aug 7, 2025
Copy link
Contributor

github-actions bot commented Aug 7, 2025

Test using WordPress Playground

The changes in this pull request can be previewed and tested using a WordPress Playground instance.
WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Test this pull request with WordPress Playground.

Note that this URL is valid for 30 days from when this comment was last updated. You can update it by closing/reopening the PR or pushing a new commit.

@Mayisha Mayisha requested a review from annemirasol August 7, 2025 13:46
Copy link
Contributor

github-actions bot commented Aug 7, 2025

Testing Guidelines

Hi @annemirasol ,

Apart from reviewing the code changes, please make sure to review the testing instructions (Guide) and verify that relevant tests (E2E, Unit, Integration, etc.) have been added or updated as needed.

Reminder: PR reviewers are required to document testing performed. This includes:

  • 🖼️ Screenshots or screen recordings.
  • 📝 List of functionality tested / steps followed.
  • 🌐 Site details (environment attributes such as hosting type, plugins, theme, store size, store age, and relevant settings).
  • 🔍 Any analysis performed, such as assessing potential impacts on environment attributes and other plugins, conducting performance profiling, or using LLM/AI-based analysis.

⚠️ Within the testing details you provide, please ensure that no sensitive information (such as API keys, passwords, user data, etc.) is included in this public issue.

Copy link

@annemirasol annemirasol left a comment

Choose a reason for hiding this comment

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

Makes sense to me!

@Mayisha Mayisha merged commit 8921f49 into feature/paypal-wps-migration Aug 8, 2025
43 of 45 checks passed
@Mayisha Mayisha deleted the task/status-check-before-capture branch August 8, 2025 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plugin: woocommerce Issues related to the WooCommerce Core plugin.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants