-
Notifications
You must be signed in to change notification settings - Fork 49
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
feat(wc): duplicate orders admin notice #3555
Conversation
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.
Even though the SQL queries are pretty efficient, they are huge, hard to read and hard to maintain.
And also hard to test, because I need two different sites to test it.
Doing this with simple code, looping though recent orders would be less efficient, but much more readable, maintainable and testable... And considering that this check runs daily, we don't need to look at all the orders in the history, just the most recent ones.
Yeah, that makes sense. I've updated with the following:
Update the PR description accordingly. |
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.
Works as described! Thanks for the changes! I left a few minor comments.
I just noticed one thing. I first ran the CLI command without the --save
param. It detected the duplicated but didn't save. However, it ended up displaying the admin notice, but with no orders listed. Just the summary. When you clicked, it was an empty list.
Another question: Since we're running this daily, and cutting off based on completion date, why default to check the last 30 days? Looks like we will be doing a lot of unnecessary checks every day. Isn't it enough to check just the last one or two days?
} | ||
|
||
/** | ||
* CLI handler to upsert the order duplicates with a specified timeframe. |
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.
is it detect or upsert?
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.
Let's add a clearer description of what the command does
- search for duplicates and optionally store this info to be displayed in the admin panel
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.
Updated in 520f49c
* | ||
* ## EXAMPLES | ||
* | ||
* wp newspack detect-order-duplicates --cutoff_time='2 months' --save |
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.
is it detect or upsert?
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.
Without --save
, it's only detection. With it, it's upsertion.
Hey @adekbadek, good job getting this PR merged! 🎉 Now, the Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label. If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label. Thank you! ❤️ |
* feat(wc): duplicate orders admin notice * feat: handle HPOS * feat: handle order series dismissal * feat: better UX with a details element * feat: iterate orders instead of using a direct DB query * chore: unify wording * fix: handle the order meta * feat: CLI tool * feat: process orders in batches * feat: tweak
# [5.10.0-alpha.1](v5.9.1...v5.10.0-alpha.1) (2024-12-12) ### Bug Fixes * duplicate orders save on cron ([#3604](#3604)) ([ec69167](ec69167)) * **ras-acc:** re-add recaptcha to the WooCommerce checkout ([#3605](#3605)) ([f42a75b](f42a75b)) * **ras:** do not require Woo plugins if using NRH ([#3614](#3614)) ([363a834](363a834)) * **wcs:** remove subscriptions expiration feature flag ([#3618](#3618)) ([7c175d9](7c175d9)) * **wcs:** update subscription expiration feature ([#3613](#3613)) ([ebf6e6d](ebf6e6d)) * **wcs:** update subscriptions expiration cli behavior ([#3617](#3617)) ([07e768c](07e768c)) ### Features * **subscriptions:** add cancellation reason metadata ([#3568](#3568)) ([de83e02](de83e02)) * **wc:** duplicate orders admin notice ([#3555](#3555)) ([cb764e3](cb764e3)) * **wcs:** add expired subscription cli tool ([#3593](#3593)) ([5d39398](5d39398)) * **webhooks:** filter request priority ([#3587](#3587)) ([1928a6a](1928a6a)) * **woocommerce-subscriptions:** add url redirect for wc subscription renewals ([#3525](#3525)) ([5b14aeb](5b14aeb)) ### Reverts * Revert "feat: command to initialize cron job to slowly backfill CAP term data (#3425)" (#3620) ([c9a9d45](c9a9d45)), closes [#3425](#3425) [#3620](#3620)
🎉 This PR is included in version 5.10.0-alpha.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
# [5.10.0](v5.9.2...v5.10.0) (2024-12-16) ### Bug Fixes * dont load textdomain too early ([#3629](#3629)) ([76c1f97](76c1f97)) * duplicate orders save on cron ([#3604](#3604)) ([ec69167](ec69167)) * hide duplicate notices if all was dismissed ([#3630](#3630)) ([cf48188](cf48188)) * **ras-acc:** re-add recaptcha to the WooCommerce checkout ([#3605](#3605)) ([f42a75b](f42a75b)) * **ras:** do not require Woo plugins if using NRH ([#3614](#3614)) ([363a834](363a834)) * **wcs:** remove subscriptions expiration feature flag ([#3618](#3618)) ([7c175d9](7c175d9)) * **wcs:** update subscription expiration feature ([#3613](#3613)) ([ebf6e6d](ebf6e6d)) * **wcs:** update subscriptions expiration cli behavior ([#3617](#3617)) ([07e768c](07e768c)) ### Features * **subscriptions:** add cancellation reason metadata ([#3568](#3568)) ([de83e02](de83e02)) * **wc:** duplicate orders admin notice ([#3555](#3555)) ([cb764e3](cb764e3)) * **wcs:** add expired subscription cli tool ([#3593](#3593)) ([5d39398](5d39398)) * **webhooks:** filter request priority ([#3587](#3587)) ([1928a6a](1928a6a)) * **woocommerce-subscriptions:** add url redirect for wc subscription renewals ([#3525](#3525)) ([5b14aeb](5b14aeb)) ### Reverts * Revert "feat: command to initialize cron job to slowly backfill CAP term data (#3425)" (#3620) ([c9a9d45](c9a9d45)), closes [#3425](#3425) [#3620](#3620)
🎉 This PR is included in version 5.10.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
All Submissions:
Changes proposed in this Pull Request:
Adds an admin notice when duplicate orders are detected:
How to test the changes in this Pull Request:
wp cron event run newspack_wc_check_order_duplicates
wp newspack detect-order-duplicates --cutoff_time='1 year' --save
and refresh the admin pageOther information: