* be less aggressive on selected shipping rate logic
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - set flowType when the state machine is instantiated
* remove not necessary code
* Add changefile(s) from automation for the following project(s): woocommerce
* fix action
* improve logic
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS - AI Flow: hide X button on the entrepreneur flow
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - set flowType when the state machine is instantiated
* remove not necessary code
* Add changefile(s) from automation for the following project(s): woocommerce
* fix action
* improve logic
* Add changefile(s) from automation for the following project(s): woocommerce
* remove not necessary guards
---------
Co-authored-by: github-actions <github-actions@github.com>
* copy styles over from 46619
* Fix header padding
* login/out
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* typo
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change "Origin" column name to "Attribution" in Analytics.
* Rename "Origin" column to "Attribution" in Orders Analytics report download.
* Add changelog.
* Fix UI for add filter popover in Analytics.
* Make character casing consistent for filters.
* Add changelog.
* Add changelog.
* Change filter label to sentence case.
* Skip loading of webhooks if webhooks disabled
* Add changefile(s) from automation for the following project(s): woocommerce
* PHP CS fix.
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* replace pink with wc purple in reports page
* use wc purple in product rating in the dashboard widget
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* use better contrast
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Display channel column in Orders Analytics UI.
* Set $data to false to not use cache.
For development purpose.
* Get channel info from order meta and put into extended_info.
* Set channel in order item level.
* Replace channel with get_origin_label in extended_info.
* Remove unnneeded channel in orders_data.
* Display origin instead of channel in table.
* Fix lint errors.
* Query order meta table based on HPOS.
* Remove code for development purpose.
* Add changelog.
* Fix code comment.
* Guard against null values.
`_wc_order_attribution_utm_source` can be null when the order is created via web admin.
* Set default origin label to "Unknown".
This default is the same as found in `output_origin_column` function in plugins/woocommerce/src/Internal/Orders/OrderAttributionController.php.
* Support server side report download.
This is needed when there are more than 25 records in the Orders Analytics report.
* Fix failed test.
* Fix lint error.
* Simplify code.
We loop through $orders_data instead of $order_attributions data. This is because $order_attributions may not have attributions data for some orders.
By looping through $orders_data, it would automatically cater for "Unknown" data from get_origin_label function call, and we don't need to specify "Unknown" as default value for origin.
* Change "channel" to "attribution" object in controller.
This is because we need more than one piece of information, so we need it to be an object with properties like `origin`, `device` etc.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Change `origin` string to `attribution` array in Orders DataStore.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Change origin string to attribution object.
* Fix indexing after changing from origin string to attribution object.
* Change from origin string to attribution object in table.js.
* Simplify code.
To make code shorter and easier to read, instead of long horizontal code.
* Fix lint errors.
* Fix failed test.
* Fix lint error.
* Fix retrieving origin in CSV export.
* Use $wpdb->postmeta; cosmetic change.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Cosmetic change.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Sanitize order IDs by using absint.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
---------
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* add a failing test for order totals with HPOS enabled but sync disabled
* fix comment
* ensure the wc/v3/reports/orders/totals endpoint is compatible with HPOS
* add changelog file
* address linter issues
* Add a safety check for the numbers with the same value for the separators
This case breaks the library we are using for number formatting. This is not documented on their end and can't be fixed by passing a different configuration.
We are fixing it on our end by overwriting the thousand separator.
This change will only surface in the checkout blocks, at they are the only blocks doing formatting via React (the products blocks use php).
This will not apply to the order confirmation.
This change is preventing a fatal error thrown by the library and allowing users to see the content of the cart.
It's an edge case, because it happens only why people have the same values for the separators, which is an non-standard way to format.
* Add unit tests and changelog
* Add a safety check for the numbers with the same value for the separators
This case breaks the library we are using for number formatting. This is not documented on their end and can't be fixed by passing a different configuration.
We are fixing it on our end by overwriting the thousand separator.
This change will only surface in the checkout blocks, at they are the only blocks doing formatting via React (the products blocks use php).
This will not apply to the order confirmation.
This change is preventing a fatal error thrown by the library and allowing users to see the content of the cart.
It's an edge case, because it happens only why people have the same values for the separators, which is an non-standard way to format.
* Add unit tests and changelog
* Improve tests
* "Improve tests"
* Add flaky test reporter for flaky e2e test reporter
* Add to stalebot workflow instead
* Update stale action to 9 for node 20
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Updated deprecated gh-script action to node 20 variant
* Minor change in e2e test to trigger CI
* Revert e2e test change
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Remove empty "Unknown" handling.
This is because `get_origin_label` would return "Unknown" by default, and therefore empty($origin) would not be true.
If someone use a wc_order_attribution_origin_formatted_source filter to return '' as the formatted source, we should respect it anyway and we should not override it with "Unknown".
* Add changelog.
* add a woo.com connect notice in the plugin list for unconnected store
* add an extra notice string for store that runs outdated woo plugins
* add connect page hyoerlink to the plugin notice
* add changelog
* add comment for maybe_show_connect_notice_in_plugin_list()
* fix linter error
* use installed local woo plugin as the counter of extra notices
* only show woo connect notice in the woocommerce settings page
* add woocom connect notice component
* add woocom connect notice component to the content component
* add extra notice in the woocom connect notice component based on the local woo plugins count
* persist dismissal of woo connect notice in the wc admin settings page
* update changelog
* use update-check-public for unconnected stores
* use information from update-check-public API to determine notice show logic
* re-show dismissed connect woocom notice after 1 month
* add re-show notice logic for react admin page of woo connect notice
* fix identation
* differentiate local storage key for notice dismissal
* move woo connect notice script to different file
* rename to connectnotice
* fix linter issue
* fix linter issue
* update woo.com to woocommerce.com
* update woo.com to woocommerce.com in comment
* capitalize the WooCommerce.com
Co-authored-by: Leif Singer <leif@automattic.com>
* capitalize WooCommerce.com
---------
Co-authored-by: Leif Singer <leif@automattic.com>
* Added new OrderSummaryTotals Block
* Refactor order summary and totals block to contain the inner children
* Add migration for Order Summary Block
* Migration to handle older order summary without totals block
* Remove empty lines from order summary migration
* block editor migration for order summary
* Fix isEligible function
* Update Totals title
* Add checkout totals
* Remove echos and dies
* replace individual checkout blocks with totals block
* Change parent of totals inner blocks and add totals block to innerBlockAreas map
* change CART_ORDER_SUMMARY_TOTALS to CHECKOUT_ORDER_SUMMARY_TOTALS
* Fix linting issues
* fix lint warnings
* Add changelog
* Lock movement of the taxes block in attributes.tsx
* Less indentation in the render function of CartOrderSummaryBlock and CheckoutOrderSummaryBlock
* Rename webpack chunkName for order summary totals
* Add coming_soon page as a store page
* Implement coming soon banner dismiss
* Added a new REST for Launch Your Store with a dismiss endpoint
* Updated coming soon banner logic to check for woocommerce_coming_soon_banner_dismissed
* Lint fixes
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/src/Admin/API/LaunchYourStore.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/API/LaunchYourStore.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/API/LaunchYourStore.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Use user meta to save woocommerce_coming_soon_banner_dismissed
* Lint fixes
* Use the built-in rest api to manage woocommerce_coming_soon_banner_dismissed user meta
* Reset woocommerce_coming_soon_banner_dismissed on login
* Fix lint issues and add back wp_login hook to reset banner dismiss user meta
* Use constant for user meta field
* Update woocommerce_coming_soon_banner_dismissed user meta when X button is clicked
* Restrict user meta to shop manager or admin
* Fix lint issue
* Fix lint issue
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Set access modifier for $error_message to public and added a setter method.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Can only be inserted once test excludes the mini-cart template button
* Use function for testing disabled state
* Account for blocks advertise and change selector
* remove skipped tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Render site visibility only when launch-your-store feature flag is on
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix: cookie path in private link sharing
The commit includes a fix for the LYS private link woo-share cookie entry. The path for setting the cookie has been corrected to ensure proper functionality. T
* lint
* Update coming soon page link to template editor
* Add changelog
* Hide coming soon link when current theme is classic theme
* Remove line change
* Add type
* Only query order meta for orders that were successfully retrieved from the DB.
* Add changefile(s) from automation for the following project(s): woocommerce
* Address linting issue
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* CYS - fix use GPT 3.5 model
* Add changefile(s) from automation for the following project(s): woocommerce
* use constant
---------
Co-authored-by: github-actions <github-actions@github.com>
* Verify Order is valid before returning it from the OrderFactory
* Add tests to validate fix when using serializing object cache implementation
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* Update wc-cart-functions.php
Unused local variable 'discount_amount_html'. The value of the variable is overwritten immediately.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* woo plugins use public endpoint for unconnected stores, show message to connect to woo.com as well
* add changelog
* fix lint error
* fix lint error
* fix lint error
* fix lint error
* move is site connected check outside the loop
* add condition to show the notice when site is connected and plugin is active
* update domain to woocommerce.com
* Fix fatal error with non-fse theme
* Update conditional inclusion of header and footer templates in coming-soon-store-only.php
* Update conditional inclusion of header and footer templates in ComingSoonRequestHandler.php
* Remove add_theme_support( block-template-parts );
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Move daily site check workflow to deprecated
* Add install-plugin script
* Install plugins script
* Fix the script path, it was moved.
* Set env on job level
* Update working-directory
* Add changelog
* Use the right WC_SUBSCRIPTIONS_REPO variable
* Add a test channel id
* Update smoke-test-daily.yml
* Remove WC Subscriptions
* Update smoke-test-daily.yml
* Switch back the channel ID and remove pull_request trigger
* Move deprecated workflows to deprecated folder
* Configure new test job for metrics
* Add changelog
* Update start command
* Update start command
* Archive metrics results
* Fix script path
* Fix name in archive results condition
* Add the actual run command for pull_request event
* Run with pnpm --filter
* Test run for push event
* Revert test conditions
* Add WP_ARTIFACTS_PATH env variable
* Update path to readme.txt
* Revert github event conditions
* Add CODEVITALS_PROJECT_TOKEN env
* Set WP_ARTIFACTS_PATH on job level
* Add blocks templates in the changes list
* Use editedRecord instead of record
* Always use productTemplateId when available
* Change private methods to protected in ProductVariationTemplate
* Use editedRecord in hook useEntityRecord
* Update changelogs
* Restore attribute renamed by mistake
* Change useProductTemplate unit test
* Add clause to query in `CustomMetaDataStore::get_meta_keys` to exclude metas where the key is ''.
* Addressing linter error. Removed unnecessary prepare.
* Split taxonomies filter into seperate filter per taxonomy
* Add changelog
* Improve onDeselect function
* Update tests
* Fix lint
* Satisfy TS by returning single React element rather than array of elements
* Remove unused variable
* Make LYS preview frame resizable
* Add changelog
* Refactor site-preview.scss: Remove components-resizable-box__container styles
* Set z-index to 2 to preview container to fix resizing handler on max size
* Make room for the handle on the left side
* Update social link urls
* Align wide
* hide banner on Coming soon page
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add selectable attribute in product template to allow creation of product templates that do not appear on the "Change product type" UI
* Always use productTemplateId when available, otherwise fallback to standard-product-template
* Rename attribute
* Use editedRecord in hook useEntityRecord
* Revert "Always use productTemplateId when available, otherwise fallback to standard-product-template"
This reverts commit 2960fcd520.
* Revert "Use editedRecord in hook useEntityRecord"
This reverts commit c28e005e7b.
* Add changelogs
* Fix unit tests
* Increment changelog
* Bump eslint-import-resolver-typescript from 3.2.4 to 3.6.1
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Bump dataloader from 2.1.0 to 2.2.2
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add translation context to ambiguous words
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix Launch Your Store task item should not be clickable once completed
* Add changefile(s) from automation for the following project(s): @woocommerce/experimental, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - E2E test: not use snapshot approach for color picker E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce
* remove comment
* CYS - E2E tests: add create your own section E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* add regression tests
* Refactor to using single meta key per field
* Add changefile(s) from automation for the following project(s): woocommerce
* refactor rest of code
* keep set_array_meta same
* use correct function in condition
* fix spacing
* add docs
* fix markdown issues
* handle false bool meta
* adjust admin keys
* fix merchant tests
* handle checkboxes in checkout response
* address feedback
* Update plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-block/additional-checkout-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-block/additional-checkout-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-block/additional-checkout-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-block/additional-checkout-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-block/additional-checkout-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* update ledt places and reduce abstractions
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update Action Scheduler to 3.7.4
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Hide coming soon banner from preview frame
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update background color and padding in WooCommerce LYS status popover
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensures data is added to the registry just once.
* ditch unnecessary param.
* Deprecate the param for AssetDataRegistry
* Remove the param for additional calls to AssetDataRegistry::add()
* Remove the param for additional call to AssetDataRegistry::add() on WCAdminSharedSettings
* Trigger a PHP warning instead of throwing a fatal whenever the key being registered is not a string and whenever attempting to override existing data.
* Add changefile(s) from automation for the following project(s): woocommerce
* Replace trigger_error with error_log to clear out lint errors.
* Address lint for trigger_error
* Update the test_already_existing_key_on_adding_data test to expect a warning instead of an exception
* Update tests
* Update method from add_data to add.
* Remove the throw InvalidArgumentException for the add and add_data methods.
* Remove the now unnecessary test_already_existing_key_on_adding_data test, considering we now return early whenever the key is duplicated, the code never reaches this stage via AssetDataRegistry:add
* Move the call to the exists method to within the add_data method.
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - E2E test: not use snapshot approach for color picker E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce
* remove comment
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update checks for sale price
* Update checks for product images
* Update checks for linked products
* Update default theme for e2e environment to twentytwentythree
* Fix basic spec
* Fix locator product block editor test
* Make cart.spec.js theme agnostic
* Updated mini-cart.spec.js
* Updated cart-checkout-block-calculate-tax.spec.js
* Updated cart-block.spec.js
* Fix cart-block.spec.js
* Update account-email-receiving.spec.js
* CYS - E2E tests: fix flaky assembler-hub test
* Use a value for pr_number
* Update condition for the Slack alert job
* Remove pr_number argument
* Add changefile(s) from automation for the following project(s): woocommerce
* Update conditions for the publish reports jobs
* Rename jobs
* Send GITHUB_SHA to report
* Check for skipped status
* Include Slack notification step in the reporting job
* Rename jobs
* Test update to trigger api tests
* Revert test change for api tests
* fix flakiness
* Test change to trigger all tests
* Test slack alert condition
* add waitUntil
* Force a test failure
* Revert all test changes
* improve logic
* fix build error
* try now
* Update product-inventory-block-editor.spec.js
* fix unit test
* fix flakiness
* Update checkout-block.spec.js
* Update checkout-block.spec.js
* Add utils/order
* Remove the check for more items than the coupon max amount as it fails with block themes
* Update create-simple-product-block-editor.spec.js
* Update cart-checkout-calculate-tax.spec.js
* Update checkout-block.spec.js
* Update create-simple-product-block-editor.spec.js
* Update wordpress-post.spec.js
* Update my-account-addresses.spec.js
* Update my-account-create-account.spec.js
* Update my-account-downloads.spec.js
* Update my-account-pay-order.spec.js
* Update my-account.spec.js
* Update order-email-receiving.spec.js
* Update product-grouped.spec.js
* Update product-simple.spec.js
* Update product-tags-attributes.spec.js
* Update product-variable.spec.js
* Update shop-search-browse-sort.spec.js
* Update checkout.spec.js
* Update checkout-login.spec.js
* Update checkout-create-account.spec.js
* Update wordpress-post.spec.js
* Update cart-checkout-calculate-tax.spec.js
* Update wordpress-post.spec.js
* Update mini-cart.spec.js
* Remove logging of order id
* Remove the log-out action as it invalidates the customer state and breaks other tests
* Use disableWelcomeModal
* CYS - E2E tests: add homepage picker E2E tests
* update snapshots
* add snapshots
* use screenshot tests+
* use snapshot
* try now
* update snapshot
* remove wp-container snapshot
* remove only
* add comment
* add snapshot
* enable color picker tests
* revert to twentytwentythree
* restore changes related to the color picker
* use default theme
---------
Co-authored-by: Adrian Moldovan <adim.moldovan@gmail.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
* CYS - E2E tests: add font picker E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce
* reset to the default theme
---------
Co-authored-by: github-actions <github-actions@github.com>
* Tour component initial design
* Add woocommerce_lys_tour_dismissed option on 8.7.0 update
* Use woocommerce_lys_tour_dismissed to render the tour
* Rename option
* Add useSiteVisibilityTour
* Remove unused tourDismissed var
* Remove unused import
* Add changefile(s) from automation for the following project(s): woocommerce
* Use ' not `
* Lint fixes
* Update plugins/woocommerce-admin/client/launch-your-store/tour/index.tsx
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Add discover more link
* woocommerce_launch_your_store_tour_hidden should be added < 8.9
* Adjust padding bottom for the footer
* Use user meta to manage woocommerce_launch_your_store_tour_hidden
* Adjust tour padding
* Fix global types
* Exclude the tour on new sites
* Fix missing doc comment
* Update tour descriptions
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Previously, the code assumed that all memory_limit values used the "M"
suffix (for megabytes); values using "G" (for gigabytes), "K" (for
kilobytes), or no suffix (for bytes) were all parsed incorrectly. Now,
all possible values should be handled correctly.
This bug has actually been fixed twice before in other locations:
Commit 538403306c (#30908)
Commit 4557108805 (#21557)
* Changing shopper feedback on payment response issues
* Add changefile(s) from automation for the following project(s): woocommerce
* Disambiguated error log
* Prevent unexpected error response from outputting technical data to the user. Instead display an helpful message to prevent retries.
* Fix PHP linting.
* Changed error message and added translators comment
* Safeguarding against wc_checkout_params.i18n_checkout_error definition
* Added null check
* Add deselect callabck to attribute filter
* Add deselect callabck to created filter
* Add deselect callabck to featured filter
* Add deselect callabck to handpicked filter
* Cleanup deselect callabck to keyword filter
* Add deselect callabck to on salefilter
* Add deselect callabck to order by option
* Add deselect callabck to stock status filter
* Add deselect callabck to price range filter
* Add deselect callabck to price taxonomies filter
* Call all the reset filer callbacks on reset
* Add changelog
* Remove unused variable
* Replace hardcoded default filter values with the DEFAULT_FILTERS constant
* Copy change for coming soon setting
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add 'woocommerce_coming_soon_page_id' option to API options
* Add useComingSoonEditorLink hook to handle the coming soon editor link
* Add useComingSoonEditorLink hook and update styles
* Add changelog
* Move use-launch-your-store.js to ./hooks and update import path
* Add live-branches/install.php to API
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
---------
Co-authored-by: github-actions <github-actions@github.com>
* Track site visibility actions
* Move private link text box to prevent accidental toggle
* Add changefile(s) from automation for the following project(s): woocommerce
* Restirct site visibility settings to general tab
* Remove unnecessary site visibility render logic
* Lint fix
---------
Co-authored-by: github-actions <github-actions@github.com>
* Move site visibility settings to a new tab
* Add changefile(s) from automation for the following project(s): woocommerce
* Update tab id to site-visibility and link to it from the homescreen badge
* Fix tests
* Remove unused code
* Lower case tab title
* Remove general from the slotfill id
* Remove typo
* Lint fix
* Lint fix
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix the CI unit test path for legacy unit tests
* update the pattern in all the relevant CI jobs
* add the tests/unit-tests folder as well
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Fix tests currently failing against HPOS environment setup
* Add changefile(s) from automation for the following project(s): woocommerce
* fix lint warning for print_r usage
---------
Co-authored-by: github-actions <github-actions@github.com>
* bump husky, remove remnants from blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* add @playwright/test to syncpack
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* update pnpm-lock.yaml
* add github-label-sync to syncpack
* add stylelint to syncpack
* add classnames to syncpack
* manually sync wp-prettier
* sync sass-loader version
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* When order is out of sync, suggest a fix
* Allow cleanup tool to remove data for placeholders even if order can’t be loaded from HPOS
* Prevent infinite loops in cleanup tool
* Add changelog
* Fix PHPCS violations
* Improve error messages
* Fix syntax error
* Minor fix
* CYS - color picker: fix CSS
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Stop relying on snapshot for footer and header tests
* Remove only
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: add debounce to improve performance
* Fix button colors
* Format
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
* CYS: add debounce to improve performance
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Disable assembler header test temporarily
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add data providers for WC_Formatting_Functions_Test tests
* Add tests for Denmark postcodes
* Add formatting for Sweden postcodes
* Add formatting for CZ, SK postcodes. Cleanup formatting for LV
* Group wc_format_postcode tests by country
* Add changefile
* Match digits only in LV, CZ, SK postcode formatting
* Update postcode validation for CZ, SK
* Minor adjustment to regex
---------
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* Fix the overlay color of the "Featured Category Triple" pattern
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add e2e tests for the assembler footer section
* Add changefile(s) from automation for the following project(s): woocommerce
* Renam var
* Rename pageObject
* Add test for the preview
* Improve the test by extracting the expected class from the selected footer
* Update snapshot
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add e2e tests for the assembler header section
* Rename var
* Add changefile(s) from automation for the following project(s): woocommerce
* Add test to check the preview changes when selecting a header
* Add missing header classes and all preview test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add unit test simulating order mix up when order ID is zero.
* Better tests.
* Dont try reading from DB when order is zero to prevent mixups.
* PHPCS fixes and changelog.
* Syntax sugar
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Add E2E tests for Product Filter: Price block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Use web first assertions
* Replace `toB` by `toHaveValue` in E2E tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* skip color picker E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Temporarily disable deprecation logging and use old DataSourcePoller class
* Changelog
* Update DataSourcePoller.php
* Change to comment for lint
* Typo again
* Lint
* Better comment from @nigeljamesstevenson
* E2E test env: use WordPress 6.5 stable version
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Revert "Wait for notice text to be visible instead of checking data store"
This reverts commit f26892a646.
* Revert "Fix linting errors"
This reverts commit eaf90e4890.
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Extract update count function.
* Pass wooUpdateCount to be used by admin components.
* Show update count bubble on in-app my subscriptions tab.
* Add changefile(s) from automation for the following project(s): woocommerce
* Refactor how update count HTML is generated and move logic into appropriate classes.
* Show red badge when the site is disconnected, regardless of the installation status of WUM.
* Always display as 1 update is available when site is disconnected.
* Skip using dangerouslySetInnerHTML.
* Remove unused dependency.
* Move updateCount to a tab property.
* Prevent calling get_update_count if the site is not connected.
* Raw url encode the product key before signing the URL
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Muhammad Anas <muhammad.anas@automattic.com>
* Use templateSlug context in Product Collection
* Implement util recognising the location for track events
* Implement the track event when user chooses a collection in Product Collection
* Add changelog
* Remove incorrect import
* Cover cases with specific Product or Specific Taxonomy
* Update event name
* Adjust Product Filters tests
* Revert wrong commit
* Unify the category for all Product Elements
* Add changelog
* Bring back category to product elements that don't use shared confiug
* Add specific category to some Product Elements blocks registered only for Single Product template
* CYS - E2E tests: add logo picker E2E tests
* fix flakiness
* use as second parameter
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changes to tests projects on package.json
* CYS - E2E tests: fix flaky assembler-hub test
* Add changefile(s) from automation for the following project(s): woocommerce
* fix flakiness
* add waitUntil
* improve logic
* fix build error
* try now
* fix unit test
* fix flakiness
* fix logic
* improve tests
* add more tests
* use .toBe
* add documentation
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Prevent orders being placed with invalid shipping options
* Add changelog
* Add shipping_disable_flat_rate fixture function
* Test checking out with no valid shipping methods selected
* Update tests to add a default shipping method
* Update test_checkout_invalid_shipping_method to disable method
* If shipping methods is null, return an array with an empty string inside
* Replace WC session in tests that rely on setting cookies
* Add MockSessionHandler to handle test cases using cookies
* Add docblock comment
* Expect shipping validation to fail if chosen methods are null
* Add shipping method before testing validate_selected_shipping_methods
* Update MockSessionHandler to handle caching
* Show error when test fails
* Default the chosen shipping methods to an empty array if not set
* Split checks for needs_shipping and valid shipping apart
* Remove unnecessary session set and total calculation
* Fix lint errors
* Init session in each test
* Reimplement required methods (those that are private or use cookies)
* Update phpcs ignore comment to be inline
* Prevent error when accessing unset variable in mock cache
* Fix lint error
* Add meta_data parameter in generateProductVariations
* Apply filter to get meta_data to generate variations
* Add meta_data parameter in generate variations endpoint
* Update name and add documentation
* Fix useEntityRecord in blockEditor
* changed LYS task id to hyphens for consistency with the other tasks
* add: lys hub sidebar
* ling
* lint2
* fixed sidebar title back button
* lint
* missed i18n
* sidebar title css
* unnecessary mutate
* hide test order toggle for now
* Recognise if Product Collection is inside Cart or Checkout blocks
* Upgrade priority block recognition over templates
* Update the comments to better depict the flow
* Add changelog
* Simplify the logic
* Add coming soon page banner on the frontend
* Add changefile(s) from automation for the following project(s): woocommerce
* Check for shop_manager
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add icons to ellipsis menu -- lys
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Copy update for coming soon badge
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Site visibility settings copy changes
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make sure we are in admin area when using current_screen()
* Add changefile(s) from automation for the following project(s): woocommerce
* Check admin in preload_settings
* Remove unwanted changes from a different branch
---------
Co-authored-by: github-actions <github-actions@github.com>
* clean up woocommerce-blocks package.json
* update from feedback
* move entry to original location
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Fetch all products for hand-picked products control
This commit modifies the `getProducts` function usage within the Hand-Picked Products control, aiming to fetch all products regardless of catalog size.
The change involves explicitly setting `queryArgs` to include `per_page: 0` in the function call. This adjustment overrides the default behavior based on the `isLargeCatalog` condition, ensuring that all available products are fetched from the Store API for selection within the control.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove clickable cursor on post title
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update plugins/woocommerce-blocks/assets/js/blocks/product-collection/edit/editor.scss
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* Add missing semicolon
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* update WordPress version
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove ToS acceptance in WCPay banner and promotions JSON
* Add changefile(s) from automation for the following project(s): @woocommerce/onboarding, packages/php/remote-specs-validation
* Add line break in banner to look nicer
* Center banner content
* Style banner for mobile version
* fix js test to use another block (previous one no longer exist)
* Add changefile(s) from automation for the following project(s): @woocommerce/onboarding, packages/php/remote-specs-validation, woocommerce
* Add comment to css
---------
Co-authored-by: oaratovskyi <oleksandr.aratovskyi@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Ensure that each <CheckboxControl> component has a unique id
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Optimise setup and teardown settings
* Wrapping setup and teardown in act()
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add private link
* Add changefile(s) from automation for the following project(s): woocommerce
* Use useCopyToClipboard and remove label click behavior
* Preload settings for site visibility
* Default to live when woocommerce_coming_soon option is not available
* Remove use of classnames -- no longer needed
* Lint fixes
* Lint fixes
* Remove changes for label click behavior -- we will work on it in a separate PR
* Remove unused import
---------
Co-authored-by: github-actions <github-actions@github.com>
* Introduce 44084 and 44790 back to be reintroduced with back compat.
This reverts commit fcdbc76414.
* Add changelog.
* Manually call `rest_request_after_callbacks` filter for backward compatibility.
* Make the controller checks more robust.
* Dont call rest api when controller is found but response cant be calculated.
* Add unit test for hydration class.
* Update comment docs for future warning.
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Return unfiltered routes array to prevent overwriting.
* PHPCS fixes.
* Use hydration context filters instead of duplicating REST API filters.
* PHPCS fixes.
* Adjusted unit test for new filters.
---------
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Link Payments task item to Overview if WooPayments is connected
* Link APMs task item to payments task page
* Add changelog for WooCommerce
* If WCPay is connected go to Payments Overview page
It shouldn't matter if the WCPay account is fully or partially onboarded.
* Adjust shipping calculations copy
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix deprecated warning when applying a coupon on Cart in PHP > 8.0
* Add changefile(s) from automation for the following project(s): woocommerce
* Changed property type to protected
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add e2e tests for virtual orders and refactor test names
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Optimise setup and teardown
---------
Co-authored-by: github-actions <github-actions@github.com>
* Redirect to intro page when accessing the transitional page if no customized
* Remove only
* Add changefile(s) from automation for the following project(s): woocommerce
* Check if the task is completed
* Add transition screen class
* Remove unused import
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add sharding to Blocks e2e tests
* Changelog
* Push a change to Blocks README to trigger tests
* Fix syntax
* Fixed again
* Try again
* Trying to get the shard number
* Shard names
* fix E2E test
* use wordpress 6.5 as test env
* update util
* fix Mini Cart Block E2E test
* add editor dependency
* fix E2E tests
* fix E2E tests
* fix E2E tests
* restore global setup file
* fix E2E tests
* fix global setup
* try now
* try now
* fix E2E test
* fix E2E test
* fix mini cart E2E test
* add changelog
* complete all the jobs
* update playwright
* fix E2E tests
* fix E2E test
* try now
* fix E2E test
* not show welcome guide for the post editor
* update configuration
* fix guest storage state
* fix E2E tests
* check now
* fix E2E tests
* fix command
* improve selector
* use WordPress 6.5 beta 2
* use WordPress 6.5 beta 3
* fix canvas use
* wait for button
* fix E2E test
* fix E2E test
* fix product button
* fix product collection tests
* fix wp build link
* use beforeEach
* fix E2E tests
* use WordPress RC2
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* trigger CI
* fix E2E tests
* fix E2E tests
* fix E2E test
* fix E2E tests
* add timeout
* Fix flaky locator assertions
...by replacing them with dedicaed auto-waiting ones.
* Apply correct use of waitForRequest/Response and remove where unnecessary
* Remove obsolete waitUntils
* Fix accidentally isolated test
* Replace saveTemplate with core's saveSiteEditorEntities
* Fix findProductRow util
* Restore necessary request waiters
* Use activateTheme util instead of cli call
* Remove unused import
* Fix request destructured call
Request properties cannot be destructured (todo: create upstream issue)
* Revert some waitForRequest changes
These need to be investigated for heavy bleeding from side-effects
* Fix failing cart checkout test
* Set navigation timeout to 10s
We need this so that API like page.goto or page.waitForURL doesn't take 100 seconds (global timeout) to throw.
* Do not close the page in the page fixture override
The page will be closed anyway, and by closing it explicitly in the teardown phase of the fixture we create a flaky race condition where the page might be closed before the action/navigation timeout is reached, resulting in "page closed!" error instead of, e.g. "locator.fill timed out".
* Revert product collection tests due to conflicts
* Try fixing E2E test
* Remove some random change
* Revert to programmatic blur 🤷
* Fix additional checkout fields test
* Add a waitForRequest safety check in case it's debounced
* Fix price filter test
* Fix flaky visitTemplateEditor util
* Remove obsolete code from global setup
* Revert "Fix flaky visitTemplateEditor util"
This reverts commit 227336f265.
* update to WordPress RC3
* Add waitForCustomerDataUpdate function
* Don't wait for requests and use data store instead
* Try with new wait condition
* Re-add wait condition
* Wait for customer update in guest checkout test
* Add changelog
* fix lint error
* fix some E2E tests
* disable welcome guide
* remove beforeAll
* add timeout
* add another timeout
* increase timeout
* Add call to waitForSiteEditorFinishLoading when editing the theme template
* remove timeout
* remove not necessary comment
* clean changelog
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* remove changelog
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* don't show draft product in featured products block
* updated the code to show only published product in featured products block
* Update plugins/woocommerce/src/Blocks/BlockTypes/FeaturedProduct.php
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
* added a changelog file
---------
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
* Add get_action_url method to LaunchYourStore task
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add transitional page tests
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add spacing between the title and the rest of the pattern
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove duplicated blockgap
* Add spacing
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensure that shipping can be disabled independent of Local Pickup
* Fix PHPCS issues
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* bump husky, remove remnants from blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* add @playwright/test to syncpack
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* update pnpm-lock.yaml
* add github-label-sync to syncpack
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Add a filter for the items to apply coupons array.
* Add changefile(s) from automation for the following project(s): woocommerce
* Add filter docbloc.
* Add since tag in filter docbloc.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add missing allowed inner blocks to Single Product block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Remove unnecessary attribute from Single Product block template
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix "add_action" accepted args
Fixing the "add_action" accepted args on the examples
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add 'coming-soon' page
* Add coming soon page when user hits the core profiler page.
* Added coming soon page selector under Page setup
* Move coming soon page logic to launch your store feature class
* Conditionally add coming soon select
* Move coming soon page creation logic to WooCommerce Home
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix layout issue -- add align-items for flex items
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Disable woocommerce/product-regular-price-field when product type is variable
* Disable woocommerce/product-sale-price-field when product type is variable
* Disable woocommerce/product-sku-field when product type is variable
* Disable Track stock quantity toggle when product type is variable
* Disable woocommerce/product-radio-field when product type is variable
* Disable woocommerce/product-shipping-class-field when product type is variable
* Disable woocommerce/product-shipping-dimensions-fields when product type is variable
* Add changelog files
* Fix php linter
* register the `metadata` attribute for all blocks
* bind value attribute with the nane product entity
* changelog
* add a ToDo note
* rename edit component fn to NameBlockEdit
* changelog
* restore @ts-export line
* fix eslint issue
* fix eslint issue
* Add Shipping phone number to the order preview panel
* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Don't show publicly non-queryable taxonomies
The main enhancement involves adding a visibility filter to the taxonomies query. Now, the query considers the `publicly_queryable` property of each taxonomy. Only taxonomies marked as publicly queryable are included in the final list returned by the `useTaxonomies` hook. This change ensures that the Product Collection block's taxonomy controls only display taxonomies relevant and accessible to the public, enhancing both the usability for content creators and the relevance of taxonomy selections for site visitors.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: initial E2E tests loading page
* add more cases
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Since we don't need it to be _perfectly_ stable,
we can just set the `queryId` to the instance ID
on every component mounting. This is fine and
won't mark the attribute as dirty unless a
collection block is added, deleted, or moved
in just the right way. The exception to this
is collection blocks in sync patterns.
In this case the ID cannot change
because it can cause update loops in some
cases that freeze the browser.
* Update the copy for the fonts opt-in modal
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Attempt to determine order type from HPOS side too in `PostsRedirectionController`
* Add changelog
* Simplify redirect logic
* Linter hates short ternaries
* Update the CYS feedback survey design
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix typo
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add skeleton spec
* Add missing await
* Update customer role in test env setup
* Split specs
* Add tests for user creation
* Added tests for users deletion
* Fix API tests after env setup customer role change
* Fix API tests after env setup customer role change
* Add update customer steps
* Update user edit tests
* Updated comment
* Products: Avoid fatal during variation search
Most product types' data objects store `WC_Product_Attribute` objects in
their attributes property, whereas Product variation data objects store
an associative array of key/value pairs in their attributes property.
This is problematic because it means a fatal error can be thrown when
code assumes that a product's attributes are objects with methods rather
than simply strings. Ideally, attributes would work the same everywhere,
but it would be challenging to fix that in the codebase without breaking
backcompat. So instead, in this PR, we are simply adding some logic in
the `find_matching_product_variation` method to ensure that we're not
trying to retrieve a variation of a product object that is already a
variation.
* Fix linting issue
* Make sure the woocommerce_admin_customize_store_completed is marked as complete whenever global styles are updated by the user.
* Check for the WP_Post object before attempting to access the content property
* Mark the cys task as completed when modifying a template or template_part
* Unify the mark as complete methods and update the hooks.
* update docblock
* remove unnecessary ()
* Add changefile(s) from automation for the following project(s): woocommerce
* Ensure the woocommerce_admin_customize_store_completed option is marked as complete whenever the user updates their styles in the editor
* Fix lint errors
---------
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Consolidate and move password protected product test
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Move test to non side effect and remove remaining empty test file
---------
Co-authored-by: github-actions <github-actions@github.com>
* Removed return statements from conditions in `WC_Admin_Marketplace_Promotions::fetch_marketplace_promotions`. With these, if the marketplace gets a good response from the API and then later a bad or empty response, it fails to update the promotions transient, meaning that notices and menu bubbles may persist in stores after we've removed them from the API. We check the dates of promotions, so they should disappear when they expire, but it's a good idea to clear this data if the API returns an empty response or if there's an error fetching it.
* Changelog.
* Add changefile(s) from automation for the following project(s): woocommerce
* Removed duplicate changelog file.
* Add changefile(s) from automation for the following project(s): woocommerce
* Removed duplicate changelog file.
---------
Co-authored-by: github-actions <github-actions@github.com>
* New filter to set a custom precision value for the WC calculations
* Add changelog and docblock.
* Add since tag.
* Add since tag.
* Add prefix + correct version.
* Better filter name
---------
Co-authored-by: Yordan Soares <contacto@yordansoar.es>
* CYS - Core: fix: not mark step as completed when the user switches theme
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add gap between quantity field and add to cart button when stacked
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add specificity to quantity
---------
Co-authored-by: github-actions <github-actions@github.com>
Add an index to the zone_id column of woocommerce_shipping_zone_locations.
Remove the separate index on location_id. Shipping zone locations are read by zone_id when a ShippingZone is read from the database. The zone_id is also used in join statements with the shipping zones table. So an index would improve performance there. The separate KEY for the location_id column is not needed as the primary key for the table already creates an index automatically.
* Fix the color of the toggle control in the assembler
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove the hook for updating update_plugins transient with data fetched from Woo.com
This prevents the WP core from updating Woo.com plugins.
* Remove the hook for updating update_themes transient with data fetched from Woo.com
This prevents the WP core from updating Woo.com themes.
* Remove the class hand hooks used for updating the API response of WP.org with update URI's from Woo.com.
* Add change log file.
* Add update_plugins and themes transient update hooks back while removing the package from Woo.com extensions.
When a Woo hosted plugin has an update, this will allow showing the update message but block the ability to update.
* Adding a hook to modify the plugin update notification on plugins.php.
When a Woo.com hosted plugin has an update available it will show a message to install Woo Marketplace plugin, if it's not installed.
* Utility class for Woo Marketplace plugin.
* Check wether the Woo marketplace plugin is already installed before modifying update notice.
* Update docblocks.
* Add status end point for wccom-site API.
* Check the existence of marketplace plugin only after the plugins are loaded.
* Add WP.org plugin api response updater back to core.
* Function to identify if the market-place plugin is installed.
* Update status API response with installation status.
* Update the status variable push to store admin frontend with information about market-place plugin.
* Styles for woo-connect-plugin component.
* Component for displaying the message to install Woo Connect plugin based on the installation status.
* Add Woo Connect plugin notice to my-subscriptions page.
* Add Woo connect plugin message to discover page.
* Add Woo Connect install/download urls to constants file.
* Add a modal for asking the user to install Woo Connect plugin.
* Update strings with constants.
* Show the Woo Connect modal when user updating plugins without Woo Connect installed.
* Show Woo Connect install notifications only when the site is connected.
* Update plugin management page messaging.
* Update notification on connect screen.
* Update notifications on plugin management page.
* Remove additional spacing in Plugin Install Notice and spacing in the discover page results and the notice.
* Use notice component instead of Card.
* Minor improvements to readability.
* Add translation support for messages displayed on plugins.php.
* Update woo connect plugin installation URL (#45127)
* Ad functions for generating WooConnect plugin install URLs.
* Make WooConnect install url to available to marketplace components.
* Make WooConnect install url to available to marketplace components.
* Link install buttons to install URL with access_token and secret.
* Update Woo Update Manager download url.
* Show admin notice to install Woo Update Manager on plugins.php.
* Adding the view for admin notice for installing woo_update_manager.
* Show woo update manager installation notice on WC admin pages and make the notice dissmisable.
* Update the install url for Woo Update Manager by adding the product ID and introduce a filter to override the product ID.
* Change the plugin name to Woo Update Manager.
* Change the download url for woo update manager
* Fix the margin below the Woo Update plugin install notice.
* Rename Woo Connect to Woo Update Manager.
* Rename wccom-site status endpoint response variables based on plugin name changes.
* Update the plugin main file name for Woo Update Manager.
* Updating the download URL.
* Updating css class names and file names from `woo-connect-plugin` to `woo-update-manager`.
* Change wooConnect variables to wooUpdateManager.
* Rename WC_Helper_Plugin to WC_Woo_Update_Manager_Plugin and remove references to market place plugin.
* Extract and reuse the logic for creating the signature.
* Use WC built-in method to check if the current page is a WC page.
* Add source parameter for installer.
* Update text copies based on flows for in-app Woo Update Manager install message.
* Update admin notice based on the flows.
* Update connect store message.
* Update the text based on the latest flow and show a different message when WUM is installed but not activated.
* Use html text for install notice message.
* Implement the bubble showing number of updates available on WooCommerce -> Extensions menu. Add one to available Woo.com updates if WUM is not installed or activated.
* Update install url to new structure.
* Update download url for WUM.
* Add a method to get the id of the WUM.
* Remove WUM from available to install list of extensions on my-subscriptions tab.
* Remove the hard coded ID of the Woo Update Manager and use the slug to get the ID of the plugin based on update-check response.
* Fixing the notice generated due to empty body.
* Update CTA and image for the not connected screen.
* Increasing the left margin of the install notice to match admin notices.
* Add close button to modal with message to activate WUM.
* Add install/activate notice to Browse and Themes tabs.
* Add the view for showing admin notice for activating the plugin.
* Update plugin name on install admin notice.
* Show install or activate admin notice based on the context.
* Update comment
* Make the linked text shorter in plugin update message.
* Generate a signed auto-install URL for woo hosted plugins without helper API (#45313)
* Generate a signed auto-install URL for woo hosted plugins without helper API
* Use product slug in auto-install URL instead of product id.
* Update activate Woo Update Manager modal buttons.
* Change install url from Woo Update Manager ID to slug.
* Allow defining the menu title and page title separately for when adding menus and sub menus in WooCommerce Admin.
* Set the page title separately for WooCommerce Extensions menu.
* Fix the update count issue.
* Update the download URL for Woo Update Manager.
* Update the download link for WUM in admin notices.
* Show WUM admin notices on WC Admin pages only when the site is connected.
* Remove additional slash in plugin admin url.
* Add wum-installed parameter to the connect URL (#45702)
* Add wum-installed parameter to the connect URL
* Send status of Woo Update Manager installation on connection init.
* Revert "Add wum-installed parameter to the connect URL"
This reverts commit 4c55038b03.
---------
Co-authored-by: Denis Dvali <denis.dvali@automattic.com>
* Fix lint errors.
* Fix lint error.
* Fix lint errors.
* Fix js lint issues.
* Update Woo Update manager admin notice.
---------
Co-authored-by: Muhammad Anas <anastts.pk@gmail.com>
Co-authored-by: Denis Dvali <denis.dvali@automattic.com>
* Use WC built-in ActionScheduler
* Calling `WC_Admin_Marketplace_Promotions::init` immediately from `WC_Admin` constructor. `WC_Admin` is only instantiated in an admin request. If we init marketplace promotions from `woocommerce_init`, we'll be too late to add the callback for the scheduled action that fetches promotion data.
* Changed transient life to 12 hours to match frequency of ActionScheduler action.
* Changelog.
* Updated `fetch_marketplace_promotions` to replace the transient every time it runs. This allows more frequent changes.
* Added filter to allow promotions to be suppressed.
* Fix indentation
* More indentation fix
* Clearing scheduled action if `woocommerce_marketplace_suppress_promotions` filter returns "true".
* Running `clear_scheduled_event` on `init`.
* WP_CLI check
* We were including and instantiating `WC_Admin_Marketplace_Promotions` from the `WC_Admin` constructor. But `WC_Admin` is only instantiated during `is_admin` requests. We also need to respond to cron requests. So we're now including the class from `class-woocommerce.php` if the context is admin or cron, and instantiating it on `init`. This fixes the error in Scheduled Action `action failed via WP Cron: Scheduled action for woocommerce_marketplace_fetch_promotions will not be executed as no callbacks are registered.`
* Linter errors.
* Enhance append_bubble() method
* introduce SCHEDULED_ACTION_INTERVAL
* Make linter happier
* Linter errors.
---------
Co-authored-by: Remi Corson <1649788+corsonr@users.noreply.github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* CYS: Fix Header/Footer template parts disappear
* Add changefile(s) from automation for the following project(s): woocommerce
* show pattern list only when the site editor is ready
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update Action Scheduler to 3.7.3
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rating filter: fix misaligned count
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix broken CSS classes and update JS unit snapshots
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* removes the star font
The WooCommerce font can hold many other icons there isn't the reason to load a font for a single icon
* updates custom templates stylesheets
* adds woff2 font format to themes customized stylesheets
* fix the star font size diff
* removes WooCommerce.eot and SVG file that are no longer needed and updates the template style in order to import from font.scss
* Optimized font import
Unifies the import of fonts by extending it to the twenty-twenty-three theme
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Svg font minification (WooCommerce.svg)
* Add changefile(s) from automation for the following project(s): woocommerce
* "star" font phasing out
The font family 'star' was replaced in all files. However, it continues to remain physically in the repo but not in the style files
* Removes the `.eot` font file since nowdays it's completely useless
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show modal when the task is completed
* Go to the assembler when the theme was already customized
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add is_read property to note data
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unnecessary type casting
* Fix boolean typecasting in DataStore and Note classes
* Restoring the original `isset( $note_row->is_read )` condition. I believe it's there for notes without this property.
* WC_Admin_Tests_Notes_Data_Store::test_read to account for return type of `get_is_snoozable`.
---------
Co-authored-by: Simran <simran.kaur@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
The plugin is installed and activated if it's not installed already
and either the Legacy REST API is installed in the site
or there's at least one webhook that uses the Legacy REST API
code for the payload (disabled webhooks also count).
Also the WC_Admin_Notices::remove_notices method is added.
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Add the ability to extend/modify the steps in the product tour
* Remove unused import
* Add changefile(s) from automation for the following project(s): woocommerce
* Add data validation
* Correct import order
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix margins and make the 3rd question not required
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Conditionally show status on homescreen
* get lys link in status
* refactor launch-store folders
* remove unused function
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Disable the feature flag from the CYS.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix unrelated failing e2e test for the 'Get paid' page
* Revert "Fix unrelated failing e2e test for the 'Get paid' page"
This reverts commit d388fce212.
* Fix potential flaky test
* Revert "Fix potential flaky test"
This reverts commit 77fa2813f2.
* Temporarily remove the Can visit the WooPayments Connect page instead of setup task for supported countries test
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: elazzabi <ahmed.el.azzabi@automattic.com>
* Pass 'Sponsored' detail down to product cards from API
* Style a "Sponsored" label
* Stripe on top of sponsored products
* Add 'blob' next to sponsored listings
* Fix indentation bug
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce-admin/client/marketplace/components/product-card/product-card.tsx
Co-authored-by: Remi Corson <remicorson@gmail.com>
* Update plugins/woocommerce-admin/client/marketplace/components/product-card/product-card.tsx
Co-authored-by: Remi Corson <remicorson@gmail.com>
* Update plugins/woocommerce-admin/client/marketplace/components/product-card/product-card.tsx
Co-authored-by: Remi Corson <remicorson@gmail.com>
* Apply suggestions from code review
Co-authored-by: Remi Corson <remicorson@gmail.com>
* Add missing close parenthesis following linter changes
* Make linter happier about hex colors (still needs variablising)
* Fix margins around vendor name
* Fixed height of product stripe
* Linting
* Moved color to variable and calculated alpha using Sass functions
* Update plugins/woocommerce-admin/client/marketplace/components/product-card/product-card.scss
* Update plugins/woocommerce-admin/client/marketplace/stylesheets/_variables.scss
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Remi Corson <remicorson@gmail.com>
* Ensure the 'Didn’t find a theme you like' text is displayed exclusively at the bottom of the themes card
* Limit the display of the CYS design banner to the Themes screen.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add the sample badge to dummy products on the main products list.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Deprecate DataSourcePoller
* Deprecate and move all rule processors and transformers
* Lint
* More deprecation
* Remove extra line
* Update deprecated class to not produce too many messages by limiting to unique messages
* Changelog
* Update all dependency uses, move TransformerService and TransformerInterface to Transformers package
* More dependency update
* Changelog
* Fix wrong file reference
* Lint markdown
* Lint markdown
* Add unsaved file
* Delete unused file and more lint
* More lint
* Ugh ignore faulty lint rule
* Rename variables for lint
* Update the woo.com theme link to include the back url
* Encode url to avoid losing the path param
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Prepare test cases
* Shorten out the test description
* Add first test in a post with dummy expect
* Verify all content is displayed
* Add the test in Product Archive and Home Page
* Add changelog
* Add tag to Beanie product
* Switch to Beanie which is on sale to verify on sale badge
* Add comments to explain the expects
* Adjust the expected content
* Switch to lower case in expect
* Switch from woocommerce/product-summary to core/post-excerpt
* Adjust products.sh
* Improve method waiting for products to show so it;'s deterministic
* Refresh locators in template
* Remove unnecessary check
* Eslint disable: expects are extracted to function so disable eslint compaining there's no expect
* Adjust other test after amending products setup
* Change the verify happening in a wrong place
* Tests adjustments
* Revert Blog Home template before performing a test
* Fix other tests
* Change checkbox label to be inline-flex to limit the width to the content
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix changelog entry
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create and register the woocommerce/product-select-field block
* Replace the tax class radio group block by woocommerce/product-select-field block
* Hide tax fields when taxes are disabled
* Hide tax fields when taxes are disabled in product variations
* Add changelog files
* Fix linter errors
* Return formatted cost and sales price for MarketingCampaigns.
* Display formatted cost and sales number in Campaigns card.
* Use price formatting.
* Format decimal places based on currency.
* Add changelog.
* Fix type issue is useCampaigns.test.ts.
* Use wp_strip_all_tags to respect currency symbol positioning settings.
Without wp_strip_all_tags, the result contains <bdi> element, and it causes browser to show the currency symbol in unexpected unwanted position.
* Fix PHP linting issue.
* Fix tests in useCampaigns.test.ts.
* Use html_entity_decode to remove dangerouslySetInnerHTML usage.
* Remove unneeded code formatting in Campaigns.tsx.
* Add explanation comment for `get_formatted_price`.
* Fix PHP lint error.
* Use map instead of filter to get price format.
* Add code comment.
* Get currency info based on user locale or default locale.
* Use locales in locale-info.php instead of currency-info.php.
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Code formatting and fix code comment.
* Fix lint errors.
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* CYS - Core: install font when user clicks opt-in
* remove debugger
* CYS - Core: fix wp-admin page visible when click on start designing
* Add changefile(s) from automation for the following project(s): woocommerce
* use sendEvent instead of redirect
* Add changefile(s) from automation for the following project(s): woocommerce
* not show wp-admin after the click on the dialog button
* use sendEventToIntroMachine
* fix font installation
* fix eslint error
* fix install font phase when the iframe is not loaded
* remove not necessary async
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add basic wp dropdown component
* use getAdminLink
* Add styling based on state
* Add changefile(s) from automation for the following project(s): woocommerce
* update store page only text
* Add better 'for now' comment
* translate links
* remove private repo link from comment
* lint
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use theme color to style the theme badge component
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensure field is on schema before sanitizing/validating against it
* Sanitize the key as a text field if we don't know what it is
* Add changelog
* Revert "Sanitize the key as a text field if we don't know what it is"
This reverts commit 9f5071051c.
* Revert "Ensure field is on schema before sanitizing/validating against it"
This reverts commit 109fbe766c.
* Omit unknown items in sanization
* add test doc block
---------
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
* Add dummy Force Page Reload control to Inspector Advanced Control
* Add enhancedPagination attribute that decides if client side navigation is enabled
* Consume the enhancedPagination attribute
* Force client side navigation when incompatible blocks detected
* Dummy util to detect incompatible blocks
* Detect incompatible blocks in the Editor
* Switch to WordPress Interactivity package in Product Collection
* Add initial implementation of the incompatible blocks detection in frontend
* Remove leftover
* Revert to using internal version of interactivity API
* There's no Interactivity store config available in the internal Interactivity implementation so remove it
* Disable client side navigation if the incompatible block is detected
* Add default attribute value
* Switch from enmhancedPagination attribute to forcePageReload
* Fixed some misclicked line order change
* Switch from enhancedPagination to forcePageReload in PHP code
* Apply the correct filter
* Fix the incorrect condition to detect incompatible block
* Initial implementation of orange dot to bring attention
* Cleanup
* Remove the orange dot indicator
* Refactor checking for unsupported blocks
* Add changelog
* Fix PHP lint errors
* Bring back empty line at the end of pnpm-lock
* Bring pnpm-lock.yaml file to original state
* Fix incorrect function call
* Add visibility description to function
* Switch private method to public
* More linted fixes
Fires an action after a customer has logged in, and their guest session id has been deleted with its data migrated to a customer id. This hook gives extensions the chance to connect the old session id to the customer id, if the key is being used externally.
Fixes#44852
Updates the markup used to generate the Refunds page so that it is valid, semantic HTML, which in turn fixes an alignment issue.
Fixes#45213
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
Adds a new filter to the legacy Active Product Filters widget that allows the attribute names to be modified.
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Disable block interactions within the editor
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Pass isPreview prop to inner blocks of the Product Filter block
* Add logic to render preview block when in Preview mode
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - fix warning
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* add snapshot tracking
* add changelog
* address feedback
* Add changefile(s) from automation for the following project(s): woocommerce
* update changelog
* Add changefile(s) from automation for the following project(s): woocommerce
* remove the extra changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add get_action_url for Payments task
* Check if plugin active before redirecting to connect page
* Add changelog
* Fix linting issues
* Point payments task to welcome page when WCPay incentive active
* Point WooPayments installed task to Connect page
* Rename WooPayments to payments
* Add from query arg
* Adjust payments task URL logic to account for suggestions logic
* Fix for partially onboarded accounts
* Replace Get paid with WooPayments
* Add new test for unsupported countries
* Add missing api definition
* Add missing baseURL
* Maybe change order of tests to fix failing test
* Revert changes to package.json (error in push)
---------
Co-authored-by: Vlad Olaru <vlad@pixelgrade.com>
Co-authored-by: oaratovskyi <oleksandr.aratovskyi@automattic.com>
* Update the transitional page.
* Update icons
* Remove unnecessary div class
* Update the styles for the transitional page.
* remove the editor param
* conditionally display the survey button
* Additional layout changes
* Streamline the classes for the icons
* Import brush and tag from wordpress/icons
* delete the custom icons from Woo as they already exist on wordpress/icons and can be imported from there.
* Update styles for adding support to mobile view.
* Update the lesson-plan icon.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update e2e tests to account for the changes made to the transitional page.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Install and activate the TT4 before any other step on the loader
* Show the loader while activating the theme
* Try running steps together in parallel
* Try to run install and global styles in the same function
* Handle when the active theme returns null
* Add changefile(s) from automation for the following project(s): woocommerce
* Add retries and types to fix lint errors
* Fix lint errors
* Fix more lint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: fix wp-admin page visible when click on start designing
* Add changefile(s) from automation for the following project(s): woocommerce
* not show wp-admin after the click on the dialog button
---------
Co-authored-by: github-actions <github-actions@github.com>
Since the product collection block uses the interactivity router,
it reloads the page in the background and replaces sections
with a `data-wc-navigation-id` set. This adds the attribute
to the count block so that it can also live reload regardless
of where it is in the tree.
* Disable checkout menu when checkout block is default
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add additional-checkout-fields-test-helper wp-env plugin
* Ensure Checkout page waits for email to be visible before filling
* Handle additional fields in checkout page utils
* Add test for filling additional checkout fields
* Add additional check for gov-id validation
* Close context used for plugin-checking
* Update types for additional fields to be key/value objects
* Check billing gov-id is different to shipping one
* Move additional fields plugin to inline with checkout tests
* Use additional fields plugin from local dir
* Await email input to check Checkout block is loaded
* Add test to verify error message shows when leaving a field blank
* Update comment
* Add test for checking/unchecking checkboxes
* Update check in additional field test plugin
* Change fields multiple times in one test
* Add server-side validation tests
* Get exact matches for checkout form fields
* Remove unnecessarily translated strings
* update hook in test plugin to compare to confirmation gov id
* Fill in gov ID confirmation field
* Register a field of each type in each location
* Don't validate field unless both are filled
* Fill additional fields and check their values
* Fill additional fields
* Check select values in order confirmation
* Change the values of all field types multiple times
* Make checkout wait until not calculating before submitting
* Update tests to use all additional field types
* Blur after editing select box
* Add customer area checks
* Check shipping isn't calculating before submitting
* Add merchant-side tests for additional checkout fields
* Ensure customer data is done updating before submitting
* use waitForFunction to check for updating shipping
* Add changelog
* Ensure fields are blurred before pressing button
* Update validation error check
* Add test for logged out shopper
* make specific function to wait for checkout to be finished updating
* Add test to ensure fields are saved across orders
* Add sanitize and validate callbacks to gov id fields
* Make purchase type select field required
* Add sanitization test
* Use experimental function in test plugin
* Add standalone sanitization filter test
* Update testing plugin to use new and renamed filters
* Fix typo
* Move empty value test to logged out shopper block and check empty val
* Update tests to include tests for new validation/sanitization filters
* Add verifyAdditionalFieldsDetails function to checkout page
* Use new verifyAdditionalFieldsDetails function to improve readability
* Update second test to use new function to improve readability
* Update third test to improve readability
* Update fourth function to improve readability
* Update fourth test to improve readability
* Update guest shopper test to be more readable
* Update helper function to only return value not assert
* Remove check causing test to fail in CI
* Make check for guest shopper same as logged in
* Move guest shopper tests to their own file
* Ensure unchecking checkbox works OK
* Adding accessible markup to sale price. See #31099
This PR adds accessible markup to the sale price.
A user who only uses screen reader software can now hear and understand the original price as well as the current price.
This is important for accessibility.
Full issue: https://github.com/woocommerce/woocommerce/issues/31099
* Improving sale price string formatting & localization #31099
This PR merges in feedback from the WooCommerce team.
* Improving string translation & output. Giving RTL languages more customization with the price in the translatable string.
* Formatting regular price & sale price at the top and then inserting into the HTML below. This prevents some sloppy logic where you might print out a blank del or ins tag.
* Swapping esc_html & sprintf #31099
Reversed the esc_html() and sprintf(). This is intentional because if translations accidentally include some HTML, that could break things.
Also, stripping HTML tags in $formatted_regular_price so that the end result in the screen-reader-text span is just plain text.
* Adjusting white space #31099
Mostly removing white space for the lint checker
* Adding translator comments #31099
Adding translator comments for lint
* Add changelog
* Fix some PHPCS violations
* Fix unit tests
* Adjust E2E test
---------
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* `wc hpos diff` command enhancements
* Add support for partial backfills to LegacyDataHandler
* Add unit tests
* Add support for partial backfills to `wp wc hpos backfill` CLI tool
* Add changelog
* Augment update_order_from_object() with args parameter
* Implement update_order_from_object() for HPOS
* Simplify partial backfill logic in LegacyDataHandler
* Move prop name validation to legacy data handler
* Apply changes to order before passing to backfill functions
* Simplify update_order_from_object() in HPOS datastore
* Simplify order update from object across datastores
* Undo change
* Minor fix for CPT version (which only takes order differences into account)
* Improve readability around ‘woocommerce_orders_table_datastore_should_save_after_meta_change’ filter
* Commit docblock suggestion
* PHPCS fixes
* Enhance unit test
* Add remove custom field for the new product editor
* Add changelog file
* Show add button when the custom fields are empty
* Ensures to always convert the metas into a string array since it can be anything
* Add changelog file
* Switch from "invoice" to "order details" in our emails.
* Revise default order details email subject text.
* Revise default order details header text.
* Bring E2E check up-to-date with latest text revision.
* Update API tests to match order detail email changes.
* Fix typo
---------
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* Bump woocommerce-sniffs to 1.0.0 for WPCS 3.0 support
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add json config files to ci changes config
* Add admin config to Woo plugin ci config
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show the "Design your own" banner when editing a theme which is not TT4
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint errors
* Pass the active theme to the context
* Fix lint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add totalValue filter
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Remove nowrap to prevent text overflow
* Start docs for ‘totalValue’ filter
* Fix *.md lint issues
* Ignore .md lint errors for now
* Update code example and add screenshots
* Fix failing JS unit tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix - #33503
Added ISO code along with the string. So it can be searched by using country code.
* Fixing linting issues
Added space with single quote to fix linting issue.
* fix linting issues
* add changelog file
* use emdash for separating data
* update test to new format
* include ISO code in settings test fixture
---------
Co-authored-by: daniyal.ahmad1992@gmail.com <daniyal.ahmad1992@gmail.com>
* Update html-product-attribute-inner.php
Add a new filter `woocommerce_admin_terms_metabox_datalimit` to change the value of data-limit. See #37548 for more context.
* Update html-product-attribute-inner.php
* Creating a changelog file again
* update @since tag
* tweak changelog file wording
---------
Co-authored-by: Saif H. Hassan <67080558+Babylon1999@users.noreply.github.com>
* Introduce the new 'Design your own' button in the themes screen.
* unify the SCSS margins
* Add double quotes for woocommerce-marketplace__sub-header
* Add the CYS banner to the marketplace.
* Ensure each child in a list should have a unique 'key' prop
* Update the NoAIBanner component to direct users to the CYS flow.
* Add the customizeStoreDesignUrl const
* Ditch navigateOrParent
* Add the 'Browse the WordPress.org theme directory to discover more' link.
* Ensure the warning Modal is displayed whenever the user clicks on the 'Design your own' button and their current active theme is not TT4
* Remove the unnecessary fragment
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Set field IDs
* Validate post code only when it is actually required
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unused import
* Update test snapshot
* Update test snapshot
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update mercado copy
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create woocommerce/product-custom-fields block
* Register woocommerce/product-custom-fields block
* Add product-custom-fields block to the simple product template
* Create useCustomFields hook
* Create empty state
* Create CustomFields component
* Add custom fields table
* Add custom field remove button
* Hide the custom fields table base on the toggle value
* Remove non list features
* Add changelog files
* Fix linter errors
* Fix empty state styles
* Fix php linter error
* Remove context from the woocommerce/product-custom-fields-toggle-field block definition since it is not used
* Change url for the Read more about custom fields
* Register metaboxhidden_product user meta as a user rest field
* Create useMetaboxHiddenProduct to manage the user metaboxhidden_product meta field
* Create woocommerce/product-custom-fields-toggle-field block
* Register woocommerce/product-custom-fields-toggle-field block
* Create product-custom-fields feature flag
* Hide custom fields behind the product-custom-fields feature flag
* Add changelog files
* Get default postcustom user meta value when the metaboxhidden_product does not exist yet in the user object
* Fix the CYS Opt-in modal buttons and checkbox styles
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add product archive header template and re-hook
Moves the product taxonomy archive header into its own template file,
creates a related output function, and then re-hooks the new template
back into the archive-product.php file in the same place, via the
'woocommerce_before_main_content' hook, priority 40.
This is so that this template part can be removed/unhooked via the
'remove_action' function, which is a cleaner approach than template
overrides or additional style changes.
Resolves: #33672
* add product archive header template changelog
* bump template versions
* bump template versions correctly
* add a new hook in the archive-product.php template for the header template
* fix: make the dropdown hidden by default
* fix: price clause
* fix: variable name in attribute clause generator
* chore: changelog
* fix: flashing issue for dropdown has selected items
* Prevent invalid price range selection in Product Filter Price block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* changed filter by attribute filter options order
In filter by attribute, order of the filter conditions "ALL" and "ANY" reversed as requested.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add the PluginInstaller class
* Add changelog file
* Fix linting issues
* Changes in the installer:
- Allow installS from the WordPress.org directory only
- If the installer name is WooCommerce, throw if the caller is not
in 'includes' or 'src' in WooCommerce core
- Remove two unnecessary includes
- Check if WP plugin upgrader classes already exist before
executing the includes for them
- Get the installed plugin info using the plugin_info method
of the plugin upgrader class
* Remove the get_installed_plugin_info method as it's no longer used
* Log plugin install only on sites with WooCommerce active
* Show the default header and footers as the first option
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: improve font installation with the async job
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add LYS task default values
* Add changelog
* Add unit tests
* Init LaunchYourStore task only when feature flag is enabled
* Add action to woocommerce class
* Remove WCAdminHelper use
* Add lys options to permission list
* Set launch-status option
* Fix woocommerce_store_pages_only
* Use WC_Install::is_new_install() instead
* Use woocommerce_newly_installed action
* Check if feature flag is enabled
* Use singleton WooCommerce object in tests
---------
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Set initial vlaue of Created filter for New Arrivals collection
* Add changelog
* Remove a check for products in tests as they may not really be displayed
* Adjust the New Arrivals test
* Adjust the tests logic after the change
* Bring back previous formatting
* Bring back function closure removed by mistake
* Unskip Mini Cart i18n test
* Install language packs before each i18n-related test suite
* Delete translations.sh
* Add changelog
* Replace deprecated WP-CLI command
* Remove obsolete WP-CLI command
* Support div setting type
* Add wc_settings_general_site_visibility_slotfill slotfill
* Add site visibility setting section
* Add placeholder
* Rename div to slotfill_placeholder
* Add comment
* Fix component name
* Add changefile(s) from automation for the following project(s): woocommerce
* Use unique id
* Rename option names
* Put LYS settings behind launch-your-store flag
* Move Site Visibility header to component
* Lint fixes
* Lint fixes
* Use woocommerce-settings scope
* lint fix
---------
Co-authored-by: github-actions <github-actions@github.com>
This PR short-circuits wp_delete_post() so that when HPOS is authoritative, any attempts to delete the backup post are not successful (which could also end up deleting the HPOS order). This only applies to non placeholder posts, as placeholder posts won't trigger the cascade of operations that might be problematic here.
Fixes#42746
* improve logic to ensure that the font is active
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Set default width after logo update
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add subquery for simple products
* Update query to make use of product lookup instead
* Add changelog
* Revert change
* Update PHP tests and fix lint errors
* Move subquery out to its own variable to make it more readable
Previously there was one single locally cached instance of the notice names array that wasn't aware of switch_to_blog executions. Now in multisite setups one separate array is kept for each existing blog id.
* CYS: fix footer large pattern - use only one navigation block
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix styling issue in the Editor when Inline input fields is enabled
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix styling issue on the Frontend when Inline input fields is enabled
* Fix css lint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add block preview to filter blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add missing `name` attribute to min and max input fields
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Revert "[e2e tests blocks] Configure the number of shards for each matrix project (#45212)"
This reverts commit 72789656cf.
* trigger CI
* run E2E tests
* restore ci.yml file
* trigger E2E tests
* disable E2E tests about mini cart translations
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix the setupAndFetchQueryContextURL utility
* add comment
* Remove obsolete test
* Blocks E2E: Update timeout values (#45353)
Set timeout values same as core
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
With the availability of other unique characteristics
for identifying collection blocks, it is no longer necessary
to keep this attribute. Since it has not been used it is safe
to remove it without a deprecation cycle.
* Check also the number of inner blocks before checking the attributes
* Add classes to assembler footer patterns
* Add classes to assembler header patterns
* Add changefile(s) from automation for the following project(s): woocommerce
* Mark the current homepage template as selected
* Remove unused import
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix styling for select in Site Editor
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensure the user is directed to the in app marketplace whenever clicking on 'Browse all themes' on core.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensure the active theme switch modal is displayed only if the theme is different than TT4
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Check if $available_methods is not empty, rather than isset
This encompasses two checks in one, it encompasses isset AND count( $available_methods ) > 0
* Bump template version
* Add changelog entry
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Prevent fresh_site option from being set to 0 after publishing default pages
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Typo fix
* Add is_site_fresh function
* Update comment
* Add a test for is_fresh_site
* Check fresh_site option first
* Add test for checking fresh_site=1
* Fix lint errors
* Fix lint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix intro CYS logo and site title
* Add changefile(s) from automation for the following project(s): woocommerce
* Improve format
* Fix logo motion
---------
Co-authored-by: github-actions <github-actions@github.com>
* Allow `—re-migrate` to work even when `—verbose` is not set
* Add changelog
* Docblock update
* Indicate that remigration was attempted in errors array
* Update wc-product-functions.php
Determine if a product is on sale based on regular price, which is how its done in the WC_Product class 7122669d44/plugins/woocommerce/includes/abstracts/abstract-wc-product.php (L1633)
* Add changefile(s) from automation for the following project(s): woocommerce
* added missing placeholders
* Update 43011-patch-1
* Add changefile(s) from automation for the following project(s): woocommerce
* Re-trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Minor updates to README
* Add changefile(s) from automation for the following project(s): woocommerce
* Fixed typo
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Link to discussion in custom fields API
This adds the discussion link in custom fields docs.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Ensure is_super_admin REST field contains correct value
Adds a user ID parameter to the is_super_admin() check so that it will
return the value of the specified user rather than the current user.
Fixes#42893
* Add changelog file
* Update workflow to use latest checkout actions
* Update non-HPOS workflow as well
* Update additional actions
* Set a slow test threshold at 30 seconds (15 is default)
* Final action updates
* Slow tests has to be an object
* Pin external actions to commit
* Slow test threshold and max
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Add range rule in Remote Inbox Notification
* Add changefile(s) from automation for the following project(s): woocommerce
* Add range
* Add changefile(s) from automation for the following project(s): packages/php/remote-specs-validation, woocommerce
* Update README.md
* Fix lint errors
* Make sure right-hand is an array with two elemetns -- range
* Update README
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* clear out unneeded github files from block folder
* copy changelog to woocommerce folder
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* CYS: Override the header and footer
* fix unit test
* fix lint error
* Add changefile(s) from automation for the following project(s): woocommerce
* fix opacity
---------
Co-authored-by: github-actions <github-actions@github.com>
This PR brings to HPOS the dropdown of custom fields that is available for regular posts in the WP admin edit screen.
This dropdown lists a selection of non-private meta keys from all other orders allowing easy re-use.
Fixes#44029
The `\WC_Checkout::create_order_line_items` method assigns values to properties of the `WC_Order_Item_Product` class which did not exist.
PHP Deprecated: Creation of dynamic property WC_Order_Item_Product::$legacy_values
PHP Deprecated: Creation of dynamic property WC_Order_Item_Product::$legacy_cart_item_key
Fixes#38857
---------
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
* Update the copy for the terms and conditions on WooCommerce.
* Remove the closing round brackets
* Add changelog for: Update the copy for the terms and conditions on WooCommerce
* Update the snapshot test
* improve label for woo.com tracking setting
* update snapshot
---------
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* CYS - Core: fix font load when user opts out of tracking
* remove comment
* Add changefile(s) from automation for the following project(s): woocommerce
* fix array to pass to FontFamiliesLoader
* fix crash
* fix font pair selected after the setup
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add static method for getting the log directory
* Add filter for customizing the log directory path
* Handle case where constant is already defined
* Do directory creation on the fly instead of during install
* Replace all Core usages of WC_LOG_DIR
* Ensure each site's log handler setting is respected
* Add unit tests
* Fix legacy logger unit tests
* Update docs
* Regenerate docs manifest file (required by GitHub CI)
---------
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* Add missing typography settings for the Site Title block
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unnecessary fontStyle attribute
---------
Co-authored-by: github-actions <github-actions@github.com>
* Prevent accessing product if there's no product yet in ProductStockIndicator block
* Prevent accessing product if there's no product yet in ProductSaleBadge block
* Add changelog
* Fix linter
* Pass additional context to the woocommerce_blocks_hook_compatibility_additional_data hook which is a class name in which it was called
* Add changelog
* Lint fixes
* Remove unnecessary import
* Make top seller query compatible with HPOS
* Add compat `get_count_for_type()` method
* Make dashboard widget compatible with HPOS
* Add changelog
* PHPCS fixes
* Add unit test
* PHPCS — we meet again.
* Remove test/debug comment.
Clearing this up also means linting passes for this file :-)
* Changelog.
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove extra changelog (deconflict with CI changelog tool).
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add the color palettes for the highline theme.
* Add the color palettes for the luminate theme.
* Add the color palettes for the nokul theme.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
- Define custom element for order-attribution
to move DOM manipulations to JS only.
To support multiple checkout & register forms on the same page.
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
* Update path to intro when exiting the assembler
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix styling
* Fix linting error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update webpack config to use file content hash for chunks and generate asset php for styles
* Use StyleAssetPlugin to generate style.asset.php
* Remove unneed ?ver=<version> code
* Use file hash from asset file when SCRIPT_DEBUG is off
- Use file hash to load scripts/styles ?ver=<file hash>
- Add register_style() method to WC_Admin_Assets
* Load payment method promotions in admin_enqueue_scripts
* Add changefile(s) from automation for the following project(s): @woocommerce/product-editor, woocommerce
* Add json2php
* Update doc
* Update pnpm-lock.yaml
* Fix add_print_shipping_label_script
* Add a comment to style-asset-plugin.js
* Change register_style to use WC_ADMIN_DIST_CSS_FOLDER
* Reset the outputNormal object to avoid duplicate files
* Fix type error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Reduce product count calls via transient caching
* Check has_previously_completed first
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add upgrade notice for the fonts feature whenever WP is outdateed or the user did not grant us consent.
* Add styles for the woocommerce-customize-store_sidebar-typography-upgrade-notice class.
* Update the upgrade conditionals.
* Introduce the new modal for the user to opt in to usage tracking.
* Add the CSS for the woocommerce-customize-store__opt-in-usage-tracking-modal
* Implement the sendEvent to OptInDataSharing
* Fix typo.
* Make sure the opt in button is disabled if the opt in checkbox is unchecked.
* Update the styles for the woocommerce-customize-store__opt-in-usage-tracking-modal
* Update the styles to allow changes to the link
* Set Cardo + System Sans-serif as the default fonts if the usage tracking wasn't allowed.
* Set Cardo + System Sans-serif as the default fonts if the Font Library is unavailable.
* Add the Jost + Instrument Sans font pairing.
* Update copy for the upgrade notice to remove mentions to Gutenberg.
* Replace the Link component with the Button component.
* Ensure the woocommerce_allow_tracking option is properly updated whenever the user opts in.
* Add the new Inter + Cardo font pairing.
* Redirect user to the loading screen so all relevant fonts can be installed for them.
* Render the FontPairing component only if the isFontLibraryAvailable. Update the link to download the latest version of the core of WordPress.
* update the fontPairings constant.
* Update styles for buttons and links.
* Add changefile(s) from automation for the following project(s): woocommerce
* Make sure the dispatch for updating the option is async so the page redirect is not triggered before the option is saved to the database.
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
* Introduce the new theme switch warning modal.
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove the unnecessary CheckboxControl
* update the copy & replace 'can' with 'could'
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add with-product-variations.tsx
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add types for ProductVariationItem
* Fix ESLint errors
* Remove JS file
* Replace Product with ProductResponseItem interface
Initially, a Product interface was created to add the required types; however,
it was pointed out that the @woocommerce/types alias already provided an interface
for products (the ProductResponseItem interface).
* Remove returning types definition
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update collections.md
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add show-prepublish-checks-section
# Conflicts:
# packages/js/product-editor/src/components/prepublish-panel/prepublish-panel.tsx
# Conflicts:
# packages/js/product-editor/src/components/prepublish-panel/style.scss
* Add show-prepublish-checks hook
* Refactor prepublish panel button visiblity
# Conflicts:
# packages/js/product-editor/src/components/header/header.tsx
# Conflicts:
# packages/js/product-editor/src/components/header/header.tsx
* Fix footer styles
* Add changelogs
* Add content div
* Fix styles
# Conflicts:
# packages/js/product-editor/src/components/prepublish-panel/style.scss
* Rename recorded action
* Fix styles
* Hide panel after unchecking option
* Improve resolving
* Add new E2E test for merchant transforming classic cart to cart block (#44926)
* Update the monorepo-utils gitignore to only include index.js and its license file. (#44932)
* Fixed `@woocommerce/plugin-woocommerce` Watch (#44930)
By default `nodemon` only watches for JS file changes. This expands the
config so that it watch the file extensions that are actually
produced by builds.
* Update core package.json to remove nightly ci config (#45096)
* Update core package.json to remove nightly ci config
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update blocks build message (#44811)
* Update blocks build message
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/src/Blocks/Domain/Bootstrap.php
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
* Update plugins/woocommerce/src/Blocks/Domain/Bootstrap.php
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
* [CYS on Core] Update the themes list on the intro screen (#44822)
* Update themes list on core. Update the themes data and remove hardcoded reference to free themes.
* Update styles for the Free, Paid and active cards.
* Add the color palletes to TT4 theme.
* Update the references for default and core themes.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update the link to TT4 theme
* Update default value for price.
---------
Co-authored-by: github-actions <github-actions@github.com>
---------
Co-authored-by: Veljko V <veljano@yahoo.com>
Co-authored-by: jonathansadowski <jonathansadowski@users.noreply.github.com>
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Roy Ho <roykho77@gmail.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Fixed errors in file documentation syntax.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update assembler sidebar link when no AI available
* Update the sidebar section title depending on the flow
* Revert unnecessary changes
* Add changefile(s) from automation for the following project(s): woocommerce
* Add missing text domain
* Fix test
* Tweak the footer section copy
* Update the design homepage section description
* Chage footer description only on Core
* Add changefile(s) from automation for the following project(s): woocommerce
* Update copy
* Fix code duplication
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use outline instead of border, so the border width does not affect the card size
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Mark the products task as completed only if products were user created
* Consider the edited products as user products
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update themes list on core. Update the themes data and remove hardcoded reference to free themes.
* Update styles for the Free, Paid and active cards.
* Add the color palletes to TT4 theme.
* Update the references for default and core themes.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update the link to TT4 theme
* Update default value for price.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update core package.json to remove nightly ci config
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
By default `nodemon` only watches for JS file changes. This expands the
config so that it watch the file extensions that are actually
produced by builds.
* Refactor No Reviews Placeholder component from JavaScript to TypeScript
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix file import
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fixing filtering by tabs in `Promotions` component.
Using reference to WC_Admin_Marketplace_Promotions::TRANSIENT_NAME when outputting JS data for promotions, instead of transient string.
Better initialisation of wc global object in the inline script.
* Changelog.
* Using global var for marketplace.
* More tentative reference to global object.
* icon TS error
* Updates example plugin for Activity Notes to include namespacing of `Automattic\WooCommerce\Admin\Notes\Note` and `Automattic\WooCommerce\Admin\Notes\Notes`. Without this, the example doesn't work in `wp-content/plugins`.
* Added changelog.
* Moves calls to `recordMarketplaceView` and `recordLegacyView` to the `finally` of the `useEffect` in the Content component. Calling these functions at the top of the hook is recording a view for the default screen and then a view for the My Subscriptions screen when you go directly to My Subscriptions.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix incorrect link in docs
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Revert "Restore nonce and store notices after hydrating data from controllers. (#44790)"
This reverts commit 2535dd766e.
* Revert "Build path info directly instead of loading REST API. (#44080)"
This reverts commit 4daa3f31f1.
* Add changelog.
* Update assembler sidebar link when no AI available
* Update the sidebar section title depending on the flow
* Revert unnecessary changes
* Add changefile(s) from automation for the following project(s): woocommerce
* Add missing text domain
* Fix test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update footer large twitter icons to X
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
The code was mistakenly assuming that any controller class name not
starting with WC_REST_ was handled by the container, but other
plugins may register their own controller classes that use
a different naming convention.
* Fix typos.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
- Expose public method to render OA input fields
- Render OA inputs on `woocommerce_checkout_after_customer_details`
in case the checkout form does not contain `woocommerce_checkout_shipping`, `woocommerce_after_order_notes`.
Addresses part of #44159
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
* Update shipping method btn text on create
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Update the (REST API v1) orders controller to use the currently supported means of accessing coupon information.
This avoids the generation of deprecation notices, which are problematic for some users who cannot yet update to API v2 or higher.
Fixes#39006
* Added `WC_Admin_Marketplace_Promotions`, with logic to get promotions from https://woocommerce.com/wp-json/wccom-extensions/3.0/promotions and display them
- Calling `init_marketplace_promotions` on `woocommerce_init`. If we're on the WooCommerce Home or Extensions pages, this calls `fetch_marketplace_promotions` to get promotion data from the transient or else the API.
- If we're on any admin page, calls `show_bubble_promotions` to render menu item bubbles, if there are any.
- Changed method `WC_Admin_Addons::fetch_with_locale` to `WC_Admin_Addons::fetch` and added `$options` parameter, so we can fetch without passing locale. We want to keep requests for promotions as uniform as possible for better caching.
* Fetching promotions on all pages in the WooCommerce admin menu.
* Changed WC_Admin_Marketplace_Promotions to fetch promotions in a scheduled action.
* Added extra condition to check if `$auth['access_token']` is set.
* Introduce Notice component
* minor alignment fix
* Fix MD title increment
* Fix readme lint
* add changelog entry
* fix CSS lints
* Small tweaks.
Regularising the spelling of isDismissible.
Using sanitizeHTML to sanitize the notice description.
Making the variant classes like &-success to make them a bit shorter.
Adjusting wording of README to convey that this component is designed for the marketplace, though it can be used elsewhere.
Tweaking whitespace in one place in the TSX to please the linter.
* Update plugins/woocommerce-admin/client/marketplace/components/notice/notice.tsx
Co-authored-by: Michal Iwanow <4765119+mcliwanow@users.noreply.github.com>
* address feedback
* Changed notice classnames to use `__{$variant}` pattern as well. Restored 40px bottom margin to notices on viewports 600px and above. Added height 24px on icons to ensure they're nicely vertically centred.
---------
Co-authored-by: Remi Corson <1649788+corsonr@users.noreply.github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: Michal Iwanow <4765119+mcliwanow@users.noreply.github.com>
* Convert Reviews Editor code to TypeScript
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* add imageSizing attribute to the product catalog template
* add attribute for the product search results template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* improve logic to find active fonts
* Add changefile(s) from automation for the following project(s): woocommerce
* Update changelog
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
* Open templates from list instead of loading the URL in block templates e2e tests
* Typo
* Clean up
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Make sure correct template is loaded
* Create a TemplateType type to avoid having to define it in several places
---------
Co-authored-by: github-actions <github-actions@github.com>
* Refactor store usage
* Prepare function resolving inherit property for additional check
* Add logic to disable sync with query if there's already one Product Collection on archive that does that
* Add changelog
* Cover the post editor case
* Add E2E test for that and small refactor in tests
* Remove duplicated import
* Fix lint problems
* Fix typo in test description
Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
* Replace confusin abbreviation with other description
* Update the logic to be more robust and covering also the case where Product Collection blocks are nested
* Add issue reference to the comment
* Add eslint disable before ts-ignore
---------
Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
* Add phpunit-watcher to automatically rerun PHPUnit tests when source code changes
* Update unit tests docs
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add animation for client-side pagination
This includes:
- Addition of animation state management in the frontend file to control the visual transition between pagination states.
- Introduction of new SCSS rules for the start and finish animations, ensuring a seamless and visually appealing pagination experience.
- Modification of the PHP logic to inject necessary HTML for the animation to be applied.
These updates aim to provide a more engaging and responsive interface for users navigating through product collection.
* Enhance accessibility for product collection navigation
This commit introduces several improvements to enhance accessibility and user experience. Specifically, it adds new context properties to manage accessibility messages during the navigation process, including messages for loading and when a page has loaded. These changes ensure that screen reader users receive appropriate feedback during navigation.
Changes made:
- Added `accessibilityMessage`, `accessibilityLoadingMessage`, and `accessibilityLoadedMessage` properties to the `ProductCollectionStoreContext`. These properties store messages to be announced by screen readers during different stages of page navigation.
- Implemented logic in the product collection store to update the `accessibilityMessage` during the start of navigation (showing a loading message) and upon completion (showing a loaded message).
- Utilized a technique to ensure that consecutive identical messages are still announced by screen readers, by appending a no-break space to the message if it is the same as the previous one. This follows a pattern similar to the `@wordpress/a11y` package.
- In `ProductCollection.php`, enhanced the block's HTML output to include these new accessibility messages and integrated them with the existing interactive data attributes. This ensures that the front-end components are fully prepared to handle these accessibility enhancements.
- Added a new `div` with `class="screen-reader-text"` and `aria-live="polite"` attributes, which dynamically displays the accessibility message based on the navigation state. This div complements the visual pagination animation with an accessibility-focused mechanism for announcing the page load states to screen reader users.
By addressing accessibility considerations with these enhancements, we're making Product Collection navigation more inclusive and user-friendly for all users.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add spacing in Checkout block page
* Add spacing in Order summary block
* Update responsive styles for order summary panel
* Update styles for cart and cart line items table
* Update styles for order summary and cross-sells products
* Remove unnecessary CSS styles from cart line items table and cart block
* Remove unused CSS class from cart line items table
* Fix linting errors
* Add changelog
* Fix changelog lint
* Update quantity selector style
* Increase the line-height of the set description and remove margin top from email field
* Add margin-top to order summary image and express payment margin adjustment
* Update styles for cart and checkout components
* Fix linting error
* Fix margin units in cart-cross-sells-products
* Replace em with px
* Add margin-top to payment method container
* Update styles for Cart block for mobile screen
* Update padding in cart style.scss
* Fix removal of express payment method from state
- Correct the logic for removing an express payment method from the availableExpressPaymentMethods state object.
- Previously, the deletion targeted the incorrect object, leading to incorrect change in state. Now, the correct entry is removed using destructuring and rest parameters, ensuring the express payment method is properly deleted.
* Revert "Fix removal of express payment method from state"
This reverts commit 8e24553794.
* Fix typo error in the reducer
* Add unit to make sure correct express payment method is removed
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Remove payment method descriptions from express and fix changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add bottom margin to the pattern
* Increase the height of the pattern to match designs
* Replace intro patterns on Core
* Add changelog
* Update the default intro to be hero product split
* use the WC core version to hash WC blocks assets
This is because the previous hash was generated using WC blocks version, which hasn't been updated since joining the monorepo.
* Make class variable to hold new prefixed wc version
* Add changelog
* Add var type to new class property
* Add prefix to prevent collission
* also use wc version for styles
* make variable public
---------
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
* Clear billing address when useShippingAsBilling checkbox is unchecked
* Add billing address sync with server
* Add useRef hook to store previous billing address and update sync functions
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Revert "Add useRef hook to store previous billing address and update sync functions"
This reverts commit 7bc3312ab7.
* Added condition to clear address only for guest users
* Add E2E test to check billing address form is empty for Guest shopper
* Fix typo
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Updated docs-manifest.json
* Revert "Updated docs-manifest.json"
This reverts commit 20d578a9d6.
* Include company field in the E2E test
* Replace beforeAll with beforeEach
* Skip country reset to keep consistency with Shortcode Checkout
* Remove sync billing address on server
* Update E2E test to include the shipping address check
* Remove unsed imports
* Clear address fields except country and state
* Optimize the billing and shipping address check with switch statement
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Add animation for client-side pagination
This includes:
- Addition of animation state management in the frontend file to control the visual transition between pagination states.
- Introduction of new SCSS rules for the start and finish animations, ensuring a seamless and visually appealing pagination experience.
- Modification of the PHP logic to inject necessary HTML for the animation to be applied.
These updates aim to provide a more engaging and responsive interface for users navigating through product collection.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Allow user clicks under product collection's loading animation
This commit enhances the user experience of the loading animation for the product collection block. Changes include:
- Specifying `transform-origin: 0% 0%;` directly within the block's initial style to indicate the animation should start from the left
- Adding `pointer-events: none;` to allow user interactions with elements underneath the loading animation, thus improving usability by not blocking clicks.
Additionally, redundant `transform-origin` properties were removed from the `@keyframes` declaration to clean up the code and avoid unnecessary repetition. This simplification contributes to both the maintainability and readability of the stylesheet.
* Fix linting errors in SCSS file
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add checks and unit tests to Transformers
* Add changelog
* Update docs
* Fix test
* Set the default value to an empty array
* Set default value to array() for ArrayColumn
* Dont render attribution metabox for non-supported order types.
* Use a screen check instead of order type check for better compat.
* phpcs fix
* Remove unnecessary call.
* Handle empty block content in process_pagination_links method
This commit introduces a check for empty block content in the `process_pagination_links` method of the `ProductCollection` class. This change ensures that if the block content is empty, the method will immediately return the original content without attempting further processing. This enhancement prevents potential errors or unnecessary processing steps on empty content.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Ensures that even if `wp_get_attachment_metadata` returns an unexpected value due to a filter, the `get_full_size_image_dimensions` method will handle it correctly and not throw an error.
Fixes#40393
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Rename test
* Updated tests to use work with more reviews
* Add changelog
* Add new test: can filter the reviews by product
* Fix lint errors and warnings
* add wc_get_valid_product_statuses
* add support for sku
* add unit tests for the `product_page` shortcode
* add `woocommerce_shortcode_product_page_override_read_permissions_unpublished` filter
* keep a list of invalid statuses instead of valid ones and allow overriding it
* move deprecation notice handling into methods
* appease the linter
* remove `visibility` attribute
* ensure we remove the filters that we add in a test
* allow overriding read permissions in both directions (or not at all)
* add sku-based tests and remove some superfluous testing data and asserts
* add back in missing variable
* remove superfluous `hidden` visibilities
* add changelog file
---------
Co-authored-by: Leif Singer <git@singer.sh>
* Prevent file-sniffing through the product editor's downloadable files UI.
Before now, files that do not exist and files that exist outside an approved directory led to different error messages. This meant the latter could be taken as an indicator that a given file exists.
* Correct initial indent.
---------
Co-authored-by: barryhughes <3594411+barryhughes@users.noreply.github.com>
* Add sharding to Blocks e2e tests
* Changelog
* Push a change to Blocks README to trigger tests
* Fix syntax
* Fixed again
* Try again
* Trying to get the shard number
* Shard names
* fix E2E test
* complete all the jobs
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Fix Gutenberg links in the docs pointing to the wrong branch
* Add changefile(s) from automation for the following project(s): @woocommerce/notices, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/components, woocommerce-blocks, woocommerce-beta-tester, woo-ai
* Fix markdown lint errors
* Fix wrong link in the docs
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix docblock
* First pass at backfill CLI tool
* Use ‘posts’ instead of ‘cpt’ in legacy data handler
* Include posts to HPOS migrator in LegacyDataHandler
* Add backfill method to legacy data handler
* Add tests
* Add changelog
* Appease linter
* Rename <id> to <order_id> in WP-CLI docblock
* Make from/to datastore argument mandatory
* Improve handling of invalid order types
* PHPCS fixes
* Restore use of _table property, for consistency with other methods.
* Ignore interpolated/unprepared variable warning (we're referencing a table name).
* Changed Make the structured data price of group products refer to the latest child product price.
* Add changelog
* PHPCS fixes
---------
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
The `watch:build` setup in this package does not conform to
the expects format and so the build command was not being
run. This fixes that and ensures it gets executed correctly.
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: github-actions <github-actions@github.com>
* EditorLoadingContext
* Use EditorLoadingContext
* Remove fallbacks
* Make sure metadata exists before using it
* Add header loading state
* Do not return skeleton
* Use EditorLoadingContext
* Update editor loading state
* Remove ProductPageSkeleton
* Remove unused import
* Remove unused import
* Handle undefined variationId and parentId in VariationSwitcherFooter
* Remove ProductPageSkeleton
* Include productId in determination of whether editor is loading
* Handle variation loading
* Fix rebase merge conflict mistakes
* Fix layout margins
* Show welcome tour and feedback bar after editor has loaded
* Changelogs
* Make loading context experimental
* Reduce the `woocommerce-customize-store-banner-content` width to better fit the copy
* Add changelog
* Remove the image placeholder and improve margins
* Add changelog
* Reduce the `woocommerce-customize-store-banner-content` width to better fit the copy
* Add changelog
* Increase the width to fit the sentence in one line
* Only show customer history box if WooCommerce Analytics are enabled
* Use requests to /reports/customers endpoint for customer history data
* Don't reinvent the wheel - use customer analytics data for Cust. Hist.
* Remove Customer Order Count from tracks data
* Simplify the customer history process
* Omit Customer history content when adding a new order in wp-admin
* Early return to reduce complexity
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Simplify matching customers
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Remove unnecessary method
* Use Customers Query directly to get customer history data
* Template version bump
* Move the customers query to CustomerHistory
* Only show customer history box if WooCommerce Analytics are enabled
* Use requests to /reports/customers endpoint for customer history data
* Don't reinvent the wheel - use customer analytics data for Cust. Hist.
* Remove Customer Order Count from tracks data
* Simplify the customer history process
* Style and legibility fixes
* Template version bump
* Add changelog
* Omit Customer history content when adding a new order in wp-admin
* Early return to reduce complexity
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Simplify matching customers
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Remove unnecessary method
* Use Customers Query directly to get customer history data
* Template version bump
* Move the customers query to CustomerHistory
* Match default params
* Simplify Customer Query params (cache key match with API is much harder)
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Logging: Add filter to modify the list of expired logs to be deleted
This provides a way for extensions to ensure that some log files are
retained for a different time period than the normal
retention period setting.
* phpcs cleanup
* Add changelog file
* Add note to settings view when hook has filter on it
Also remove the note about retention days from the log entry that's
generated when expired log files are deleted
* Clarify when the custom message is used in useConfirmUnsavedChanges
* Changelog
* Load translations for wc-navigation and wc-product-editor scripts
* Changelog
* Fix field saving in account area
* Check for error notices in core form handler
* Tidy up additional field saving in api
* sanitize_additional_fields does not expect request
* Validate fields with extra context
* Revert "Tidy up additional field saving in api"
This reverts commit 872c8f4afb.
* Tidy update_customer_from_request
* validate_field docs
* Validation and sanitization hooks
* Address schema validates fields and address location
* Validate locations
* Frontend validation
* Remove empty error response
* Document account details hook
* field_key
* Improve validation routine
* Changelog
* Swap key and value in woocommerce_blocks_validate_additional_field hook
* woocommerce_blocks_validate_location_X_fields
* Validation and sanitization callbacks
* Update try catch blocks
* Use wp_kses_post to sanitize coupon codes
* Fix notice (php 8)
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove duplicate changelog entry
* Try alternative wp_kses function
* Account for unfiltered_html
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Early implementation of getting the Product Collection location/context
* Solve the problem of async fetch in the hook
* Improve typing
* Import core data store instead of hardcoding store name
* Recognise Product Category and Product Tag
* Remove attr property from archive location data
* Unify states naming
* Add TODO entry
* Display the info about the location of Product Collection
* Improve the typing
* Recognise if Product Collection is nested in Single Product block
* Improve cases descriptions and add some defaults to potentially undefined values
* Change the taxonomies sourceData
* Recognise Mini Cart as Cart context
* Recognise attribute as archive contect but no taxonomy
* Refactor the function into single useEffect and clean it up
* Fix typo
* Remove unnecessary import
* Stop rendering the output in Editor (it was for demo purposes)
* Pass location data to Product Template query in Editor
* Replace templateSlugs literal strings with object reference
* Rename parseResponse function to more specific name getIdFromResponse
* Add dpeendency array to useEffect
* Refactor templates detection
* Use full taxonomy names instead of shortcuts
* Write down scenarios to test
* Working scenario
* Change the verification way for more robust
* Add more robust methods to include Single Product block
* Add test Product Collection in Single Product block in a Single Product Template
* Imprvoe the order of veryfing the requests
* Fix linter issues. Although that makes code less readable
* Improve the useGetLocation typing so it's more generic
* Rework the E2E tests regarding location of Product Collection and limit their number
* Bring back necessary eslint-disable
* Remove unused imports
* Uncomment line required for other tests
* Add changelog
* Rename constant from BLOCK_NAME to BLOCK_SLUG as it's a slug
* Add a BLOCK_NAME constant and replace the literal block name usages in E2E tests
* Fix post merge issues
* Fix test after merge
* Adjust the tests to kick off waiting for request before action that triggers them
* Fix for the DI container resolution by tag.
This fixes an issue that arises when using service providers inheriting
from AbstractInterfaceServiceProvider: if one of these providers
registers classes both by name and by tag, and one of its registered
classes is requested with 'get' by name before a list of classes is
requested by tag, then that service provider gets locked as the only one
providing that tag, and the others get ignored. This is due to the fact
that container definitions are created "on the fly" as needed and the
base 'get' method won't try to register additional providers if the
requested tag is already provided by at least one of the already
existing definitions.
* Add changelog file
* Add a unit test for the fix
* CYS - Core: Ensure that the bodoni font is loaded
* CYS-Core: install fonts via async job
* ensure that the font are installed only when the Font Library is installed
* improve documentation and validation
* add changelog
* remove unused class
* remove not necessary changes
* improve documentation
* improving naming
* improve documentation
* fix PHP linter
* fix phpdoc comment
* Make attributes available in rest_product_query hook
This commit introduces the 'includeInQueryContext' attribute to the 'woocommerce/product-collection' block and updates the 'woocommerce/product-template' block to consume this new attribute.
Key Changes:
1. `woocommerce/product-collection` Block:
- A new attribute 'includeInQueryContext' is added in `block.json`. This attribute is designed to hold a list of attribute names relevant for the query context.
- The 'includeInQueryContext' attribute is included in the `providesContext` field to ensure its availability to child blocks.
- In `constants.ts`, default values for 'includeInQueryContext' are defined, specifying 'collection' and 'id' as initial attributes.
- The `types.ts` file is updated with a comment explaining the purpose of 'includeInQueryContext'.
2. `woocommerce/product-template` Block:
- Modified `block.json` to utilize the 'includeInQueryContext' context provided by the parent `woocommerce/product-collection` block.
- The `edit.tsx` file is updated to handle the new context. It uses a newly added utility function `useProductCollectionBlockAttributes` from `utils.tsx` to access parent block attributes.
- The `utils.tsx` file is introduced, containing the `useProductCollectionBlockAttributes` hook. This hook is responsible for finding the parent 'woocommerce/product-collection' block and returning its attributes.
- Within `edit.tsx`, logic is added to create a query context object based on the attributes specified in 'includeInQueryContext', enhancing the block's ability to dynamically adapt to changes.
* Remove commented code
* Rename query context attribute and optimize parent block detection
This commit introduces two significant changes aimed at improving code readability and efficiency.
1. **Renaming of Query Context Attribute:**
- The attribute `includeInQueryContext` has been renamed to `queryContextIncludes` across various files, including block JSON configurations and TypeScript definitions. This change makes the attribute's purpose more intuitive, indicating it specifies which attributes to include in the query context.
2. **Optimized Parent Block Detection:**
- Replaced the use of `getBlockParents` with `getBlockParentsByBlockName` in utility functions to find the closest Product Collection block. This optimization allows for a more direct and efficient way to identify the relevant parent block by specifying the block name, reducing unnecessary iterations and improving code performance.
* Streamline query context construction in product template
Key Changes:
- **Introduction of `useProductCollectionQueryContext` Hook:** This new hook takes the `clientId` and `queryContextIncludes` as inputs and returns a query context object. It encapsulates the logic for fetching parent product collection block attributes and constructing the query context accordingly. This abstraction simplifies the edit component's logic, focusing on the essentials and improving code readability.
- **Optimization of Parent Block Detection:** The hook uses `getBlockParentsByBlockName` to accurately and efficiently find the closest parent `Product Collection` block, minimizing the overhead previously associated with traversing the block hierarchy.
* Always include `collection` and `id` in query context
* Minor refactor
* Enhance query context handling for more maintainable code
- Introduced `DEFAULT_QUERY_CONTEXT_ATTRIBUTES` in `edit.tsx` to maintain a clear list of default query context attributes.
- Modified `ProductTemplateEdit` to automatically include these default attributes in `queryContextIncludes`, ensuring they are always part of the query context without manual initialization.
- Simplified `useProductCollectionQueryContext` in `utils.tsx` by removing static initialization of 'collection' and 'id', relying instead on the dynamic addition of necessary attributes from `queryContextIncludes`.
This refactor enhances the maintainability and clarity of the code, ensuring a solid foundation for future enhancements and features.
* Add E2E tests for Product Collection query context
- Added a new test suite 'Query Context in Editor' to validate the correctness of query context parameters when the Product Collection block is used. This suite ensures that:
- For the 'Product Catalog', only the ID is sent in the query context, confirming that collection-specific parameters are excluded when not relevant.
- For collections such as 'On Sale', the collection name is correctly passed in the query context, validating that the block dynamically adjusts query parameters based on its settings.
- Introduced a new utility method `setupAndFetchQueryContextURL` in `product-collection.page.ts`. This method automates the setup of a post with the Product Collection block and fetches the URL with query context parameters, facilitating the validation of query context handling.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix edge case when `queryContextIncludes` is not defined
- Initializing `queryContextIncludes` with a default empty array directly in the destructuring assignment of the component's props. This approach ensures that `queryContextIncludes` is always an array, simplifying downstream logic.
- Creating a new constant `queryContextIncludesWithDefaults` to hold the combination of `queryContextIncludes` and `DEFAULT_QUERY_CONTEXT_ATTRIBUTES`. This step avoids directly mutating the `queryContextIncludes` prop, aligning with best practices for functional purity and making the code easier to understand and debug.
- Updating the `useProductCollectionQueryContext` hook call to use `queryContextIncludesWithDefaults`. This ensures that the default query context attributes are consistently included without altering the original prop.
These adjustments not only enhance the code's maintainability but also ensure more predictable behavior by avoiding side effects related to parameter mutation.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove global pageObject action from Product Collection tests and add it as before all for specific tests
* Replace beforeAll with beforeEach
* Adjust the beforeEach usage
* Add changelog
* Refresh locators when adding Single Product block as it's not initialised in pageObject
* Change method dedicated to templates to one dedicated to posts
* Remove 'get_block_template' backwards compatibility check
* Add back get_block_template as a deprecated function
* Deprecate BlockTemplateUtils::filter_block_templates_by_feature_flag()
* Replace 'default template' with 'fallback template'
* Only load BlockTemplatesController in block themes
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Remove unnecessary WP version comparison
* Revert "Only load BlockTemplatesController in block themes"
This reverts commit 8e1ed347d61b7ae5e8b8b96fa73b410565570f01.
* Remove deprecated functions, as they are marked as internal
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove WooCommerce Blocks entry from the WooCommerce status page
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add logic to trap keyboard focus inside the Product Gallery Pop-Up
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Remove unnecessary condition
* Fix issue with keyboard focus trap not working within the Pop-Up
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update product-review
Add test to edit a product review and another test to delete it
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Added test data in fixture and changelog extra line
Change test data use from constants at the top to test data created in a fixture for each test. Also, added extra line to the changelog file.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update changelog
Fixed mixed lines on previous commit.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Remove edited timestamp
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Update hover action to review id.
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Change Quick Edit button to reach review identifier
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Replace updated review check to single line assert
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Hover to edit on review identifier
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Point to trash a review to its identifier.
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Update plugins/woocommerce/tests/e2e-pw/tests/merchant/product-reviews.spec.js
Point to trash a review to its identifier.
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Added Review Edit test
Added Review Edit test apart from Quick Edit test. Included assertions to verify that the review has been edited and can be seen both in the reviews list and the shop's page.
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Improve password-protected Single Product block template to verify correct template is displayed after correct password is introduced
* Add changelog entry
* Import editor.scss styles of Product Templayte and increase specificity
* Add changelog
* Add ts ignore
* Revert changing eslint-disable as it conficts with another rule creating more errors
* Added Missing LInting Changes
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Build path directly instead of directly loading REST API.
* Add changelog.
* Make shapes of routes array consistent with whats returned in API.
* Add doc comment.
* Fix missing slash typo
* Make linter happy.
* Add doc block for filter.
* Short hydration logic to use controller directly.
* Rename _get_path to get_path_regex for accuracy and lint.
* Restore nonce check bypass for internal hydration requests.
* Restore cache notice check to allow controllers to start from clean slate.
* Update since tag.
* CYS - Core: ensure that the default font and color are selected
* remove console.log
* Add changefile(s) from automation for the following project(s): woocommerce
* add comment
* add changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix fonts affecting the size of each other
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove log
* Removae old typography settings before applying new ones
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add automated tests to verify specific product templates are rendered
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Include collection attribute in the block context
* add 'collection' to useContext for Product Template
* Changelog
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Add tests skeleton
* Add up-sell test
* Add changelog
* Add test for cross-sells
* Renamed spec file
* Add tests for remove up-sells and remove cross-sells
* Update the viewport
* Extract the update product action into a function
* Fix the expect for up-sells
* Add a poll mechanism when checking that up-sells were removed.
* * Use backspace to remove linked items
* Add a check for up-sells before removing them to prevent a false negative result
* Uncomment cleanup code
* Revert viewport height
* Return focus to trigger element when closing pop-up
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix php cs error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add new test with a product name edit
* Add changelog
* Update price and description
* Check product summary update
* Remove unnecessary interpolation
Previously, a 'coupon_data' line item meta entru was being stored
when a coupon was applied to an order. Now a much shorter
'coupon_reapply_info' entry is stored instead, containing just
coupon id, code, discount type, amount, and whether the coupon
grants free shipping.
* Improve Product Collection test when nested in Single Product block, previous version was flakyu
* Add changelog
* Move the priovate method below the comment starting private methods
* Remove unnecessary wait
* Update data store to bail if there is no customer ID
* Use WC_Data meta functions
* Save and load meta in session class
* Customer session handling
* CheckoutFields - only persist customer data to accounts
* Inline docs for session handling
* Handle meta data in session
* Document wc->customer inline
* Store only additional fields in session
* Prevent notice in WC_Data
* Organise keys and remove duplicates
* Correctly save fields to account
* Fix notices on checkout
* Remove unnecessary diff
* Changelog
* Go back to previous way to loading session handler to avoid 3rd party breakage
* No need to track is_session
* white space
* Remove changes to customer data store
* Update class-wc-customer-data-store.php
* Populate client from additional values from api
* Additional fields in session
* Add woocommerce_customer_allowed_session_meta_keys hook
* Put back legacy keys for tests
* Remove key fixes
* Don't save additional fields to customer object
* Remove duplicate init call
* Only persist contact fields
* Add back parent machine to the designWithoutAi child machine option
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Simplify add template title and description
* Add template title and description on 'get_block_template' hook. Fixes#42221
* Add tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix test in template parts
* Use BlockTemplateUtils::template_has_title when possible
* Add test also when saving the default WooCommerce template
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add ability to select thumbnails using keyboard
* Add ability to open the Product Gallery pop up using the keyboard
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix outline border not showing on Thumbnails on some browsers
* Prevent firefox browser from focusing on UL tag of the Large Image block
* Enable usage of 'Space' and 'NumpadEnter' keys to navigate between the thumbnails
---------
Co-authored-by: github-actions <github-actions@github.com>
* Avoid duplicating the `/onboarding/themes/recommended` request
* Use `fetchActiveThemeHasMods` in the `fetchIntroData` function
* Add changefile(s) from automation for the following project(s): woocommerce
* WIP
* WIP
* WIP
* WIP
* Move the `activeThemeHasMods` to outside the `intro` key, since it's used also in other places
Refactor, add comments and cleanup
* Remove unnecessary log
* Set the `activeThemeHasMods` on the parent window to true after the design step to avoid having to fetch it again
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unused import
* Add comment and ref to the new issue
* CYS - Core: fix flow when Font Library is not installed
* Add changefile(s) from automation for the following project(s): woocommerce
* improve naming
---------
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Updated Lock File
* Add changefile(s) from automation for the following project(s): woo-ai
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix error on decimal input for the Number of Thumbnails setting
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Avoid duplicating the `/onboarding/themes/recommended` request
* Use `fetchActiveThemeHasMods` in the `fetchIntroData` function
* Add changefile(s) from automation for the following project(s): woocommerce
* WIP
* WIP
* WIP
* WIP
* Move the `activeThemeHasMods` to outside the `intro` key, since it's used also in other places
Refactor, add comments and cleanup
* Remove unnecessary log
* Set the `activeThemeHasMods` on the parent window to true after the design step to avoid having to fetch it again
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unused import
* Add comment and ref to the new issue
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Update webpack config
* Wrapper block type definition
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* Revert render_content to original
* Allow definition of unchecked value which includes a hidden field
* Move woocommerce_edit_account_form above password section, which should be last.
* My Account hooks
* Move account handling to service class
* Show fields in order details
* Remove unused prop
* remove comment
* Hook docblocks
* Add changefile(s) from automation for the following project(s): woocommerce
* Add note about nonce verification
* wp_kses_post for label
* fix nonce linting
* Add docblock to hook
* Bump template version
* Persist contact fields to customer
* Change action name
* Add changefile(s) from automation for the following project(s): woocommerce
* Changelog
* Margin fix on order confirmation for older core themes
* Bump version tags
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* WIP
* Add e2e tests for regular and custom templates
* Allow theme *.zip files for testing purposes
* Bump template versions
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update comments in bash script
* Remove child themes - they will be installed from the zip
* Fix lint error re spacing
* Bump template versions
* Update PHP unit tests for classic style notices
* Revert "Remove child themes - they will be installed from the zip"
This reverts commit 98b1036616.
* Remove classic cart check in test
* Revert "Add e2e tests for regular and custom templates"
This reverts commit ef531854f9.
* Revert test-related changes
* Remove report
* Prevent phpcs warning for not escaped output
It is escaped in the wc_get_notice_data_attr function
* Revert notice changes to core E2E tests
* Update shopper add to cart e2e test to use correct notice class
* Update checkout block E2E test to use correct notice class
* Fix typo
* Update test to check for correct notice classes
* Update notice comment
* Re-apply block template overrides
* Consistent notice check with other templates
---------
Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: github-actions <github-actions@github.com>
* Add e2e tests for password-protected Single Product block template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Move the guest should verify email logic to the order class
* Refactor for readability and remove redundant code
* Use billing email variable
* Remove white space
* Rename and move email_is_valid to users utils
* Use global WC_DateTime and WC_Session classes
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* use text-area for variation desctiption field
* changelog
* tweak // Translators string
* use var to define textarea border color
* remove optional from description label
* Change local workers to 1
* Add helpers for adding shipping
* Add shipping zone before order
* Fix tax assertion
* Fix assertion
* Tightened up locators
* Dismiss tour if visible
* Back to function
* Update tax label
* Enable shipping
* Update locator
* Changelog
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* avoid crash when Gutenberg is not installed
* add issue link
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add completed order email test
Add test structure to verify completed order email arrival and content
* Verify Email JSON Content
Parse email content in JSON format
* Record email content in JSON
Record email content in JSON
* Update emails completed order checks
Added checks to verify the content of completed order's emails
* Add changefile(s) from automation for the following project(s): woocommerce
* Update email content const & remove duplicated test
Updated with a new const to record email content const and removed duplicated assertion.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create DownloadableProductTrait for common downloadable blocks creation
* Use DownloadableProductTrait in SimpleProductTemplate
* Use DownloadableProductTrait in ProductVariationTemplate
* Remeber downloadable files in product variations
* Add changelog file
* Fix php linter error
* Unlink downloads and downloadable product props so they can be managed separately
* Remove invalid margin bottom from the uploader label
* Add changelog file
* Make legacy data cleanup more performant
* Add legacy data cleanup processor
* Make legacy cleanup available in the UI
* Add some validation around data synchronizer / data cleanup settings
* Add some error handling
* Add changelog
* Make CI happy
* Improve option handling
* Add unit tests
* Partially revert “real time” cleanup
* Re-schedule cleanup on ‘shutdown’ if necessary
* Revert CSS changes for HPOS settings screen
* Revert JS changes for HPOS settings screen
* Allow tools to display a status text
* Move order cleanup to Tools
* PHPCS fixes
* Extend bail early protection to other batch processing functions
* Log and stop cleanup when a full batch fails
* Make PHPCS happy
* Initial working version
* Update scrolling behavior in product collection block frontend
This commit updates the scrolling behavior in the product collection block's frontend script.
Previously, the code focused on the first anchor or button within a product collection block. This approach was taken to maintain accessibility and ensure that the focused element was scrolled into view. However, this behavior has been changed to improve the user experience.
The updated code now directly scrolls to the first product in the collection. This is achieved by selecting the product using a new selector that targets the `.wc-block-product` class within the `.wc-block-product-template` of the specified `data-wc-navigation-id`. Once the product is selected, the `scrollIntoView` method is used with smooth behavior and start block alignment, offering a more visually appealing scroll effect.
This change enhances the user experience by smoothly directing attention to the beginning of the product collection, making it easier for users to browse products.
* Remove code related to animation
* Fix the issue related to pagination block rendering
- I have improved the code by breaking it into smaller functions
- Added unique `data-wc-key` to each anchor tag
* Enhance Product Collection Block with Interactive Prefetching
* Refine Prefetch Logic & other improvements
This commit further refines the prefetch logic and interactivity in the Product Collection block. It focuses on enhancing code clarity and improving the prefetch behavior based on user interactions.
Key changes include:
1. Renamed 'isPrefetchNextAndPreviousLink' to 'isPrefetchNextOrPreviousLink' in ProductCollectionStoreContext for better readability and accuracy.
2. Modified the scrollToFirstProductIfNotVisible function to accept a wcNavigationId as a parameter instead of a reference
3. Introduced checks for the existence of wcNavigationId in scrollToFirstProductIfNotVisible to prevent unnecessary executions.
4. Updated comments throughout frontend.tsx for enhanced clarity, explaining the prefetch logic and its triggers in detail.
5. Adjusted the logic in the navigate and prefetch functions to align with the new context structure and prefetch strategy.
6. In ProductCollection.php, updated data attributes to align with the revised prefetch strategy.
7. Refined the attribute setting in process_pagination_links function to correctly implement the updated interactivity and prefetch logic.
These changes aim to optimize the prefetch functionality, reduce unnecessary prefetching on initial page load, and ensure a smoother and more efficient navigation experience within the Product Collection block.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Improve comments
* Use wp_json_encode for data-wc-interactive attribute
This commit updates the `ProductCollection` class to use `wp_json_encode` for setting the `data-wc-interactive` attribute value. Previously, the attribute value was hardcoded as a JSON string. Now, by utilizing `wp_json_encode`, we ensure the JSON encoding is handled correctly by WordPress standards, enhancing readability and maintainability of the code.
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: add integration with the font library
* install font only when necessary
* refactor logic
* add try catch
* renaming font
* refactor some code
* refactor some logic
* Add changefile(s) from automation for the following project(s): woocommerce
* remove not used import
* avoid mutability
* improve performance
* update name variable
* fix naming
* fix endpoints after font collection rest controller improvements
* use promise.all into the map
* improve performance
* fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Initial approach to fix incorrect product data displayed in Product Collection in context of Single Product block
* Remove the BlockCOntextProvider
* Add Block context for title and summary
* Add changelog
* Improve typing
* Add E2E test with Product Collection inside Single Product block
* Improve insertBLock function description
* Make productPrices selector in Product Collectionmore specific
* Extract components props into a types
* Always show Variation options and Variations sections within the Variations tab
* Remove woocommerce/product-variations-fields block since it's not needed anymore
* Create ProductTShirt image for variation options empty state
* Add renderCustomEmptyState to the attribute control component to be able to set a not default empty state
* Render a custom empty state for variation options
* Adds defaultSearch prop to NewAttributeModal so it can be used to start searching right after the modal is shown
* Let the empty state adds an attribute that matches a given text
* Add changelog files
* Fix linter errors
* Ensure that the Font Library is available
* Add changefile(s) from automation for the following project(s): woocommerce
* fix iframe issue
* improve comment
* don't return any object
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rename block template customization test files
* Move Checkout Header template part tests to parameterized tests
* Make it so 'userText' in tests is different in each template, so prevent false positives
* Move Mini-Cart template part tests to parameterized tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Make sure there are products in cart before going to the Checkout template
---------
Co-authored-by: github-actions <github-actions@github.com>
* Apply Rector suggestions
* Add changefile(s) from automation for the following project(s): woocommerce
* Restore false positive
$missing_tables will always be an array
* Restore false positive.
Rector issue: AddDefaultValueForUndefinedVariableRector.
This time the early return is valid so there’s no need to move the $process_limit assignment to the top.
* Ask if $orders is an array
$orders is used as an array lines below. Add `is_array` just in case the “paginate” param is used which would change $orders to an object.
* Check if variable is array
Simplifies variable check given that they are used as an array lines below.
* Restore code as taxes is always an array
* Restore false positive
In the previous loop the $data variable is being built as an array of arrays. Then $value in this loop will allways be array.
* Restore false positive
get_children’s method. of a WC_Product instance will always return an array.
* Simplify variable check
Ask if varialbe is array since it only can be array or false.
* Restore false positive
WC_Blocks_Utils::get_blocks_from_page() will always return an array.
* Restore false positive
There’s a check asking if $existing_meta_data[ $meta_data->key ] is array.
* Restore false positive
$child_ids will always be an array.
* Restore false positives
WC_Product->get_visible_children() will always return an array.
* Restore false positives
WC_Product->get_children() will always return an array.
* Restore false positive
WC_Product->get_visible_children() will always return an array.
* Restore false positive
WC_Order->get_items() will always return an array.
* Restore false positive
The get_matching_rates private method will always return an array.
Updated the @return declaration to be an array instead of boolean.
* Remove unnecessary array type casting.
* Restore false positive
$this->get_children() will always return an array.
* Fix lint issues
* Remove unnecessary default assignment
* Remove unnecessary is_array check
* Remove unnecessary is_array check
* Remove unnecessary is_array check
* Change default value from null to false
* Remove unnecessary is_array check
* Update changelog entry
* Update changelog entry
* Update changelog entry
* Add changefile(s) from automation for the following project(s): woocommerce
* Update changelog entry
* Use self for consistency
---------
Co-authored-by: github-actions <github-actions@github.com>
* Marketplace: Fix the bug hiding connection hiding
Actually, this bug causes all modal state to be lost. But since we
check the connection only when the page loads, on a subsequent tries, we can 't show the connection warning.
* Marketplace: update documentation and typos
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Migrate coupon- and shipping-related tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix prettier issue
---------
Co-authored-by: github-actions <github-actions@github.com>
* Adds tests to monitor number of JS files included in pages
* Changelog
* Update file counts
* Changed assertion to LTE
* Revise file counts
* Update numbers
* Increased numbers
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Store API: fix link documentation
* Add changefile(s) from automation for the following project(s): woocommerce
* fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update the CYS intro modal copy on Core
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create a dedicated survey and tracking events for the CYS flow on core
* Update booleans to show button and survey
* Remove console log
* Add changefile(s) from automation for the following project(s): woocommerce
* Style required question asterisk and make the questions required
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fetch the ai status on the transitional page of the CYS flow
* Only check AI status on WooExpress
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add theme-customization e2e tests to Cart and Checkout templates
* Add theme-customization e2e tests to Order Confirmation template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update after rebase
* Make it so Order Confirmation template tests are also part of the parameterized tests
* Use CUSTOMIZABLE_WC_TEMPLATES constant instead of defining the templates again
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix wrong template slug
* Rename 'default' to 'fallback' template
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove Cart and Checkouts templates migration code
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* add draft test
* test unserializing an order meta with an object of a non-existent class
* appease the linter
* add asserts for the $meta's object_vars
* linter fix
* we actually don't need these to force a sync
* add one to time to avoid potential flakiness
* use simpler fetch for order
* catch the errors and do things manually via wpdb instead
* appease the linter
* add changelog file
* specify format for the insert
* add test for deleting meta
* detect incomplete class in meta value instead of catching and examining errors
* appease the linter
* fix typo
* address review comments
* empty cache when we have manually deleted the post meta
* use `is_object`
* add logging
* log the order ID
* Update README.md
Add a link to the WooCommerce Monorepo prerequisites before going through the e2e-pw prerequisites.
* Update WC prerequisites to relative link and added changelog
Update link to WC monorepo prerequisites
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove duplicated lines
Remove duplicated instructions and leave the step to install Docker and Docker compose
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
* Check for string values when updating chosen_shipping_methods session
* Ensure filtering woocommerce_shipping_chosen_method provides a string value
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add wireit build config for wooai plugin
* Add changefile(s) from automation for the following project(s): woo-ai
* Add lint config for woo-ai plugin js and css
* Remove build:admin script for wooai
* Remove ci config for woo-ai
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add new "can receive cancelled order email" test
* Add new "can receive cancelled order email" test
* Add changefile(s) from automation for the following project(s): woocommerce
* temp: wait for 1s
* temp: wait for 1s
* Revert changes introduced in 5aa5013
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add "can view product review" test
* Add changefile(s) from automation for the following project(s): woocommerce
* Add timestamp to reviewer's email
* Verify reviewer's email and rating
---------
Co-authored-by: github-actions <github-actions@github.com>
Adds logs settings values to both the SSR REST API endpoint and to the
HTML version of the SSR screen. Also adds a new method for calculating
the total size of the log directory, and adds that info to the Logs
Settings screen in addition to the SSR.
* Make `get_allowed_countries` default to `all`
* Make `get_shipping_countries` handle `disabled` and apply filter on all cases
* Add changefile(s) from automation for the following project(s): woocommerce
* changelog
* Put option in variable to avoid multiple calls
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update create simple product
Add steps that add description, sale price, SKU, purchase note and an attribute (Color)
* Update add-virtual-product formatting and locators
Update add-virtual-product tests with suggested formatting and locators
* Add changelog file
Adding the missing changelog file via pnpm --filter=plugin-woocommerce run changelog add
* Update locators with getBy on product creation
Update product name, price, sale price and virtual checkbox marking locators to use getBy instead
* Update SKU and publish locators with getBy instead
Updated SKU and publish locators with getBy instead
* Added asserts to create-virtual-prd test
Added asserts to create-virtual-prorduct test
* Update SKU check
Update SKU assertion
* Remove keyboard action
Remove press enter keyboard action
* Add changelog
Added changelog file
* Add changefile(s) from automation for the following project(s): woocommerce
* Update virtualProductName check
Update virtualProductName check to the const instead of the string
* Rebase and format
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Veljko <veljano@yahoo.com>
In #43166 I changed the way that row classes are added on settings
fields. However, by using `esc_html`, it's actually outputting invalid
HTML, where the double quote wrappers are getting converted to HTML
entities. This simply switches back to escaping only the attribute value
and not worrying if the tr element contains an empty class attribute.
* Avoid duplicate templates appearing on the Site Editor when the WooCommerce template and the theme template have been customized by the user
* Add tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Clean up templates after running all tests to increase speed
* Fix comment linting
* Fix addToCart() util with the classic template
* Remove unnecessary condition
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create session on the order pay page
* Add changefile(s) from automation for the following project(s): woocommerce
* changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Return error when the product creation fails
* Add changefile(s) from automation for the following project(s): woocommerce
* Continue with product creation even when the image upload fails
* Revert
* 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
* Add a warning message with the error when creating the products with no images
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add filters for customer email and order id for performance.
* Empty where should not cause invalid query.
* Add changelog.
* Add unit test for newly supported search params.
* Apply coding standards.
* Add a trailing wildcard to allow broader search.
* Remove extra line.
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Marketplace: Add "Add to Store" button for free and WordPress.org products (#43616)
* Marketplace: Install free .org plugins with Add to Store button
* Marketplace: addressed feedback for the the new install free products flow
- Moved notices to the top of the modal
- Updated notice styles slightly
- Updated the CreateOrderSuccessResponse to reflect API changes
* Marketplace: Require the Helper orders API file
* Marketplace: fix linter errors
* Marketplace: form encode when submitting the request
The body is encoded anyways by the WordPress core. However, if I don't
do it here, I can't create a valid signature to be verified by
Woo.com.
I could have just submitted a JSON too, but this seamed easier since
the body is parsed on Woo.com automatically when it's in this form.
* Add changefile(s) from automation for the following project(s): woocommerce
* Marketplace: remove "~" character in imports and use relative paths
* Marketplace: fix margins in the product with the Add to Store button
* Marketplace: Add conditions to hide the button
We hide it if:
- the product is already installed
- user doesn't have the right capability
- if the product is just installed using our flow and there is
no page refresh
* Marketplace: don't show Add to Store button on Themes and on Discover
* Marketplace: fix linting
* Marketplace: hide ratings from the product if "is-small" class exists
* Marketplace: fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
Resolve conditional dependency in JS.
Fixes#43829
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Hide the shipping rates in editor to match front-end
- If there are no shipping rates, hide the shipping rates in editor to match front-end.
* Add get_shipping_zones method to CartCheckoutUtils
* Display change address like for fallback shipping zone
- If cart has multiple and default shipping zones without shopper address, display the change address link
* Update shipping address label
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix linting errors
* Update plugins/woocommerce-blocks/assets/js/base/components/cart-checkout/totals/shipping/shipping-address.tsx
Co-authored-by: Niels Lange <info@nielslange.de>
* Display shipping calculator for locations outside all other zones
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update typescript for activeShippingZones
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* Move Cart, Checkout and Order Confirmation template customization tests to the parameterized tests file
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Clean up order-confirmation.block_theme.spec.ts file
---------
Co-authored-by: github-actions <github-actions@github.com>
* Sync country name to Klaviyo and Mailchimp
* Add state name
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove docs plugin from monorepo
* Add language to md-docs readme
* Fix lint error in blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Import media on environment setup
* Add product-images.spec with one complete test and all other skeleton tests
* Add changelog
* Implement can update the product image
* Implement can delete the product image
* Implement can delete the product image
* Skip not implemented test
* Merge fixtures
* Add productWithImage fixture
* Remove unused variable `api`
* Partial implementation of can create a product gallery
* Check the image gallery in store frontend
* Added `can update a product gallery` test
* Run all tests
* Search for image in media library
* Check that the remove gallery image is not displayed
* Add repeatEach configuration
* eslint formatting
* Extract some repeating steps into a function
* Update check for thumbnail
* Fix test image name
* The previously uploaded file should re-appear when the product changes from downloadable to not and then back again
* Add changelog file
* Fix php linter error
* Initial changes to fix the toolbar in the iframe editor
* Moved toolbar to header and respect fixedToolbar preference
* Only render Gutenberg toolbar with specific version
* Update GB version
* Fix build issue
* Add fixed toolbar menu
* Remove unused import
* Add changelogs
* Fix lint errors
* Fix PHP lint error
* Add Include downloads to show/hide the Downloads section
* Fix margin top for none first child nested sections
* Add changelog files
* Fix php linter errors
* Redirect to intro screen if theme is not modified
* Add changefile(s) from automation for the following project(s): woocommerce
* Add and fix test for the redirection
* Redirect with the proper url 'intro'
* Remove only
* Avoid completing the cys task when switching themes
* Revert prev commit and reset `woocommerce_admin_customize_store_completed` before each test
* Set the `woocommerce_admin_customize_store_completed` to `no` before each test
---------
Co-authored-by: github-actions <github-actions@github.com>
* PHP 8 Updates for src/Internal
* Add changelog entry
* Fix PHP lint issues
* Add unit test for not in queries.
---------
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Rename order attribution template file
* Update OA field name to `source_type` to keep up with https://github.com/woocommerce/woocommerce/pull/41690
* Discard conditional UTM labels altogether
---------
Co-authored-by: Tomek Wytrębowicz <tomalecpub@gmail.com>
* init approach of related products endpoint
* register related prodducts endpoint
* rename response prop with ids
* filter categoris from endpoint params
* filter categories when pulling related products
* changelog
* extend from WC_REST_CRUD_Controller class
* iterate over defininf endpoint params
* doc
* merge product terms with params
* introduce `combine` param
* return products collection instead of plain array
* fixinf eslint issues
* pass proper fn args to bound fns
* do not call parent register method
* post type is defined by parent controller class
* remove related products controller
* extend products controller with `related-products`endpoint
* filter post__in param
* when no related products found return empty array
* change and register endpoint params
* remove commented line
* add a custom method to extend the params
* update
* fix typo
* ensure to respect the products limit
* fix eslint issue
* remove unrequired endpoint id param
* Fix session notices in Cart and Checkout block pages
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update plugins/woocommerce-blocks/assets/js/base/components/notice-banner/style.scss
Co-authored-by: Niels Lange <info@nielslange.de>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Update webpack config
* Wrapper block type definition
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* Revert render_content to original
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Get default attributes on front end
* Add initial sections to email templates
* Revert "Get default attributes on front end"
This reverts commit f76c21617a2c5ad832d4579ba2c4c8e98afd440d.
* Also render contact fields
* Handle plain text
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Unwanted changes from rebase
* Use get_order_additional_fields_with_values
* Remove sample fields
* Version bump for styles
* Update plugins/woocommerce/includes/class-wc-emails.php
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce/includes/class-wc-emails.php
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Apply view context
* Handle null
* Context
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add e2e tests to verify specific theme templates have priority over user-modified Product Catalog template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix handling the error from the `product_image_upload` function
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add changelog and update var naming in block tests
* Format code in two tests
* Add missing payment method set to the test
* Refactor tests and merge cart checkout coupons
* Clear cookies before every test
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Update webpack config
* Wrapper block type definition
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* Revert render_content to original
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Show address placeholders
* View fields in admin
* Pass order object and context to field hooks in WP admin
* CheckoutFieldsAdmin class
* Move logic to CheckoutFieldsAdmin
* Implement context
* Style checkboxes correctly in meta box
* Update handling
* Undo change to changelog
* Correct docblock comment for woocommerce_admin_shipping_fields
* Document context
* No need to init fields
* Fix checkbox handling for bw compat reasons
* Add changefile(s) from automation for the following project(s): woocommerce
* Force CI
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix CSS rule
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Changelog
* Tests for restricted coupons
* Update to test checkout not cart… which is what I should have been using
* Removal -- from PR feedback
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix activity panel showing incorrect currency
* Add changefile(s) from automation for the following project(s): woocommerce
* Use store currency setting when order currency is different from the store currency
---------
Co-authored-by: github-actions <github-actions@github.com>
* Vanilla .animate() instead of jQuery .fadeIn()
* Slider .animate() keyframes are now a list with 2 objects
[{ marginLeft: old }, { marginLeft: new }] keyframe syntax instead of
{ marginLeft: [old, new] } keyframe syntax for consistency
* Changelog
* Tweak changelog.
---------
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Add sales property to MarketingCampaign class.
* Return campaign sales data in API.
* Display Sales in Campaigns card.
* Fix test for useCampaigns.
* Display a "-" when there are no cost or sales value in Campaigns card.
* Add changelog.
* Fix test for useCampaigns hook.
* Fix PHP lint issue.
* Add e2e test to hover Mini Cart totals
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Optimise hover test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Convert block templates tests to parametized tests
* Use frontendUtils.addToCart() when possible
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update commands to run e2e tests
* Capitalize Product Catalog template name
* Create tests with block theme with templates
* Create Block Theme with Templates test environment
* Update classic theme commands
* Code cleanup
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Code cleanup (II)
* Add config to blocks-playwright.yml and remove unnecesssary .github/workflows/playwright.yml file
* Remove unnecessary imports from product-catalog-template.block_theme_with_templates.spec.ts
* Update blocks e2e commands to pnpm
* Replace hardcoded strings with a variable
* Unify all 'block theme with templates' tests in a parameterized test
* Create a testData object for the Mini-Cart template part test
* Fix some code styling issues
* Create a testData object for the Mini-Cart template part test (II)
* Remove duplicate userText variable
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add unique ID attribute to Product Collection block
In this update, we introduced a unique identifier for each instance of the Product Collection block. This change involves several key modifications:
1. **Block JSON Update**: Added a new `id` attribute in `block.json` to store the unique identifier for each block instance.
2. **Product Collection Content Update**: In `product-collection-content.tsx`, we utilized the `uuid` library to generate a unique ID. This is done in a `useEffect` hook, ensuring that each block instance receives a distinct ID upon initialization.
3. **Type Definitions**: The `ProductCollectionAttributes` interface in `types.ts` was updated to include the new `id` attribute, aligning with our enhanced data structure.
4. **Package Dependencies**: To support this feature, `@types/uuid` and `uuid` were added to `package.json`, ensuring we have the necessary tools for ID generation.
This enhancement is pivotal for uniquely identifying each Product Collection block, paving the way for more robust and individualized block handling in the future.
* Rename uniqueId to id
* Add lock file
* Add 'id' context to product collection and template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Merge trunk with 42861-introduce-a-unique-identifier-for-each-product-collection-block
* Regenerate the lockfile
* Remove autogenerated change in plugins/woocommerce/package.json
* Regenerate lock file
* Rerun CI actions
* Delete pnpm-lock.yaml file & regenerate it using pnpm install command
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: add unit test
* Add changefile(s) from automation for the following project(s): woocommerce
* fix description
* Enable TT4 when the customize your store process starts
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add refund order to unit test.
* Remove buggy defensive check since existance of order is already verified.
* Changelog.
* PHPCS fixes.
* Added more assertions after cleanup to verify cleanup worked.
* Remove the experimental flag from the Product Gallery block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add test to Product Collection - featured products filters
* Open Featured option before trying to set it up
* Add test for Created filter
* Add missing awaits
* Add tests for a price range filter
* Add explanation to test step
* Update the conditions for created filter
* Add changelog
* Change leftover values
* Empty commit - trigger CI
* Add the UX element dropdown for search box.
* Add unit test for search_filter param.
* Add support for search filter in search query for better performance.
* Link search_filter dropdown with query param.
* Fix conflicts.
* Reformat to allow adding more filters in future.
* Fixing margin in the search filter box.
* Fix merge conflict.
* Apply linting.
* Add changelog.
* Apply PR suggestions.
* Grammer fixes.
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Styling/spacing
* Update webpack config
* Register heading pattern
* Wrapper block type definition
* get_fields_for_location return fields in array format
* Use wrapper in default content
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* remove info block from wrapper
* Revert render_content to original
* rename block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update styling
* Create shared get_order_additional_fields_with_values to format values
* Update block names and descriptions
* Show address placeholders
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Unused import
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: add unit test
* Add changefile(s) from automation for the following project(s): woocommerce
* fix description
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update copy for CYS intro screen sidebar
* Add changefile(s) from automation for the following project(s): woocommerce
* Avoid using variables in __()
* Add missing period
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Migrate mini cart tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Adjust broken e2e test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add new spec for checking comments on a post
* Add changelog
* Update locators to use geBy methods
* Update locators to use geBy methods
* Fixed strict mode violation
* Change HPOS and non HPOS e2e tests to use 5 shards each
* Add changelog
* Update numbering
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
This bumps the version to 0.14.3 so that we can take advantage of some
upstream improvements. It also makes some changes to the way our
builds and watches work to minimize the number of unnecessary
Node processes involved in the execution.
* Product Gallery: Update div elements to ul and li for better accessibility
* Product Gallery: Add changelog files
---------
Co-authored-by: roykho <roykho77@gmail.com>
Unfortunately, it looks like we need to build in order
to be able to lint. This makes sense since some
projects will lint imports from others that haven't
been built yet.
* Add "No AI" banner image and center banner content
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add test to check Product Collection filtering by tags
* Set single product out of stock and unskip the test for stock status
* Add changelog
* Use more specific selector
* Update variables holding products in products.sh to keep the same convention
* clarify comment in maybe_sync_order
* Add changefile(s) from automation for the following project(s): woocommerce
* appease the linter
---------
Co-authored-by: github-actions <github-actions@github.com>
This adds support for using the `pnpm utils ci-jobs` command in our `ci.yml` file. One of the bigger benefits to this change too is that we're now distributing a bundled version of the utils tool. This lets us run it without actually having to install the repo and will let us speed up any workflows that currently do.
* Remove variable-product-template from the product template list
* Add changelog files
* Redirect the variable product to the new experience now that is does not have a product template anymore
* Fix php linter error
* Prevent body from scrolling when pop-up is open
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add namespace to the modal-open css class
* Fix class name for the Product Gallery block
---------
Co-authored-by: github-actions <github-actions@github.com>
* Do not sanitize WooCommerce Subscriptiion column HTML in Settings > Payments methods table
* Add features supports entry to pseudo-gateway WCPay Promotion
* Add changelog
* Add changelog entry for woocommerce-admin
* Lint fixes
* Move ProductTemplate type
* useProductTemplate
* Use useProductTemplate
* Use useLayoutTemplate
* Handle if window.productBlockEditorSettings doesn't exist
* Unit tests for useProductTemplate
* Fix fallback in useProductTemplate
* Remove layoutTemplates from ProductEditorSettings on client
* Fallback to simple-product layout template
* Unit test to verify the standard product template is used if product type is variable
* Use standard product template if product type is variable
* Unit test to verify product type is used to match if product template id matches a template with a different product type
* Make sure product type matches on product template, unless variable, in which case we match simple
* Remove layoutTemplates and layoutTemplateEvents from global
* Changelog
* Changelog
* Import types only
* Call the `/wc/private/ai/patterns` to remove the `patterns_ai_data` post from the db
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: fix php warning raise by the Product Collection block
* fix typo
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix Mini-Cart price disappearing on hover
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix notice template overwrites
* Add changefile(s) from automation for the following project(s): woocommerce
* Bump template versions
* Changing template version numbers to 8.5.0 as they haven’t been touched
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add `wp wc hpos status` command
* Add helper method to build order from different datastores
* Add helper method `get_diff_for_order()` to compare orders between datastores
* Add CLI tool `wp wc hpos diff` to compare an order between datastores
* Add changelog
* PHPCS fixes
* Better format for dates
* Add test for scheduled date start
* Add more test around product sales.
* Simplify sales check + also check product sale price is changed.
* Apply conding standards.
* Add changelog.
* Revert changes added in 39948 with explanation.
* Revert changes added in 39948 with explanation.
* CYS - Core: Setup the site with a default homepage when the assembler is loaded
* CYS - Core: Implement route guards
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Playwright migrated test file bootstrap and first test for local pickup
* Added page reload to force a new render
* Updated test description
* WIP: figuring out the fake input checkbox
* WIP: figuring out flaky state of local pickup enabled
* Fix flakey enable/disable local pickup
* Migrated remaining local pickup tests to Playwright
* Removed deprecated E2E
* Added changelog
* Corrected linting errors
* Fixed playwright/no-element-handle lint error
* Replace CSS IDs and classes with recommended built in locators
* Remove obsolete function calls
---------
Co-authored-by: Niels Lange <info@nielslange.de>
* Add e2e tests to verify Products by Category/Tag/Attribute templates default to Product Catalog template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add few E2E tests to cover half of the milestone
* Improve welcome modal closing
* Add new test scenarios
* Add more tests to cover creating account and shipping
* Update shipping zone labels to fulfil latest design changes
* Add tests for checkout block coupons and cart block coupons
* Remove only flag leftover
* Add checkout block tax tests and merge with cart test
* Update selectors to match checkout page
* Update checkout block test and comment scenario until issue resolved
* Remove only leftover
* Update checkout block test
* Improve filling shipping and billing checkout
* Create order via API with coupon
* Include checkout filling util helper
* Update test to use get by role for alerts
* Remove only leftover
* Adjust scenario for placing an order as a customer
* Improve existing customer placing order scenario
* Add util helper for adding products to cart
* Remove leftover from testing
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Try sharding e2e tests
* Update reporter for merge
* Add changelog
* Change to trigger CI
* Update job name to match existing run
* Install with dependencies
* Set working directory
* Only run 2 workers at a time on CI
* Try single run, but 6 shards
* Simplify welcome modal closing util helper
* Switch to more simpler way of closing welcome modal
* Fix flakiness in create shipping zone test
* Try 10 shards
* Drop CI retries to 2 from 4
* Update path to reports
* Fix syntax error in GH file
* Remove working directory
* Update directories
* Path again
* Use Allure dir
* Fix merge step
* Install dependencies
* Setup repo in report merge
* Commands to merge reports
* Set working directory
* Update actions
* Name upload artifacts
* Just numbers for shards
* Update matrix
* Need to redeclare env variables
* Update file paths for merge step
* Remove working directory for merge step
* Try absolute paths
* Missed a path
* Put all artifacts in single download folder
* Tweak download action
* Might not have to merge reports
* Fix typo
* Update path for summary report
* Update results paths
* Tweak condition
* Add step to check success of matrix run
* Remove ternary per feedback
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Veljko <veljano@yahoo.com>
* Add e2e tests for user customization of block templates
* Update instructions to run Playwright e2e tests
* Code cleanup
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create revertTemplateCustomizations util
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix PHP warning related to logging default severity threshold
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Force marketing menu items order.
* Add changelog.
* Make sure that Overwiev is present.
* Coupons should be always second.
* Update plugins/woocommerce/src/Internal/Admin/Marketing.php
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Update plugins/woocommerce/src/Internal/Admin/Marketing.php
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Use fallback for different languages.
* Use location as a fallback for names.
* Fix linting.
* Refactor.
* Remove unneded new line.
* Remove duplicated code.
---------
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Add MarketingRecommendations feature.
The code here is based on other feature with default fallbacks and with data source poller, e.g. see payment gateway suggestions.
* Use MarketingRecommendations feature in API.
* Add spec_key for MarketingRecommendationsDataSourcePoller.
If we don't specify it, the default is `id`, which is not used in our recommendation data, and this will cause things not to work as expected.
* Recursively convert object to array.
This is because all the subsequent functions work with arrays, not objects.
* Make recommended marketing tools and coupons use MarketingRecommendationsInit.
This is so that recommended channels, tools, and coupons make use of the same transient data with data source poller.
* Add changelog.
* Fix PHP lint issues.
* Add doc comment to fix lint error.
* Fix tests in MarketingRecommendationsTest.
* Replace recommendations.json file with generated data in DefaultMarketingRecommendations.
This is to have i18n support.
* Add icons for fallback marketing recommendations.
* Fix PHP linting issue.
* Fix linting issue.
* Fix failing tests with PHP 8.0.
* Remove unused replaced code in MarketingSpecs.
* Delete old marketing recommendations transient upon update to WC 8.6.0.
* Add changelog.
* Introduce the minimal block style for productDetails block
* Change the default style in the template
* Change the default template when using the transform-to-blocks button
* Cleanup
* Organize CSS selectors
* Add opacity on hover
* Fix specificity and add explanation
* Cleanup
* Changelog
* Add MarketingRecommendations feature.
The code here is based on other feature with default fallbacks and with data source poller, e.g. see payment gateway suggestions.
* Use MarketingRecommendations feature in API.
* Add spec_key for MarketingRecommendationsDataSourcePoller.
If we don't specify it, the default is `id`, which is not used in our recommendation data, and this will cause things not to work as expected.
* Recursively convert object to array.
This is because all the subsequent functions work with arrays, not objects.
* Make recommended marketing tools and coupons use MarketingRecommendationsInit.
This is so that recommended channels, tools, and coupons make use of the same transient data with data source poller.
* Add changelog.
* Fix PHP lint issues.
* Add doc comment to fix lint error.
* Fix tests in MarketingRecommendationsTest.
* Replace recommendations.json file with generated data in DefaultMarketingRecommendations.
This is to have i18n support.
* Add icons for fallback marketing recommendations.
* Fix PHP linting issue.
* Fix linting issue.
* Fix failing tests with PHP 8.0.
* Remove unused replaced code in MarketingSpecs.
* Remove unneeded false check.
This is because `is_array` would return `false` when `false` is being passed as the argument.
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Do not access change_feature_enable() statically. Closes#43175. Copy of @helgatheviking's cd71d08577.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Centralize log level labels
* Fire an action specific to loading the Logs tab
* Functional settings screen (no way to navigate to it yet)
* Deprecate wc_register_default_log_handler
* Hook up the settings
* Add section nav
* Add an action hook to the settings form
* Rename render_page method to render_form
* Scaffold the unit tests
* Remove logging enabled check from WC_Logger construct
Caching the enabled setting value turns out to not be a great idea,
it breaks some tests, and could cause issues if the setting value
changes, and then a logging event happens later in the same request.
WP has its own caching layer for options anyway, but one that will
update if the value of the option changes. So this just makes the
enabled check directly from the should_handle method.
* Add most unit tests. Still needs a couple more
* Add remaining unit tests
* Update since values on new hooks to 8.6.0
* phpcs cleanup
* Change deprecated tag from 8.5.0 to 8.6.0
* Add missing return types to unit tests
* Add changelog file
* Add missing clear method to new log file handler
* Change level_threshold default value to 'none'
* Ensure logger has a valid level threshold set, regardless of level given
* Update legacy unit test
* Ensure settings only saved on settings view
* Add settings sections for filesystem and database
Also add a filesystem setting for collapsing log entry lines.
* Add public LoggingUtil class for external usage, and use in WC_Logger
* Remove unused import
* Deprecate wc_get_log_file_path and wc_get_log_file_name
* Preserve white space in log file lines
It turns out that several extensions add log entries that are just
a print_r of an array. Preserving the white space is important for
making this data legible (ideally they'd switch to adding this data
within the context parameter)
* More legacy unit test fixes
* Remove entry collapse option and functionality
It's unclear right now that entry collapsing provides much real
benefit, while it clearly does have some potential drawbacks if
extensions are in use that add print_r output to the log files.
* phpcs cleanup
* Yet more unit test tweaks
* Remove unused code
* Don't wrap extra handler options in <code>, it gets excaped
* Attempt fix for WC_Tests_Logger::test_clear
This is only failing on GH CI, not when running locally. Maybe
ensuring all the created log files are deleted will help.
* Improve logging of fatal errors
This improves the formatting of error messages caught and logged
during shutdown to be more legible and to take advantage of the
logging method's context parameter. With this change, the log entry
will be a simple message on one line, and any stack trace will be
available but hidden in an "Additional context" details element.
* Tweaks to some settings' wording
* Update webooks link to logs, undeprecate
* Remove `realpath` usage since it deos not work if log directory does not already exists.
---------
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Remove custom styles from button
* Avoid php warning about images and slug not defined
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Redirect supported product types to the new experience based on the product template associated to it
* Add changelog file
* Fix linter error
* Redirect using the product type first and then the associated product template
* Set the product template id also for unsupported product templates
* Add changelog file
* Remove supported_product_types from the RedirectionController since the product_templates is used instead
* Fix php linter error
* Remove v1 of plugin installer.
* Rename WC_REST_WCCOM_Site_Installer_Controller_V2 into WC_REST_WCCOM_Site_Installer_Controller.
* - Create base controller for WCCOM Site requests, extended by Installer and SSR controllers.
- Switch get SSR endpoint to v2 namespace.
* Remove namespace property from Installer controller.
* Linting.
* Add changefile(s) from automation for the following project(s): woocommerce
* Switch request method of reset install endpoint to POST (#43150)
- Switch reset installation state request to POST.
- Change wccom-site API namespace to v3.
* Exclude deleted files from linter check (#43355)
Exclude deleted files from linter check.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rename media setting to "Open pop-up when clicked"
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix "rm: .git/hooks: No such file or directory" error in `pnpm install`.
* Add changelog.
* Use "rm -rf" instead of "test" command on .git/hooks directory.
We use the "-f" flag so that it does not throw error when the directory does not exist.
* Try reducing blocks build size
* Add changefile(s) from automation for the following project(s): woocommerce
* Only set NODE_ENV if its not already defined
---------
Co-authored-by: github-actions <github-actions@github.com>
- Use `referrer` & `source_type` field names consistently
Remove the need to translate it back and forth.
- Make fields actually extendable using `wc_order_attribution_tracking_fields`.
Propagate the field configuration to the client side as well.
Disambiguate fields in variables and functions.
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
* Add product search field to the linked product list block
* Add empty state to the linked product list block
* Fix AdviceCard styles
* Create skeleton for the linked product list block
* Fix linter errors
* Move the product list skeleton to the product list component folder
* Revert AdviceCard changes
* Remove upsells and cross-sells block to use linked-product-list block instead
* Add changelog files
* Hide sale badge if product image is disabled
* Fix css target to cover all product grid
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Hide on sale badge via PHP side
* Remove css changes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Return the correct empty images response
* Use the correct structure in the images endpoint response
* Add changefile(s) from automation for the following project(s): woocommerce
* Throw error when no images and the store is already ai generated
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix - Product Button: don't trigger old add to cart function when the button is clicked on classic themes
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* improve E2E tests
* update changelog
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* update changelog
* use beforeEach
---------
Co-authored-by: github-actions <github-actions@github.com>
* Product Gallery: Use @container rule to adjust overlay link count font size
* Add changelogs
* Remove em from line height
* Make view all link smaller
* Delete woocommerce-gutenberg-products-block.php file
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix commands with tags breaking the command palette
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Move the switch to classic shortcode block button to separate component
- Move modal component file from incompatible-extension-notice component folder to switch-to-classic-shortcode-button folder.
- Rename modal component file to model-content component file.
- Move the switch to classic shortcode block button to separate component folder
* Update generic incompatibility notice
- Update the notice description.
- Add switch to classic shortcode block button to the notice.
* Fix margin in editor.scss
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update class names in switch-to-classic-shortcode-button component
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update plugins/woocommerce-blocks/assets/js/editor-components/switch-to-classic-shortcode-button/editor.scss
Co-authored-by: Niels Lange <info@nielslange.de>
* Refactor SwitchToClassicShortcodeButton component
* Fix css lint erros
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add type property to notice events
* Refactor switch to classic shortcode button logic
* Use isCart for switchButtonLabel and snackbarLabel
* Remove empty div in sidebar compatibility notice component
* Refactor switch to classic shortcode button event handling
* Adjust wording
* Adjust marging and readability
* Introduce union for SwitchToClassicShortcodeButtonProps type prop
* Simplify logic
* Use proposed text
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Corrections to HTML markup of settings controls
* Remove deprecated `valign` attributes from table row elements
* Remove orphaned quotation marks from the end of table row elements
Co-authored-by: Sagehen Studio <2924107+sagehenstudio@users.noreply.github.com>
* Enable title prop for `info` setting type
This gives the `<th>` for the info setting type a closing tag
since its not self-closing. It also allows for adding a `title` prop
to the info setting type, to match all the other setting types.
* Add changelog file
* phpcs cleanup
---------
Co-authored-by: Sagehen Studio <2924107+sagehenstudio@users.noreply.github.com>
* introduce packages/js/data/src/user/types.ts pref
* be able to dismiss the Upsells advice
* rename user pref key
* typify product_advice_card_dismissed prop
* store is dismissed state in the user pref
* delegate the dismiss state to the component
* changelog
* remove console.log :'(
* fix TS issue
* fix TS issue
* changelog
* Create and register product-linked-list-field block
* Add upsells and cross-sells blocks to the simple product template
* Create formatted price component
* Add linked product table to the linked product list block
* Add remove product button to each product row
* Add see product page button
* Add link to the product name so it can be edited in a new tab
* Fix some styles
* Add product search field to the linked product list block
* Fix styles
* Add changelog files
* Fix linter error
* Fix rebase conflicts
* Use useProductEntityProp instead of useEntityProp within product-linked-list-field block
* Move the product list to its own component
* Move the product select to its own component
* Move the product image to its own component
* Fix linter error
* Remove old noticed on classic checkout when applying coupon code
* Remove old noticed on classic checkout when applying coupon code
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show default patterns and products if the images request fails
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove space
* Simplify condition
* Removed unused call
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove the double quotes from the AI generated content before saving it
This will avoid having two consecutive double quotes and breaking the JSON.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add rating and change product card layout
* Fix some minor CSS bugs in existing code
* Implement skeleton loader
* Update theme card styling to match design
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix namespace
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Endpoint shell
* Single layout template route
* Add area query arg
* Fix BlockTemplateRegistry::get_registered() return type
* Check if templates are registered before registering
* Use json format for layout templates response
* Remove unused use
* Use json format for layout templates response for get_items
* Consolidate processing for get_items and get_item
* LayoutTemplateRegistry
* Fix matching by id
* Get templates from LayoutTemplateRegistry
* Remove unused method
* Fix typo in code doc
* Move template instantiation to registry
* Return template instance, not json when instantiating
* Use LayoutTemplateRegistry instead of BlockTemplateRegistry
* Add code docs for rest controller
* Fix code doc in BlockTemplateRegistry
* Code docs for LayoutTemplateRegistry
* Changelog
* Add code doc for LayoutTemplatesServiceProvider
* Unit test for registering a layout template
* Unit tests for invalid params when registering layout template
* Unit test for layout template instantiation
* Unit test for instantiating layout templates with query params
* Unit test for layout template instance caching
* Cache layout template instances
* Refactor layout template info querying
* Add unit test for layout template instantiation actions
* Add before and after layout template instantiation actions
* Use layout template ID for array key
* REST API unit test to get all items
* Unit test for unregister_all
* Method to unregister all layout templates
* REST API unit test to get all items for a specific area
* Fix to_json() in TestLayoutTemplate
* REST API unit test to get single item
* Fix get_item
* REST API unit test for single item with invalid id
* REST API unit test for get all items for invalid area
* Fix test_cached_instances - array access
* Test that old register hook is called
* Call old register hook
* Remove before hook (will put in separate PR)
* Fix occurrences where Installer_Error exception is returned instead of being thrown.
* Add changefile(s) from automation for the following project(s): woocommerce
* Add @throws tag in function comment.
- Stop tracking order attribution when the consent is revoked on the same page.
Switch `wp_consent_type_defined` to VanillaJS event, as this is what the latest Complianz dispatches.
Remove jQuery dependency.
5427807509
- Update checkout block data when consent is given/revoked on the same page
263d0b8a14
- Register WPConsentAPI integration for OrderAttribution
cde9f642a1
- Don't store empty meta values for order attribution
If no values at all are sent, don't create meta records
00b83eed00
- Don't translate or add parenthesis to unknown placeholder
bbc4b1f699
- Un-hardcode marketing category in wp-consent-api-integration.js
45014a715a
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
* introduce UserPreference panel
* render user preference panel
* expose UserPreferences type
* introduce force mode to update user pref
* rename global object with `__wcbt`
* changelog
* changelog
* Fix typo
* Fix `acceleratedReleaseDate` output
* Comment unnecessary steps, jobs
* Do only a dry-run
* Revert "Do only a dry-run"
This reverts commit a41ea99401.
* Revert "Comment unnecessary steps, jobs"
This reverts commit 97985a0ad0.
* Add changelog
* Prevent Command Palette scripts to enqueue unnecessary scripts in the editor
* Add changefile(s) from automation for the following project(s): woocommerce
* Properly set script asset dependencies
* Create util function to simplify the code
* Fix JS warning when registering WooCommerce Commands
---------
Co-authored-by: github-actions <github-actions@github.com>
* add: multiple select support to attribute dropdown
* fix: remove active filter from dropdown
* chore: remove unused extractBuiltinColor
---------
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
* Add e2e tests for image transition in Product Gallery block
* Create e2e tests for the Product Gallery block when it is inside the pop-up
* Add changelog
* Remove unnecessary lodash dependency import
* Increase product images width to 400 to have a better resolution
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* add: query filters count class
* chore: method comments
* refactor: rename class to QueryFilters
* fix: price filter count
* fix: price filter url
* chore: remove unnecessary transformation
* chore: remove unused meta query filter
* chore: put public methods on the top of the class
* fix: passing $wp_query
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* fix: stock query clause
* fix: handle and query type for attribute filter
* fix: ensure passing non null value to floor/ceil
* [Experimental] Collection Filter blocks: ensure the namespace is always rendered (#43112)
* fix: ensure the namespace is always rendered
* fix: target only wc queries
* fix: properly reset part of query to make new filter blocks work with Product Collection block
* Revert "Trigger event `experimental__woocommerce_blocks-cart-add-item` in the SSR Product Button vis Interactivity API (#42946)"
This reverts commit 4fec136da1.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update woocommerce.com URLs in documentation and code files
* Add changelog
* Fix github repository link in extend-rest-api-add-custom-fields.md
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Add github reporter (#42974)
* Add github reporter
* Add changelog
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix product task redirect to support grouped and external products (#43051)
* Rearrange product redirection logic to better accept grouped and external produc types
* Add changelog
* Modify feedback modal actions (#43005)
* Adapt feedback modal actions
* Add changelogs
* Modify comments
* Fix tests
* Fix test
* Update class-wc-gateway-bacs.php (#43054)
* Update class-wc-gateway-bacs.php
Fix typo in textdomain
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* [Product Block Editor]: Add `Linked product` tab (#43009)
* add linked-products to group IDs
* add Linked Products tab
* tweak hideConditions condition
* changelog
* fix typo in doc comment
* Introduce a product type selection within the new experience (#41823)
* Create a relation between the product type and the product block template
* Add 'patterns' to name the kind of products that can be created for a specific template
* Resolve template using its id as a template query param
* Rename ProductEditPattern to ProductTemplate
* Rename get_patterns hook to woocommerce_product_editor_get_product_templates
* Return the list of templates to the client
* Set layout template events as array
* Register the layout template based on the product template or the post type in case of product variations
* Registering non supported product types
* Create and register the woocommerce/product-details-section-description block
* Add the product type to the section description
* Create product type selector
* Fix menu item style
* Highlight selected menu item
* Set the selected product template
* Set product template title to lowercase in the content description
* Rename blocks by blockTemplates under the AbstractBlockTemplate class
* Rename to woocommerce_product_editor_product_templates filter
* Remove product_template_ prefix from the supported_product_types map
* Rename get_formatted to to_JSON and convert the props to client side like
* Refactor get_product_templates
* Fix icon resolution
* Add a confirmation modal for unsupported product templates
* Add changelog files
* Remove product types using for testing
* Fix redirection when changing to a non supported product template
* Set the change button state to busy when it is saving the product
* Fix php linter errors
* Fix rebase conflict
* Move ProductTemplate to Automattic\WooCommerce\Admin\Features\ProductBlockEditor namespace
* Add the to_json definition to the BlockTemplateInterface
* Create default product template by custom product type if it does not have a template associated yet
* Fix some comments and product template creation validation
* Add support to load the product template icon from an external resource
* Fix php linter
* Fix the changelog description
* [Experimental] Interactivity Dropdown multi-select mode, ratings filter and introduce each directive (#42981)
---------
Co-authored-by: David Arenas <david.arenas@automattic.com>
* Introduce the transient files engine (#42877)
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Change marketplace install API request to POST instead of GET (#43033)
* Change marketplace install API to using POST instead of GET
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Prep trunk for 8.6 cycle (#43021)
Prep trunk for 8.6 cycle with version bump to 8.6.0-dev
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Add Playwright tests for All Reviews, Reviews by Product and Reviews by Category blocks (#42903)
* Remove Reviews blocks Puppeteer tests
* Minor code cleanup
* Typos
* Create publishAndVisitPost() editor util
* Fix subcategories when importing products in Playwright and add reviews
* Add Reviews blocks tests in Playwright
* More typos
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create a 'reviews' object in data.ts so we can store reviews data in one single place
* Update test so instead of creating a new post in each test, we go to the already-created post
* Add source comments to reviews data to match it with the script
---------
Co-authored-by: github-actions <github-actions@github.com>
* Release: Remove 8.5 change files (#43022)
Delete changelog files from 8.5 release
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
Co-authored-by: Alex López <alex.lopez@automattic.com>
* Delete changelog files based on PR 43033 (#43079)
Delete changelog files for 43033
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Delete changelog files based on PR 43051 (#43081)
Delete changelog files for 43051
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Interactive Price Filter: use `context` instead of `state` (#42980)
* feat: use context instead of state
* fix: temporary move the context to inner element for diffing to work
* fix: update context before navigation for optimistic UI
* Load google analytics gtag script asynchronously in WooCommerce Blocks (#43040)
Co-authored-by: github-actions <github-actions@github.com>
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build (#43074)
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Revert "Fix schedule sales error" (#43094)
Revert "Fix schedule sales error (#42700)"
This reverts commit 9b800aa179.
* [Product Block Editor]: add Linked product sections. First approach. (#43013)
* add Linked products, Upsell section
* changelog
* add Cross-lens section
* add links to the Upsell sections
* changelog
* fix lint issues
* fix lint issus
* fix linting issue :-|
* check whether the linked product group is defined
* [Product Block Editor]: introduce ShoppingBags component (#43042)
* add ShoppingBags component
* Add ShoppingBag story
* changelog
* Fix: Collection data being leaked between Collection Filters blocks (#43044)
* fix: CYS - change heading color (#43076)
* fix: CYS - change heading color
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Delete changelog files based on PR 43074 (#43118)
Delete changelog files for 43074
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* [Product Block Editor]: fix feature flag to hide the Linked products (#43119)
* fix flag to hide/show product editor
* changelog
* Add changelog
---------
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: Jonathan Lane <lanej0@users.noreply.github.com>
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: louwie17 <lourensschep@gmail.com>
Co-authored-by: Fernando Marichal <fernando.marichal@automattic.com>
Co-authored-by: Marc Guay <marc.guay@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Damián Suárez <rdsuarez@gmail.com>
Co-authored-by: Maikel David Pérez Gómez <maikel.perez@automattic.com>
Co-authored-by: Sam Seay <samueljseay@gmail.com>
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
Co-authored-by: Kyle Nel <22053773+kdevnel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
Co-authored-by: Alex López <alex.lopez@automattic.com>
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Fix: Enable Pagination Block Visibility in Product Collection Block
This commit resolves an issue where the Pagination block was not visible in the block insertor within the Product Collection block.
- The core query pagination block name, initially hardcoded, is now declared as a constant `coreQueryPaginationBlockName` in `constants.ts`. This change not only improves code readability but also ensures consistency in using the block name across different files.
- In `index.tsx`, the `addProductCollectionBlockToParentOfPaginationBlock` utility function from `utils.tsx` is imported and executed. This function plays a crucial role in the fix. It dynamically adds the Product Collection block to the parent array of the Core Pagination block, ensuring the latter's visibility in the insertor when editing the Product Collection block.
- The utility function employs WordPress hooks and version checks to gracefully handle different WordPress environments. This careful approach maintains backward compatibility while addressing the current issue.
With these changes, merchants can now easily add a Pagination block from the insertor while working on the Product Collection block, enhancing the user experience and functionality.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update product query block templates with WooCommerce namespace
It modifies the `<wp:post-template>` block in multiple files to include a new attribute: `{"__woocommerceNamespace":"woocommerce/product-query/product-template"}`.
The inclusion of the `__woocommerceNamespace` attribute is a strategic enhancement, ensuring that these block templates are explicitly recognized as part of the WooCommerce namespace.
This fix the issue where migration from Products beta block to Product Collection block doesn't work properly.
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Certain order properties (or metadata) are not relevant for HPOS verification. For example, `_edit_lock` which is an ephemeral key. So far we've been hardcoding these keys in various places. This provides a new API to access these keys. It also introduces hook `woocommerce_hpos_sync_ignored_order_props` which allows 3rd party code to add new keys to be ignored by sync/verification code.
Fixes#41907
* Migrate Backend mini-cart tests to Playwright
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Show rating stars for the cross-sells products
* Fix typo introduced in #43116 (#43148)
* Fix typo introduced in #43116
* Add changefile(s) from automation for the following project(s): @woocommerce/product-editor
---------
Co-authored-by: github-actions <github-actions@github.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update the neutral color palette to black and white.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove the last business description check to allow repetition.
* Create the new AIContent directory and update the structure and name of the classes.
* Ensure the store title is updated with new AI-generated content if the previous title was also AI-generated.
* Return if the images result in error.
* Update the name of the option for fetching the AI generated site title.
* Introduce the new adjust_image_size method for shared usage between products and patterns.
* Increase the quality of images used in patterns
* Introduce the ContentImageProcessor class.
* Undo PatternsHelper rename
* Add changefile(s) from automation for the following project(s): woocommerce
* Address lint errors
* Ask AI to summarize the business description if the number of characters provided by the user is bigger than 150 characters.
* Rename the ContentImageProcessor class to ContentProcessor and introduce the new summarize_business_description method.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Migrate PR to Core
* Migrate test changes
* Add Custom Collection with inherit query attribute disabled
* Update copy of Product Catalog collection
* Don't choose default active collection in polaceholder and remove highlight
* Remove inherit query option from inspector controls
* Add collection names to Product Catalog and Custom one
* Unify Collection Chooser between Modal and Placeholder
* Bring back util removed by accident
* Replace the translations domain with woocommerce
* Remove leftovers after merge
* Add pagination and no results to Product Catalog and Custom collections
* Revert textdomain change
* Fix lint error
* Add changelog entry
* Change collection label
* Bring back Inherit query from template
* Remove Custom collection and bring back single Product Collection
* Simplify applying collection
* Make sure Inherit query from template is enabled in archive templates by default and disbaled in posts/pages
* Change incorrect Playwright locator
* Add test for Product Catalog inheriting the query in product archive
* Add tests for recommendation collection hiding the predefined filters
* Add reviews to multiple products
* Update expected products in Top Rated
* Remove rating creation in test env and skip undeterministic tests
* Add skip to Best Sellers test
* Update README.md
* Add more keywords to collections, like 'product collection' to recommendation collections
* Rephrase the README note about Collections registration
* Simplify types
* Rename unchangeableFilters to hideControls
* Fix typo in file name
* Remove 'pattern' references from toolbar files
* Replace hardcoded SCSS color with wc variable
* Remove changelog file from different PR
* Move hideControls to Product Collection ayttributes
* Improve responsiveness of columns in Product Collection Placeholder
* Use admin color pallette in Product Collection Placeholder
* Move Inherit query from template to the top of Inspector Controls
* Change the Collection prefix to woocommerce rather than woocommerce-blocks
* Simplify Placeholder and Modal styles
* fix: CYS - change heading color
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* feat: use context instead of state
* fix: temporary move the context to inner element for diffing to work
* fix: update context before navigation for optimistic UI
* Remove Reviews blocks Puppeteer tests
* Minor code cleanup
* Typos
* Create publishAndVisitPost() editor util
* Fix subcategories when importing products in Playwright and add reviews
* Add Reviews blocks tests in Playwright
* More typos
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create a 'reviews' object in data.ts so we can store reviews data in one single place
* Update test so instead of creating a new post in each test, we go to the already-created post
* Add source comments to reviews data to match it with the script
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change marketplace install API to using POST instead of GET
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create a relation between the product type and the product block template
* Add 'patterns' to name the kind of products that can be created for a specific template
* Resolve template using its id as a template query param
* Rename ProductEditPattern to ProductTemplate
* Rename get_patterns hook to woocommerce_product_editor_get_product_templates
* Return the list of templates to the client
* Set layout template events as array
* Register the layout template based on the product template or the post type in case of product variations
* Registering non supported product types
* Create and register the woocommerce/product-details-section-description block
* Add the product type to the section description
* Create product type selector
* Fix menu item style
* Highlight selected menu item
* Set the selected product template
* Set product template title to lowercase in the content description
* Rename blocks by blockTemplates under the AbstractBlockTemplate class
* Rename to woocommerce_product_editor_product_templates filter
* Remove product_template_ prefix from the supported_product_types map
* Rename get_formatted to to_JSON and convert the props to client side like
* Refactor get_product_templates
* Fix icon resolution
* Add a confirmation modal for unsupported product templates
* Add changelog files
* Remove product types using for testing
* Fix redirection when changing to a non supported product template
* Set the change button state to busy when it is saving the product
* Fix php linter errors
* Fix rebase conflict
* Move ProductTemplate to Automattic\WooCommerce\Admin\Features\ProductBlockEditor namespace
* Add the to_json definition to the BlockTemplateInterface
* Create default product template by custom product type if it does not have a template associated yet
* Fix some comments and product template creation validation
* Add support to load the product template icon from an external resource
* Fix php linter
* Fix the changelog description