* Check WC_Legacy_API instead of WC_API as that seems to be cached by lightspeed servers.
* Improve the detection of the legacy API:
1. Modify the autoloader so that it never loads the WC_API class.
This is needed bacause the legacy REST API plugin itself does a
"class_exists('WC_API')". The plugin itself will continue to load
its own copy of the class without issues.
2. Detect the WC_Legacy_REST_API_Plugin class in the legacy API stub.
This is a performant and bulletproof way to detect if the plugin
is isntalled.
* Rearrange code a bit
---------
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* fix null strpos param
check whether $plugin_page is set prior to passing it to strpos
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/src/Internal/Admin/Orders/PageController.php
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Update PageController.php
fix eslint error
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* chore: Invalidate cache for SiteGround Speed Optimizer and WP Engine
The code changes in `ComingSoonCacheInvalidator.php` add cache invalidation for SiteGround Speed Optimizer and WP Engine. This ensures that the cache is cleared when necessary, improving the performance of the website.
* Add changelog
* Add a slash to ensure calls are made in global namespace
* Use sg_cachepress_purge_cache
* Update plugins/woocommerce/src/Internal/ComingSoon/ComingSoonCacheInvalidator.php
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Fix lint
* Update plugins/woocommerce/changelog/update-purge-cache-siteground-wpengine
---------
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
Co-authored-by: moon <moon.kyong@automattic.com>
* show terms optimistically
* define values as TokenItem array
* introduce TokenItem type
* add token animation when adding
* terms could be undefined
* remove unused action
* changelog
* minor doc enhancements
* rename consts
* simplify items selector
* clean the temporary items, one by one
* do not pass selectedTerms when adding a new one
* pull and update form terms when creating new ones
* fix typo
* do not export TokenItem type
* rename and tweak jsdoc
* skip E2E test
* Optimize intro `professional-theme.svg` image
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Redacted sensitive info from SSR for GutHub
* Redacted database section
* lint fix
---------
Co-authored-by: Naman Malhotra <naman03malhotra@gmail.com>
* WIP
* CYS: Refactor routing approach
* fix type
* Add changefile(s) from automation for the following project(s): woocommerce
* remove focus logic
* remove routekey prop
* fix scroll after insert pattern
* pass onNavigateBackClick callback as prop
* fix scroll
* Add changefile(s) from automation for the following project(s): woocommerce
* fix back arrow click
* fix css
* fix tooltip position
* create dedicated CSS class
* lint css
* restore change
* improve css class name
* remove not necessary class
* add github link to the todo
* lint css
* add want more pattern section
* remove not used import
* CYS: set new default patterns
* Add changefile(s) from automation for the following project(s): woocommerce
* fix logic after merge trunk
* CYS: fix tooltip position
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
* CYS: add pattern category in the block toolbar
* remove not necessary import
* improve style
* Add changefile(s) from automation for the following project(s): woocommerce
* improve CSS
---------
Co-authored-by: github-actions <github-actions@github.com>
* WIP
* CYS: Refactor routing approach
* fix type
* Add changefile(s) from automation for the following project(s): woocommerce
* remove focus logic
* remove routekey prop
* fix scroll after insert pattern
* pass onNavigateBackClick callback as prop
* fix scroll
* Add changefile(s) from automation for the following project(s): woocommerce
* fix back arrow click
* fix css
* fix tooltip position
* create dedicated CSS class
* lint css
* restore change
* improve css class name
* remove not necessary class
* add github link to the todo
* lint css
* add want more pattern section
* remove not used import
* fix logic after merge trunk
* CYS: fix tooltip position
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
* improve logic
* use Optional Chaining
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add a note about connection to WooCommerce.com to readme
* Add link to the Privacy Policy
* Remove extra new lines
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Refactored get_pages() to reduce the amount of get_post() used, avoid unnecessary ifs, and fixed a bug where the classic shortcode block would trigger a false block usage value.
* Added block/shortcode usage to the system report for the Cart & Checkout pages. Also added a warning when a page contains both experiences.
* Added support info for templates out of sync not loading the page content.
* Add close button to store alerts
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Assert that a new product that is saved returns the correct status ('publish' by default)
* Update product status after saving
* Changelog
* Add additional unit tests to verify status is handled correctly
* Fire action if order line item has been restored
This is the equivalent to the 'woocommerce_reduce_order_item_stock' hook in the wc_reduce_stock_levels() function.
* Add @since tag to docblock
* Change position of @since tag
* Add changelog
* Use tabs for indents
* Fix indents again
* Fix another indent
* Prefer update URLs over PluginURI in My Subscriptions
* Add changefile(s) from automation for the following project(s): woocommerce
* Add comments to clarify how the function works
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add hardcoded queryId to the blockified templates
* Add additional check in PC block to verify the content is being rendered
* Add changelog
* Lint fix
* Add markup for Fiverr logo maker.
Add text CTA with link to WooCommerce landing page for Fiverr logo
maker in sidebar navigation on the logo view.
* Adjust styles for Fiverr logo maker CTA.
* Update string output to use interpolateComponents
The text in this addition is mixed with string and markup.
This segmentation can lead to translation issues because
different languages have different syntactic structures.
Here, we utilize interpolateComponents to remedy these potential issues.
See
https://github.com/woocommerce/woocommerce/pull/48486#discussion_r1639637477
for context.
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: fix logic to disable mover buttons
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix review error type
* Add changelog
* Rename global error-boundary class to avoid conflict
* Rename global error-boundary class to avoid conflict
* Wrap panels in error boundary
* Remove console
* Reformat
* Fix test
* Fix test
* Add changelog
Fixes #46699
* Add the ProductAttributesLookup\CLIRunner class
* Fix the restoring of the lookup table usage option
* Fix the restoring of the lookup table usage option
* Improve the progress bar of the regeneration command
* Add changelog file
* Fix existing unit tests
* Add linter exception for TODO comment
* Fix example in CLI runner
* Optimize data insertion/update in the product attributes lookup table
The optimized method uses direct database access to the database tables
required to gather all the required data (posts, terms, teaxonomies)
instead of the standard WordPress and WooCommerce functions.
This is done only if:
1. The curent data store for products is the posts table, AND
2. The woocommerce_attribute_lookup_optimized_updates option is 'yes'
Otherwise, the old existing code is used as a fallback instead.
* Adjust the product attributes lookup table CLI tools.
The "regenerate" and "regenerate_for_product" commands will now
use the optimized update method by default if the data store
for products is the posts table (irrespective of the value of the
woocommerce_attribute_lookup_optimized_updates option).
The --disable-db-optimization argument can be appended to
use the old method instead.
* Adjust unit tests for the product attributes lookup table data store.
Now both the optimized data insert/update method and the old
standard functions based method are tested.
* Change the default step size for product attributes lookup table regeneration
The previous value of 10 was too conservative and slowed down the
regeneration unnecessarily (each step involves a call to
wc_get_products, which is quite slow). The new value of 100 is not
too high as to produce bottlenecks, but provides a significant
performance gain.
* Add a missing exception variable
* Add changelog file
* Replace sneaky spaces with tabs
* Make the linter happy
* Add extra code comment for clarity
* Display error messages after CLI commands if table updates fail.
* Use lookup table name variable in SQL query
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Better description for the newly introduced setting
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Fix typo in method name and change |= operator to ||
* Fix linting issue and variable initialization
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Remove filter edit_comments_screen_text on gettext for performance
The filter is removed to improve performance and avoid unnecessary calls. Acceptable tradeoff: When editing a product review in the Admin, the screen title changes from "Edit Review" to "Edit Comment".
* Add changelog
* fix: label improvement on my order pages
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/changelog/48374-fix-label-improvement-on-my-orders
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/changelog/48374-fix-label-improvement-on-my-orders
* Add changefile(s) from automation for the following project(s): woocommerce
* version bump
* Update plugins/woocommerce/changelog/48374-fix-label-improvement-on-my-orders
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* linting
---------
Co-authored-by: github-actions <github-actions@github.com>
* Enable block customizations
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Enable background and color customization
* Add E2E tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix api tests results path
* Add changelog
* Run Core API tests - HPOS disabled on pull_request
* Update the artifacts name pattern to avoid conflicts
* Revert pull_request trigger
* CYS: set new default patterns
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: fix tooltip position
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show tooltips in delete and shuffle buttons
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Strict selector
* Wait for element
* Add changefile(s) from automation for the following project(s): woocommerce
* Linter
* Tweak
* Use a different selector
* Tweak selector
* Wait for Delete Users to be visible
* Trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create VariationStockStatusForm component
* Integrate VariationStockStatusForm within the VariationsTableRow component
* Add woocommerce_manage_stock option to the default_option_permissions list in the Options rest controller
* Enable track inventory when woocommerce_manage_stock is set to yes
* Add stock_status radio component to the VariationStockStatusForm component
* Fix VariationStockStatusForm padding
* Fix control spacing
* Add stock_quantity to the VariationStockStatusForm component
* Add changelog files
* Fix linter errors
* Fix invalid sortable state in the variations table
* Fix CYS crash when loads in WordPress Plaground
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* switch setting templates order
* pull product_form from the entity store
* fix typo
* set post excerpt with template description
* update the description for the Simple template
* rename type for product form post
* introduce isProductFormTemplateEnabled() helper
* render the PFTs into the templates selector
* changelog
* tscripting
* remopve dropdown
* re-write changelog files
* change and rename isProductFormTemplateSystemEnabled
* remove unused component
* try change the template version name
* Add inert to header and footer on the homepage
* Add changefile(s) from automation for the following project(s): woocommerce
* Refactor to pass query as a param to the hook
* Add an observer to enable/disable patterns depending on the assembler section
* Add changefile(s) from automation for the following project(s): woocommerce
* Rename observer
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove custom `wp_kses` rules in favour of default `wp_kses_post` function
Custom sanitization/validation is no longer needed—we can just inherit wp_kses_post like other field types.
wp_kses was originally implemented for a ShareThis integration a5aa58b135 but this is no longer present in WooCommerce.
iFrame usage is not encouraged in these settings fields so with this change they will be filtered out. Developers who would like to allow iFrames can add a custom `sanitize_callback` function when registering settings fields.
* Apply kses on gateway description unless extended by a plugin
* Code standards + esc in touched abstract payment gateway class
* Changelog
* Use esc_url for icon URL
* Add missing hook docs in payment method class
* Add since documentation
* Skip description if empty
* Run KSES early so we know if the description has content.
* CYS: apply color to the heading elements in the core/cover block
* Add changefile(s) from automation for the following project(s): woocommerce
* fix color
* add E2E test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add inert to header and footer on the homepage
* Add changefile(s) from automation for the following project(s): woocommerce
* Refactor to pass query as a param to the hook
---------
Co-authored-by: github-actions <github-actions@github.com>
* Handle core profiler get countries error
* Update style
* Add changefile(s) from automation for the following project(s): woocommerce
* Update button and code style
* Address feedback
* Fix lint
* Record skip step track and rename event
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add a call to a new report workflow in woocommerce-test-reports repo
* Test change to trigger tests
* Update report title
* Test change to trigger tests
* Check REPORT_TITLE
* Add quotes on all arguments
* Update reporting configuration to all core e2e jobs
* Add changelog
* Use GITHUB_HEAD_REF for pull_request
* Set REPORT_TITLE for workflow dispatch
* Updated trigger from daily-e2e to daily-checks
The json_encode function encodes multibyte characters literally by
default, which makes them unreadable in the log files. This change
ensures those characters remain intact, rather than encoded. It also
adds better handling for characters that get escaped with slashes.
Fixes#44743
* Fix flaky assembler homepage test
* Add changelog
* Increase waiting time for the assembler loading
* Remove beforeEach and add function to all tests
* Hide Products (Beta) from inserter
* Add changelog
* Update E2E test replacing Products with Product Collection block
* Add step to choose collection in E2E test
* Change fill PW method to pressSequentially so the inserter shows blocks
* Update changelog entry
* Replace Products (Beta) with Product Collection block in blockified template
* Add necessary attributes that influences the look of blocks
* Replace Products (Beta) with Product Collection block in product search results
* Replace Products (Beta) with Product Collection block in products by attribute
* Replace Products (Beta) with Product Collection block in products by category
* Replace Products (Beta) with Product Collection block in products by tag
* Replace Products (Beta) with Product Collection when transforming from classic product archive
* Change the no results content in blockified search results template
* Replace Products (Beta) with Product Collection block in product search results
* Add product search in no results content of blockified product search result
* Add ts-ignore before createBlocksFromInnerBlocksTemplate imports
* Add changelog
* Remove step of replacing Products (Beta) with Product Collection in compatibility layer tests
* Remove step of replacing Products (Beta) with Product Collection in Product Collection tests
* Fix lint
* Update E2E tests of Product Collection
* Adjust Products (Beta) E2E tests
* Add Product Collection focus step in E2E tests
* Improve the way PC block is focused
* Further tests adjustments and new tests comparing classic template with Product Collection
* Bring back the click on body
* Include tips from reviewer
* Enter edit mode, step that I accidentally removde
* Bring the E2E test flow with updating product catalog
* Change the way of removing focus from PC block in tests
* Fix lint
* Improve the layout of search in No Results
* Use previous patterns in Product Search No Results to preserve translations
* Add Search button label in product search form pattern
* Fix lint
* Improve comment explanation
* Extract No Results content to separate pattern in order to make the content translatable
* Lint fix
* Add missing footer to the blockified Products by Tag template
* Exclude woocommerce/patterns from phpcs rules that dont apply there
* Make PC block responsive by default in product archive templates
* Fix typo
* Fix typo
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Small refactoring
* Override the CTA text and behaviour in gateway settings for the WooPayments plugin
* Address lint issues
* Add changelog
* Fix bug introduced during refactoring
* Fix lint error
---------
Co-authored-by: oaratovskyi <oleksandr.aratovskyi@automattic.com>
* CYS: fix css header
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: hide popover when the mouse pointer leaves the site preview and then back
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
Coupon metadata keys `product_ids` and `excluded_product_ids` are stored by WooCommerce as a comma-saparated list of values, but apparently some plugins mistakenly re-store these as serialized arrays. This pull request changes the database metadata read code so that it supports both comma-separated lists and serialized arrays.
Fixes#40569
Log messages can be modified via the `woocommerce_logger_log_message`
filter hook on a per-handler basis, but if the message is modified for
the first handler, the subsequent handlers were receiving the modified
message instead of the original. This simply ensures each handler
receives the original message instead.
Fixes#47126
* Use DOM API to create Order Attribution inputs
* Add changelog entry
* Delete unnecessary changelog
---------
Co-authored-by: Tomek Wytrębowicz <tomalecpub@gmail.com>
* Update useLaunchYourStore hook to accept enabled parameter and only enable it in homescreen
* Add changelog
* Fix type
* Change isHomescreen function to variable
* Add the ProductAttributesLookup\CLIRunner class
* Fix the restoring of the lookup table usage option
* Improve the progress bar of the regeneration command
* Add changelog file
* Fix existing unit tests
* Add linter exception for TODO comment
* Fix example in CLI runner
* Fix: get_lookup_table_info was returning data as strings.
* Show count of lookup table rows after the "regenerate" command finishes.
* Improve error message
* Fix the report name sent to woocommerce-test-reports workflow
* Add test type
* Test change
* Remove test type
* Merge artifacts to keep allure-results
* Overwrite artifacts if one already exists with the same name
* Test changes to trigger tests
* Fix allure-results and .state paths
* Filter tests for faster feedback
* Debug artifacts content
* Use name instead of pattern
* Use name instead of pattern
* Don't use an intermediate path
* Use artifact name and path instead of only pattern
* Use artifact name and path instead of only pattern
* Use artifact name and path instead of only pattern
* Remove testMatch filter to run all tests
* Revert test change
* Add changelog
* Add template ID for variations
* Add changefile(s) from automation for the following project(s): woocommerce
* Update 48325-fix-prepare-variation-boejct
* Add changefile(s) from automation for the following project(s): woocommerce
* Update 48325-fix-prepare-variation-boejct
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add tests for ProductPage
* Add tests for ProductVariationPage
* Add test for product_tab_click event
* Add test for product_editor_feedback_bar_turnoff_editor_click event
* Add test for product_dropdown_option_click event
* Add test for product_add_view track
* Changelogs
* Changelog
* Lint
* Add product_edit_view test and falsey test
* Fix test name