We were checking whether an order is modified before migrating them. While on surface this looks good, the logic itself has following flaws:
1. We were only checking the columns in the core posts table, but none of the meta fields.
2. Our comparison logic was written in SQL, but given that we have a much better comparison logic already written in PHP, it does not makes sense to maintain two different versions.
3. We are alrady checking for modified records in the batch processor itself, so another check this close to migration logic is not really needed.
* Change Skip this setup to Skip this step
* Visual changes on intro, user profile, and skip guided page
* Always check tracking agreement
* Change border to 2px
* Change Give yoru store a name font-size to 13
* Add Changelog
* Update test to reflect the text change
* Remove !important
* Update test snapshot
* Update test snapshot
* Remove test that is no longer necessary
* Add install-and-activate-plugins-async action to onboarding
* Add label and learn_more_link types
* Use label and learn_more_link
* Fix type
* Add changelog
* Add changelog
* Add install_priority -- this will be used in the core profiler
* Sort selected plugins by install_priority for installation
* Remove unused imports
* dev: refactor installAndActivatePlugins to xstate
* ts fixes
* Sort plugins by install_priority
* Make sure WooCommerce Shipping is always visible
* Update free extension list content
* Updated WC payment description
* Updated logo images
* Visual changes on the plugin page
* Change CTA font size from 13px to 14px
* Change spacing between the chebox and logo to 24px
* Change heading font-weight to 500
* Fix css lint error
* Fix gray-900 variable name
* Hide learn more link on mobile view
* Add back learn more link that was removed from rebase
* Send pluginsAvailable to pluginInstallermachine
* Use is_activated to determine plugin availability and install status
* Update packages/js/data/src/onboarding/types.ts
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update plugins/woocommerce/src/Internal/Admin/RemoteFreeExtensions/DefaultFreeExtensions.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Add back recordTracksPluginsLearnMoreLinkClicked
* Use install-and-activate-plugins-async when timer is up
* Record plugin and link with learn more linked clicked event
* Fix failign tests
* Add comment for install_priority
---------
Co-authored-by: rjchow <me@rjchow.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Ensure order ordering in order filter unit test
* remove unused variable, fix spacing
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Copy Guide component from @wordpress/components and fix focus issue
* Add 'tell me more' button and behavior
* Move Guide component from components package to admin package
Implement assigning an href to the finish button, sending the current page and origin as a parameter on the onFinish callback
* Remove dependency
* Restore pnpm-lock.yaml
* Add changelog
* Add comment in Guide component
* Dismiss modal only when it's finished or X button is clicked
* Add 'rel' when opening link in a new tab
* Always show General product tab
* Add info messages for variable and grouped products
* Add logic to disable/enable fields and labels based on product type
* Tweak CSS and fix links
* Add tracks events for links
* Add filters to pricing disabled message
* Tweak logic to only enable fields on certain product types instead of disabling in the opposite ones
Add fallback message when pricing is disabled but it's not Variable or Grouped product
* Add docblocks
* Fix more lint issues
* Fix last lint issues
* Update selector in e2e test
* Refactor PHP echo
* Attach to #woocommerce-product-data instead of attaching to body
* Adds a data key with the list of WC features that are currently
enabled on the site.
* Adds a `feature_compat` key to each plugin that shows its
compatibility with each feature (compatibile, incompatible, uncertain)
if the plugin is "woocommerce aware", otherwise just an empty array.
* Changes the feature given it's id and a toggle value as a query param
* Swap classic editor and new product block editor url when product_block_editor feature changes
* Turn off the product_block_editor feature when user choose to use the classic editor
* Add changelog files
* Fix linter errors
* Add nonce to each feature change request
* Change the hooks name for better readability
* Use get_current_screen function to better identify if the current screen is the product creation or edition
* Add wp_die if the nonce verification failed
* Change regex for explode/parse_url for better reading
* dev: refactor installAndActivatePlugins to xstate
* ts fixes
* fixed first plugin install progress bar reset issue
* clean up todo comments
* fixed bug where errors were not reported if past 30s timeout
* fix lint
Co-authored-by: Joel Thiessen <444632+joelclimbsthings@users.noreply.github.com>
Co-authored-by: Nima Karimi <73110514+nima-karimi@users.noreply.github.com>
Co-authored-by: Thomas Shellberg <tommy.shellberg@automattic.com>
In PHP 8.1 the behavior of mb_detect_encoding has changed from
"return the first suitable encoding from the list" to
"return the most probable encoding from the list". The algorithm used
for "most probable" often fails, though, and detects valid UTF-8
strings as if they were ISO-8859-1. The fix is to use mb_check_encoding
instead.
Additionally, if conversion is needed, mb_convert_encoding is now used
since utf8_encode is deprecated.
In PHP 8.1 several functions that accept a string as an argument
(e.g. str_replace) throw a deprecation notice when null is passed.
This commit changes the usages of these functions in
wc-formatting-functions.php so that null inputs are converted
to empty strings.
* dev: refactor core-profiler - modularise each page
- wrapped each page's pre, post, and main states into their top level states for tidiness
- tagged them with id so that we can easily jump to them when doing routing
- generalised component finder code such that it recursively traverses the state meta object until it finds a component key
- fixed css label to use top level state key
* moved initializing into introOptIn so it's not a special case by itself
* Add placeholder TourKit in product-page
* Create component and configure it to show to the right of wp menu
* Finish TourKit and start creating features guide
* Implement CSS changes and background color
* Create Wrapper to facilitate showing the tour and guide without relying on the options in the future
* Refactor
Add tracks events
* Add changelog
* Fix lint problems
* Fix CSS
* Refactor styles
* General refactor and extract BlockEditorGuide component
* Add changelog
* Fix lint issues
This introduces 2 filters: `woocommerce_order_table_orders_clauses` and `woocommerce_order_table_orders_request`. They mimic the ones found in `WP_Query::get_posts()`.
They allow to modify the query's clauses, depending on the query args (available in the `OrdersTableQuery` object) for example.