Update post directly to update correct post_modified value.
If we use wp's update_post function, then it will set the post-modified date to current time(). This is not desirable when backfilling order data where we want post data to be exactly the same as orders.
* Add changelog.
* Added protections and code standard fixes.
* Use wp_update_post so that hooks fire as usual.
* Add and use ON_DUPLICATE_KEY update function to perform update/insert without additional query.
* Fix typo
* Add more tests for save related functions.
This updates Turborepo and adjusts the output caching for `woocommerce/client/legacy` and `woocommerce/client/admin`. The result is that build outputs in `plugins/woocommerce/assets` should be stored correctly.
* Update get_product_data to send request with a locale query param for translation
* Add changelog
* Fix lint
* Update PRODUCT_DATA_TRANSIENT format for translations
* Validate that tinymce exists before using it.
If wp is not configured to use blocks and the tinymce was changed by a different editor then the error happends because tinymce is required. Applaying a validation that makes sure tinymce exists before using it solves the problem. But this introduces a new problem, the description property will be send with value 'No' when event 'product_update' will be fired.
* Add changelog file
* Check if tinymce.get( 'content' ) is not falsy before calling getContent()
* Update `jest-puppeteer@5.0.4` (from `4.4.0`)
to be albe to run with jest 28.
* Update `jest` and `ts-jest@^27` (from `25`),
to match `e2e-environment` needs.
* Update api-core-tests' `jest@^27` (from `25`),
to unify the used version across the stack.
* Update e2e-env's `jest@^27` & co. (from `25`),
to unify the used version across the stack.
* Update e2e-env's `@jest/test-sequencer@^27` (from `25`),
to unify the used version across the stack.
* Update admin-e2e-tests' `@jest/globals@^27` (from `26`),
to unify the used version across the stack.
* Update woocommerce's `jest@^27.5.1` (from `25`),
to unify the used version across the stack.
* Replace `mocked` from `ts-jest` to the one from `jest`,
Update `@types/jest@27.4.1` from `27.0.2`.
Try to fix broken tsc build.
* Update `e2e-core-tests`' `@jest/globals@^27.5.1`
from `^26.4.2`.
* Remove changelog entry for bumpin jest in `api-core-tests`
It was already covered in `trunk`.
Addresses https://github.com/woocommerce/woocommerce/pull/34322#discussion_r956019567
* Updated package-lock.yaml
* Updated timeout
* Added changelogs
Co-authored-by: jamelreid <jnoelreid@gmail.com>
* Update Guernsey state field to non-required
Resolves woocommerce#32876 by making GG state field entry non-required.
* Update Guernsey state field with correct label
Based on https://en.wikipedia.org/wiki/Guernsey#:~:text=Guernsey%20(%2Fˈ%C9%A1ɜ%CB%90rn,Guernsey%2C%20a%20British%20Crown%20Dependency.&text=It%20is%20the%20second%20largest,west%20of%20the%20Cotentin%20Peninsula it looks like the state equivalent for GG is to "Parish" so rather than hiding the field entirely, it makes more sense to make it optional, and add the correct label.
* Added changelog.
Co-authored-by: Rynaldo <89896100+rynaldos@users.noreply.github.com>
* implement coupon held methods.
* Add changelog file.
* Used `delete_meta_data` of WC_Coupon and cleared meta cache after adding coupon held meta.
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Add styles for the progress header
* Add changelog
* Fix invalid header error from the changelog -- this file is not related to this repo, but I am still fixing it since it is not passing the gitflow job
* Refactor NewSalesRecord to have get_note method
* Refactor OrderMilestones to have get_note method
* Add unit tests for notes
* Fix wrong content data return type
* Add changelog
* Update Google logo icon.
* Update Google logo icon to use img element with svg file.
* Simplify ProductIcon CSS with size prop.
This applies to svg and image icons, not just svg.
* Add changelog.
* Set style for Google logo icon.
We set white background to override the gray backgroun in ProductIcon.
Padding is used to make it look visually similar size with other icons.
* Update style for Google logo.
Add inline file delivery to WC_Download_Handler
Create a new setting option for inline file delivery for downloadable
products. In the Download Handler create a new method for the new
setting as well as a method for returning the proper headers to deliver
files inline.
Resolves: #28410
* Update Content Type of inline delivered files
* Update Downloaded file name
* Change content-disposition to be a checkbox
Since inline-delivery works with multiple download methods
* Document function
* Add new setting for test, see #31145.
* Better setting wording and remove typo comment.
* Address pr feedback.
* Add changelog.
* Rephrase the settings to make it more clear.
* More rephrasing.
Co-authored-by: Matthew Caldwell <caldwellysr@gmail.com>
Order-again item meta should store term slug instead of term value.
* Cleanup f26e62502c
* Remove extra tab
* Changelog.
Co-authored-by: Alexandre Froger <alex@froger.me>
Implement `get_order_id_by_order_key()` and related methods in the COT datastore.
* Implement `get_order_count()` in the COT datastore
* Implement `get_unpaid_orders()` in the COT datastore
* Implement `get_orders()` in the COT datastore
* Add unit tests for misc. COT datastore methods
* Add changelog
* Apply suggestions from code review
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Rename var
* Update docblock
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Add suppport for types and refund in migrations.
* Add changelog.
* Make CI happy.
* Add support for refunds save and read.
* Remove placeholder from order types eligible for migration.
* Link backfilling to migration process.
* Add changelog.
* Reduce batch size for backfilling since it is slower.
* Correct grammer.
* Link backfilling with data synchronizer and adopt with pending migration on both sides.
We already have backfilling implemented, however it was not linked. This would make switching data stores back to posts table not possible. This commit links datasynchronizer so that it can both migrate as well as backfill.
* Remove _recorded_sales from skipped check keys since its implemented.
* Share concrete instance of cot controller to share feature value.
* Revert adding concrete controller, object instance is already shared.
* remove yoda condition.
* Remove unintended change.
* Add types in unit test since we added it in schema.
* Remove unsetting type, its supported now.
* Add support for backfilling order types with different datastores.
* Use correct datastore while migrating.
* Support -1 for limit queries
* Order factory to support reading multiple order types.
* Add read_multiple to refunds data store.
* Return negative total for consistency with posts table implementation.
In custom tables, we can directly sum the value for total_amount since they are being stored in flat tables, instead of relying on _refund_amount meta.
* Remove type definations for back compat.
* Add test for get_orders
* Use persist_udpates method for consistency and DRY.
* Resolve conflict correctly.
* Removed duplicated methods.
* Use correct order in doc comment.
* Fix typo
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Rename parameter for better clarity.
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Rudimentary functional version of datetimepicker
* Adding changelog
* Adding package changelog
* Making component more than barely functional
* Removing unnecessary export
* Rename directory to date-time-picker
* Add initial story
* Pass datetime to onChange callback
* Localize error string
* Remove initial error prop
* Rename currentDate to initialDate
* Simplify state for selected date
* Add extra stories around component
* Trigger onChange whenever date is changed
* Add readme
* Allow currentDate to be changed via props
* Update readme
* Update name to DateTimePickerControl
Co-authored-by: Joshua Flowers <joshuatf@gmail.com>
* Support searches as a direct feature of (COT) order queries.
* Always add `DISTINCT` to order queries.
* Add test (+fix order search logic for matching order IDs).
* Changelog.
* Clean-up search_orders() method, remove original roughed-out search code borrowed from CPT data-store.
* Tidy.
Handle invalid `meta_query` similarly to `WP_Query`
`meta_query` needs to be an array of arrays. Elements in `meta_query` that do not conform to the expected format will be ignored.
* Expose the SQL query in OrdersTableQuery for debugging purposes (similar to WP_Query)
* Add changelog
* Drop unnecessary `is_array()` check
* Add additional class to no-products-found banner.
By adding an additional class of `woocommerce-no-products-found`, we can
target the info banner contextually without running the risk of
impacting notifictaions in other areas of the active theme.
See https://github.com/woocommerce/storefront/pull/2027#issuecomment-1218083764
* Add changelog for update.
* Add initial product field and modal for editing product link
* Create a product link modal for editing product link
* Only show permalink when product is published
* Add changelogs
* Add changelog for data package
* Change save button to primary
* Fix merge conflcts
* Add getPermalinkParts selector to products store
* Made use of getPermalinkParts to support draft products
* Link backfilling to migration process.
* Add changelog.
* Reduce batch size for backfilling since it is slower.
* Correct grammer.
* Link backfilling with data synchronizer and adopt with pending migration on both sides.
We already have backfilling implemented, however it was not linked. This would make switching data stores back to posts table not possible. This commit links datasynchronizer so that it can both migrate as well as backfill.
* Remove _recorded_sales from skipped check keys since its implemented.
* Share concrete instance of cot controller to share feature value.
* Revert adding concrete controller, object instance is already shared.
* remove yoda condition.
* Remove unintended change.
* Revert from using gmdate.
* Remove hardcoding.
* Remove doc block for fake option support.
* Comment out option check for better testability.
* Add initial SearchControl component
* Add async example
* Reorganize getItemPropsType type
* Create separate MenuItem component
* Update items to use value/label pairs
* Add fuzzy matching example
* Use MenuItem component in example
* Add callback method example and onSelect prop
* Add custom render example
* Add styling
* Simplify Menu component
* Add changelog entry
* Update SelectControl to DeprecatedSelectControl
* Rename SearchControl to SelectControl
* Add readme
* Add placeholder prop
* Add icon to combox box
* Rename deprecated SelectControl classes
* Add changelog entries
* Pass menu props to menu to fix ref issues
* Update lock file
* Rebase and update lock file
* Fix up IDs in e2e tests
* Make list structure more semantic
* Fix update conflict with pnpm-lock
* Move new SelectControl to experimental
* Change experimental class name to avoid style conflicts
* Fix up latest lock file from rebase
* Remove onboarding e2e changes
* Update changelogs
* Update lock file again
* Update pnpm-lock and fix lint error
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
* Added new command to set up the local environment with COT enabled.
* Removed new file added to e2e-environment, which we will no longer be using.
Co-authored-by: jamelreid <jnoelreid@gmail.com>
* Add a filter woocommerce_get_note to modify note before it is returned
* Make ChoosingTheme.get_note public so we can call it outside
* Implement the get_note filter to return localized strings
* Create get_actions method to reuse it in RemoteInboxNotificationsEngine
* Implement get_note filter in RemoteInboxNotificationsEngine to return localized note
* Add changelog
* Make GivingFeedbackNotes.get_note public so we can call it outside
* Check if note class has NOTE_NAME constant
* Update WooSubscriptionsNotes to show localized content
* Rename filter hook name
* Remove todo to pass php lint
* Update filter description
* Move locale check into individual filter functions
* Fix get_note_from_db logic
* Fix php lint errors
* Update the filter doc
* Add test for spec-runner.php
* Add tests for RemoteInboxNotificationsEngine
* Remove unneeded check
* Check if $note_from_class is instance of Note class
* Fix unit test
* fix: tax calculation and coupon sequence
* add phpunit skeleton
* Refactor calc_line_taxes and add_coupon_discount
The methods are moved to separate classes in src/Internal,
and two new "core" methods that exclude HTTP processing are added.
* The test partially passes now
* Final fix to unit tests, and fix remaining formatting issues
* Add changelog file
* Fix path to html-order-items.php
Co-authored-by: Siddharth Thevaril <siddharth.thevaril@gmail.com>
* Show WCPay welcome page to all eligible merchants.
Remove the experiment and also check for marketplace suggestions.
* Update banner design and copy
Replace background `wcpay-banner.png` with `wcpay-offer.svg`, `flag.j` svg component with `gift.js`. Adjust styles and ensure it's responsive.
* Add more requirements.
Don't register it when there is an existing WCPay account or the site is on a WPCOM starter plan.
* Update promotion and FAQ copy
* Add the new experiment.
And remove the supported country check to use Explat instead.
* Add changelog entry
* Remove WPCOM starter plan check
* Remove Yoda comparisons
* Update `wcpay_exit_survey` event.
Record it also when the user chooses `Just remove` and use snake_case to avoid Track errors.
* Country and time conditions.
Only for US based businesses with a live store of at least 90 days.
* Update design and copy to match new requirements
* Update promo ID
* Fix country condition
* Load SVG as image instead of background
To prevent wrong asset generation due to Webpack configuration
* Fix WCPay installed condition
* Update promo ID
* Update promo ID in allowed notes
* Update FAQ copy
* Add `apply_filters` docblock
* Add missing `@since` to docblock comment
* Do not create default shipping zones when a shipping zone already exists
* Add changelog
* Use woocommerce_admin_skipped_creating_default_shipping_zones to avoid triggering spotlight tour
* Set woocommerce_admin_reviewed_default_shipping_zones to yes to prevent spotlight tour for the existing shipping zones
* Remove WCPay Subscriptions offer page experiment
This removes all code added in PR#32957 as experiment has ended.
(WooCommerce > Subscriptions admin menu item and empty state offer screen)
* Add changelog entry
* Make the php file valid
* Remove code that's no longer in PHP.
mysql_* functions were removed in PHP 7.0
* Remove deprecated setting.
This only helps detecting \r as end of line and that should only be used in old MacOS 9 which is 20 years old by now.
* Changelog
* Added compulsory file comment.
* Removed forgotten phpcs flag
* ...and more cleanup.
* Implement filtering by status in list table
* Respect ‘show_in_admin_status_list’ in list table
* Display correct status name for ‘draft’ and ‘trash’ post statuses
* Renamed e2e to e2e-legacy
* Moved e2e folder to tests/e2e
* Updated gitignore
* Updted init script to work with wp-env
* Updated readme
* Updated commands to match new test structure
* Updated workflow to work with new test structure
* Added changelog
* turned off alternate wp cron in test
* Fixed path to playwright config
* Renamed e2e to e2e-pw
* Renamed e2e-legacy to e2e
* Updated e2e-pw path
* Fixed workflow
* Fixed csv test
* Updated .gitignore
* Removed puppeteer specific step
* dev: moved shipping tour into guided tours folder
* dev: moved store address tour to guided-tour folder
* dev: updated imports for store address tour code move
* dev: move add-product-tour to guided-tours
* dev: update imports for add-product-tour code move
* Column sorting for the COT admin list table.
* Add filter for easier extensibility.
* Implement date based filtering within the admin order list table.
* Implement customer-based filtering within admin order list table.
* Allow filtering down to no results, better management of http_referer state.
* Changelog.
* Bring up-to-date, fix some conflict resolution mis-steps.
* Address coding standards.
* Remove unused import.
* Add initial product form action buttons to form
* Add new edit page and allow for updating and creating products
* Move crud functions to helper hook to keep things seperated better
* Add changelog
* ADd package changelogs
* Add isPending selector to products store
* Fix trash screen showing up when deleting product and add loading indicators
* Add extra types to Product type
* Update track names and add product data to tracks
* Update track logic when product is published
* Remove the Image section for now, to prevent confusion as it is not ready yet
* Add tests for the product form actions
* Update copy for publish & duplicate
* Remove unused code
* Set window.location correctly with href
* Reset changes in pnpm lock
* Moved pending action variables to product helper and updated buttons to reflect new suggestions
* Fix backwards compabitibility issue with Form changes
* Add switch to draft button
* Use WC_Order_Query for REST API v3 requests when COT is enabled
* Remove pre-COT internal meta keys from metadata in REST order responses
* Add changelog
* Add unit tests
* Fix test in `ProductAttributesLookup\FiltererTest`
Some tests in this class relied on a particular ordering of an array of IDs returned by a query with an `ORDER BY` that doesn’t really disambiguate sorting (all rows have the same values for the fields). As such, `assertEquals()` can’t be used to make sure arrays had the same values.
* Use `get_internal_meta_keys()` from a CPT instance to hide certain meta on COT REST response
* Move COT REST test outside of the COT datastore tests
* Fix typo
* Remove unnecessary imports
* Make ProfileItems properties optional
* Remove skip button codes and replace them with SkipButton component
* Add SkipButton component
* Add changelog
* Add back continue button callback
* Apply popover styles globally
* Add skip button on the industry step
* Add skip button on the product types step
* Add skip button on the Business Details step
* Support onSkipped callback
* Record skip event
* Add skip event track for industry, product types, and business details
* Add SkipButton to the theme step
* Update snapshot
* Change track name to separate business details and free features
* Add changelog
* Remove unused code
* Update product types test snapshot
* Add back UsageModal on Continue click
* Update e2e tests to use Skip
* Use button selector for skip btn
* Fix duplicate event dispatch
* Do not call onClose and onContinue during the rendering -- it causes cannot update a component while rendering a different warning. Instead, call them when the button is clicked
* Skip the profiler without rendering usage modal when woocommerce_allow_tracking is set
* Skip the profiler without rendering usage modal when woocommerce_allow_tracking is set
* Go to the next step when allowTracking is yes
Add screen reader labels to improve accessibility in various locations.
* Adding missing table header labels
* Adding missing form field labels
* Adding missing form field label
* Adding missing form field labels — Ideally we would add these with `<labe>` tag (may be hidden with `screen-reader-text` class), but playing safe here to prevent CSS style issues.
* Adding missing form field label
* Changing `aria-label` attribute to actual `<label>` tag
* Rebase; add changelog.
Co-authored-by: barryhughes <3594411+barryhughes@users.noreply.github.com>
Add method in utils to check whether posts and order tables are in sync.
* Add changelog.
* Fix Yoda condition
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* Add e2e test to check ability to add and remove regions from shipping zone
* Add changelog file
* skip test in order to check CI
* add skipped test back in
* group shipping zone tests to avoid concurrency issues
* update assertions relevant to added zone region
* update test file
* update test to select appropriate delete based on other tests
* Ensure the correct Shipping Zone has been removed
* remove attempt to delte zone via front end as API call will handle this
* Update store details task complete logic
Mark as completed if the store address, city and postcode are set.
* Add changelog
* Update store details test
* Stop resetting all definations in DI to not initialize hooks again.
* Adjust setting test to account for COT feature.
* Support temporary tables.
* Add changelog
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
- Use the built-in phpcs sniff for "includes" (as warnings)
- Use the slevomat coding standards package for the rest of the code
(as errors, with the ability to auto-correct)
* Change package json commands and turbo repo config to allow for greatly simplifying running turbo
* Remove require-turbo script which was causing caching issues
* Colorize CI output from scripts
* Add missing changelog script to extend-cart-checkout-block
* Add product page layout components
* Add a quick sample page to test the product form layout
* Add changelog
* Add option 2
* Refactor the product field layout structure
* Update page component structure of product form
* Add simple SlotFill support
* Update product page chunk name
* Add order to slot fill and move product field layout wrapper into product category layout
* Remove unused import
* Consolidate the slot fill ordering logic
* Rename category component to section component to prevent confusion
* Remove edit product page and use the new add product page instead
* Add tests
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Update store details unit tests
* Update store details subheading and field order
* Update obw store details e2e tests
* Add changelog
* Add changelog
* Update Store owner can go through setup Task List test
* Add feature falg
* Modify href to menu item
* Modify page title href button
* Add product files on Client
* Change button's URL for new Nav
* Add changelog
* Moved changelog
* Fix URL for new nav
* Change URL for add product task
* Add Tracks event
* Change const name
* Renamed tracks event name
* Undo Add New Product redirect
* Undo use Products addition
* Undo lint fix to woocommerce_admin.js
* Rename component and file (AddProductPage)
* Set flag in core.json to false
* Fix typo
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
Update miscellanous WC bits to support custom tables.
* Add changelog.
* Add test for order_meta call.
* Make CI happy.
* Add tests for before_delete_order.
* Add test for is_valid_resource
* Add tests for PayPal API.
* Add test for save paypal meta data.
* Minor fixup.
Remove the explicit dependency from the psr/container package
* Prepend the psr/container package classes with a namespace using Mozart. This is done to prevent conflicts with other versions of the package used by other packages or plugins.
* Add changelog file
* Minor documentation/indentation updates