These are:
- Posts of type "shop_order_placeholder" with no matching order
in the orders table.
- Records of type "shop_order_refund" with a zero parent order id
in both tables.
This includes the following:
- Fix the "upshifting" that was implemented in 36218 so that it only
applies when the post type of the order being deleted is hierarchical
(this conforms to the WordPress behavior when deleting a post).
- Now when an order is deleted while sync is off a record will be
created in wp_wc_orders_meta (regardless of which table is the
authoritative one) with 'deleted_from' as the key and the
authoritative table name (from where the order has been deleted)
as the value...
- ...then DataSynchronizer will detect the presence of these
'deleted_from' records and delete them from the backup table
as part of the batch processing procedure.
- Exception to the above: when an order is deleted from the orders
table and the corresponding records in the posts table are
placeholders, these are deleted immediately too, even if sync is off.
- Add an "order_exists" method in both order data stores
(Abstract_WC_Order_Data_Store_CPT and OrdersTableDataStore).
- Add a pair of get/set_verify_parent_id methods in WC_Abstract_Order
(turning off the check in set_parent_id is necessary when deleting
an order using the backup data store during synchronization).
- Placeholder records are now created with the appropriate parent id
for child orders (e.g. refund), this is necessary in order to
properly find which records need to be deleted.
* Add new countries to WCPay
* changelog
* add new countries code to woocommerce admin
* Add the new countries to onboarding wizard fallback config file
---------
Co-authored-by: Anurag Bhandari <anurag@automattic.com>
* Add @pmmmwh/react-refresh-webpack-plugin, react-refresh, webpack-dev-server and add start:hot command
* Set up react fast fresh
* Add changelog
* Run prestart in hot command
* Update pnpm-lock.yaml
* Update pnpm-lock.yaml
* Update product post rest configs
* Update block usage
* Add changelogs
* Fix lint
* Make use of setupEditorState instead of setupEditor as we do not have a content block
* Simplify product condition
* Make use of core store only
* log admin coupon code actions
* added documentation, fixed return value
* formatting
* included user to note logs
* Add changelog
* Address PHPCS issues
* Make WC_Abstract_Order::remove_coupon() return a bool
* Move addition of coupon-related order notes from WC_Order to AJAX callbacks
* Address PHPCS problems
* Pass coupon order notes through `esc_html()`
* Add AJAX update of notes when adding/removing coupons via admin
* Fix tests (maybe?)
---------
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Adding test name block with support for entity data store
* Adding changelog
* Changing block.ts to block.json and amending TS config to support
* Experiment in loading blocks from settings template
* Enable the use of templates with the block editor
* Fix dependency
* Add changelog
* Fix lint error and remove unused utils
* Fix tests by fixing mocks
---------
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
* Update stock management enabled checkbox label
* Add link to store settings when stock management is disabled
* Refactor to create woocommerce_wp_note function
* Add the new feature to enable the new product editor blocks experience
* Add the type definition of the feature flag
* Add the feature to the beta_featues in Features.php file
* Keep the page routes when the feature is anabled
* Add the feature php class to manage page assets
* Add changelog file
* Make WC_Order::get_tax_location public
* Reverted access modifier change for get_tax_location() and implemented public wrapper get_taxable_location()for it.
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Fix the ArrayUtil::get_value_or_default method
The method was supposed to return null if the key exists in the array
and has a null value, but instead it was returning the supplied
default value, as the "??" operator.
Also the few existing usages of the method that supplied a default value
have been converted to instances of the "??" operator for compatibility.
* Add changelog file
The code is copied from the Channels component, but in CreateNewCampaignModal, we don't need to display the divider, so we can just remove the divider code.