-
Notifications
You must be signed in to change notification settings - Fork 51
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: add product option to autocomplete orders #3072
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.
Is there a use case where an order for a virtual product should not be completed immediately? If not, then I don't think there's need for UI or a custom product option here. Instead, the "downloadable & virtual" condition could be changed to just "virtual" ('woocommerce_order_item_needs_processing'
filter).
I don't think we can confidently answer this for all Newspack sites, hence offering the option as an escape hatch. |
There are a couple I can think of, like selling ads or (virtual) event tickets, where there are further logistics needed after someone gives money. |
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.
Pre-approving with one question. If the answer is no then we're good to go here.
Note that this should be considered a breaking change because it will alter the default order processing behavior for existing products across all Newspack sites.
Don't forget a "BREAKING CHANGE" string in the squashed commit message.
# [4.0.0-alpha.1](v3.8.0...v4.0.0-alpha.1) (2024-04-25) ### Bug Fixes * ensure only admins can reset starter content and newspack options ([#3081](#3081)) ([4606721](4606721)) ### Features * add product option to autocomplete orders ([#3072](#3072)) ([4a2859b](4a2859b)) * **ras:** skip campaign setup ([#3051](#3051)) ([9ef0e6d](9ef0e6d)) ### BREAKING CHANGES * Changes order autocompletion behavior for existing products! * feat: add product option to autocomplete orders * chore: update outdated docblock description
🎉 This PR is included in version 4.0.0-alpha.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
* chore(deps-dev): bump @wordpress/browserslist-config Bumps [@wordpress/browserslist-config](https://github.com/WordPress/gutenberg/tree/HEAD/packages/browserslist-config) from 5.37.0 to 5.38.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/browserslist-config/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/[email protected]/packages/browserslist-config) --- updated-dependencies: - dependency-name: "@wordpress/browserslist-config" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps-dev): bump @rushstack/eslint-patch from 1.10.1 to 1.10.2 Bumps [@rushstack/eslint-patch](https://github.com/microsoft/rushstack/tree/HEAD/eslint/eslint-patch) from 1.10.1 to 1.10.2. - [Changelog](https://github.com/microsoft/rushstack/blob/main/eslint/eslint-patch/CHANGELOG.md) - [Commits](https://github.com/microsoft/rushstack/commits/@rushstack/eslint-patch_v1.10.2/eslint/eslint-patch) --- updated-dependencies: - dependency-name: "@rushstack/eslint-patch" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps-dev): bump @types/wordpress__blocks from 12.5.13 to 12.5.14 Bumps [@types/wordpress__blocks](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/wordpress__blocks) from 12.5.13 to 12.5.14. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/wordpress__blocks) --- updated-dependencies: - dependency-name: "@types/wordpress__blocks" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * refactor(data-events): add abstract Connector class for shared methods (#3015) * refactor: add abstract Connector class for shared methods * chore: remove unused imports * chore(deps-dev): bump @wordpress/browserslist-config Bumps [@wordpress/browserslist-config](https://github.com/WordPress/gutenberg/tree/HEAD/packages/browserslist-config) from 5.38.0 to 5.39.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/browserslist-config/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/[email protected]/packages/browserslist-config) --- updated-dependencies: - dependency-name: "@wordpress/browserslist-config" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps): bump qs and @types/qs Bumps [qs](https://github.com/ljharb/qs) and [@types/qs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qs). These dependencies needed to be updated together. Updates `qs` from 6.12.0 to 6.12.1 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.12.0...v6.12.1) Updates `@types/qs` from 6.9.14 to 6.9.15 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qs) --- updated-dependencies: - dependency-name: qs dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: "@types/qs" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * fix: ensure only admins can reset starter content and newspack options (#3081) * feat: add product option to autocomplete orders (#3072) BREAKING CHANGE: Changes order autocompletion behavior for existing products! * feat: add product option to autocomplete orders * chore: update outdated docblock description * feat(ras): skip campaign setup (#3051) * feat(ras): skip campaign setup boilerplate added new route, added fe logic * feat(ras): added `is_skipped` to prerequisite status endpoint * refactor: moved callback to named function added ui to indicate async skipping flow * feat: added skip logic to prerequisite component combined "skipped" and "active" into single `isValid` const * feat: `is_skipped` property to prerequisite type added skip logic to RAS wizard * fix: circle ci / typescript * fix: ci / eslint * refactor: remove redirect after skip added allow continue when skipped. * refactor: allow parametrized skip * refactor: revert any type cast * feat: pr feedback - added redirect, activation skip and remove `activationStep[0]` * feat: pr feedback, appended `[skipped]` to select items * chore(release): 4.0.0-alpha.1 [skip ci] # [4.0.0-alpha.1](v3.8.0...v4.0.0-alpha.1) (2024-04-25) ### Bug Fixes * ensure only admins can reset starter content and newspack options ([#3081](#3081)) ([4606721](4606721)) ### Features * add product option to autocomplete orders ([#3072](#3072)) ([4a2859b](4a2859b)) * **ras:** skip campaign setup ([#3051](#3051)) ([9ef0e6d](9ef0e6d)) ### BREAKING CHANGES * Changes order autocompletion behavior for existing products! * feat: add product option to autocomplete orders * chore: update outdated docblock description * chore(release): 4.0.0-alpha.2 [skip ci] # [4.0.0-alpha.2](v4.0.0-alpha.1...v4.0.0-alpha.2) (2024-04-25) ### Bug Fixes * remove deprecated filter callback ([#3090](#3090)) ([5d7d0bf](5d7d0bf)) * chore(release): 4.0.0-alpha.3 [skip ci] # [4.0.0-alpha.3](v4.0.0-alpha.2...v4.0.0-alpha.3) (2024-04-26) ### Bug Fixes * enable Memberships fix cron job only when environment constant is defined ([#3087](#3087)) ([5d40297](5d40297)) * OAuth: use a custom table for transients (#3106) * feat: start new custom table for oauth transients data * fix: copy/paste error * fix(google-oauth): use custom table for transients * feat: cleanup old transients * fix: clean up on the fly too, and limit to deleting 1000 at a time max --------- Co-authored-by: Adam Cassis <[email protected]> * fix: autocomplete orders only for virtual products (#3111) * fix: autocomplete orders only for virtual products * chore: remove console.log --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: matticbot <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Derrick Koo <[email protected]> Co-authored-by: Jared Rethman <[email protected]> Co-authored-by: matticbot <[email protected]> Co-authored-by: dkoo <[email protected]>
🎉 This PR is included in version 4.0.0-epic-ras-acc.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
# [4.0.0](v3.8.8...v4.0.0) (2024-05-28) ### Bug Fixes * autocomplete orders only for virtual products ([#3111](#3111)) ([bfbe554](bfbe554)) * **data-events:** handle no ga_client_id in data ([fc4fc9f](fc4fc9f)) * ensure only admins can reset starter content and newspack options ([#3081](#3081)) ([4606721](4606721)) * **registration-block:** prevent undefined variable warning ([8af9d89](8af9d89)) * **starter-content:** make the starter content generation idempotent ([d5e10ff](d5e10ff)) ### Features * add product option to autocomplete orders ([#3072](#3072)) ([4a2859b](4a2859b)) * **cli:** command to migrate CAP guest authors to WP users ([#3068](#3068)) ([7ea8273](7ea8273)) * custom role for assignable authors who don't edit posts ([#3066](#3066)) ([7b89053](7b89053)) * **ras:** skip campaign setup ([#3051](#3051)) ([9ef0e6d](9ef0e6d)) * support for wrapping rss titles in cdata ([#3104](#3104)) ([8b3a3be](8b3a3be)) ### BREAKING CHANGES * Changes order autocompletion behavior for existing products! * feat: add product option to autocomplete orders * chore: update outdated docblock description
🎉 This PR is included in version 4.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
All Submissions:
Changes proposed in this Pull Request:
When a new order is paid for in WooCommerce, the default behavior is to move the order into
processing
status and require a store admin to manually move it tocompleted
status, unless the order contains only products that are both virtual and downloadable. If an order never moves tocompleted
status, any data events connected to theorder_completed
hook (including RAS contact data syncing) will never happen. This is counterintuitive to most Newspack publishers, who simply want the orders to complete automatically without manual intervention.This PR adds a new "Auto-complete orders" option to all products and product variations, ON by default, which lets orders with those products autocomplete regardless of whether they're virtual and/or downloadable. This essentially changes the default behavior so that orders will be autocompleted unless the "Auto-complete orders" option is intentionally unchecked for a product or variation.
Note that this should be considered a breaking change because it will alter the default order processing behavior for existing products across all Newspack sites.
How to test the changes in this Pull Request:
trunk
, create a new simple product (one-time or subscription) and a variable product (one-time or subscription). Make sure the products and all variations are NOT downloadable.processing
status unless you manually update them tocomplete
.completed
status without requiring manual intervention.processing
status unless you manually update them tocomplete
(this lets you restore Woo's default order processing behavior on a per-product basis, if needed).Other information: