* 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
* Added woocommerce_reduce_order_item_stock action hook to let other plugins do somthing without looping again the order line items
* changed "product data" to "change details" and updated docblock as instructed
* maintained WP coding standards and change @since docblock tag
* Add required dependencies
* Create the block editor component
* Create the header component
* Create the sidebar component
* Create the editor component
* Remove comments
* Export the block editor from its package
* Enqueue wp-edit-site
* Create the new block mode product page
* Register the new ProductPage component in /add-product route
* Add temporal layout styles
* Fix rebasing conflicts
* Fix linter errors
* Redirect to the new product-editor page when edit
* Add changelog files
* Fixing dependencies conflicts and ignoring some non running test
* Add comment suggestions
* Fix conflicts after rebasing
* Add comment suggestions
* Conditionally use authorization token when getting WC Zip download URL.
* Exponse error message
* Handle undefined authorization token more gracefully
* Specify GH token in workflow
* Add changelog
* Use E2E_GH_TOKEN instead of default github.token
* Provide GitHub token to other jobs
* Fix getting of tag name from triggered event
* Use "inputs" context instead
* Add release version to workflow name
* Correct concurrency group
* Fix workflow name
* Add --archive option
* Fix output setting
* Fix script for verifying asset
* Remove unnecessary 'uses' line
* Remove node 12 deprecation messages
* Re-add "published" release type
* Fix: variations exported as draft were imported as draft
* Add changelog file
* Fix "ArrayUtil::get_value_or_default" for existing keys with null values
Now ArrayUtil::get_value_or_default($array, $key, $default) will return
null, instead of $default, when $array[$key] exists and is null.
* Undo the change to ArrayUtil (will get its own PR)
Turns out the value used here doesn't matter, because it will always
update to the current time. It just needs to have a changed prop in
order for the save to execute.
Ensures that when a refund is processed successfully for an order,
the date_modified field for the order is updated to match the creation
date of the refund.
Refs #28969