-
Notifications
You must be signed in to change notification settings - Fork 207
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
Fix duplicate emails and order notes when processing setup intent requests #3421
Merged
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
3215398
Lock the order before creating and confirm both payment and setup int…
mattallan a118ef1
Add changelog entry
mattallan dcc6547
Merge branch 'develop' into fix/3414-duplicate-emails-order-notes
mattallan 689a4de
Add changelog to readme.txt
mattallan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @Mayisha, in the changes you made in #3331, the lock was added after the
validate_minimum_order_amount()
call and so I've been trying to test and break this PR to see if there's any issues with it being beforevalidate_minimum_order_amount()
.When I tested with a $0.40 product, the lock gets added even though there's a checkout error, but I haven't been able to break it because when I add 2 of these to meet the minimum amount, the checkout is then successful.
I wanted to ping you on this issue to ask if you discovered any issues with this?
The alternative was to either add two calls to
lock_order_payment()
for both payment/setup intent calls or move thevalidate_minimum_order_amount()
higher up in theprocess_payment_with_deferred_intent()
function 🤔Let me know if you had any thoughts :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right Matt. I intended to add the lock right before processing the intent if it passes
validate_minimum_order_amount
.However, I also could not break it and the checkout was successful on second attempt (when I increased the number of items or add a shipping charge).
What happens here is, on the first attempt an order is created and the order status is
failed
. On the second attempt a new order gets created then successfully gets processed and so the lock on the first order does not hamper the checkout.In the database, the transient of the first failed orders remain.
It is alright in my opinion as the transient will be cleared once it reaches the expiration time.