* 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
* 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>
* Use clientHeight to set the correct marginTop -- height is not a valid property
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show the ai offline modal independently from the onboarding tour
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove log
* Fix tests
* Add customizing parameter to avoid showing the aioffline modal when customizing
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add `date_type` parameter to revenue stats API for overriding the date type column.
* Update coding styles.
* Add changelog.
* Validate `date_type` value with strict matching.
* Add test cases for passing a valid/invalid `date_type` parameter.
* Remove extra validation on `date_type` value as it's already validated at the API level.
* Check for each allowed value of `date_type` in the test case.
* Fixed count() warning on invalid data supplied by the filter.
* Add changefile(s) from automation for the following project(s): woocommerce
* Removed unnecessary if
* Ordered comment to match if-clause
* Clean up old notice styles
* Adjust vertical marging for error list items on TT theme
* Add changefile(s) from automation for the following project(s): woocommerce
* Delete obsolete CSS file
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add price range filter to Product Collection block
This update introduces a price range filter feature to Product Collection. Changes include:
1. Constants Update:
- Added `priceRange` as undefined in `DEFAULT_QUERY` and `DEFAULT_FILTERS` in `constants.ts`.
2. Style Adjustments:
- Added CSS for `.wc-block-product-price-range-control` in `editor.scss` to align the input text to the end.
3. Component Integration:
- In `inspector-controls/index.tsx`, the `PriceRangeControl` component is now imported and integrated.
4. New Components:
- `PriceTextField.tsx` and `PriceRangeControl/index.tsx` have been created to handle price range inputs in the Product Collection block.
5. Backend Integration:
- `PriceRange` interface added in `types.ts` for type support.
- In `ProductCollection.php`, a filter (`add_price_range_filter`) is added to modify the main query based on the price range, including adjustments for tax considerations.
Overall, this enhancement allows users to filter products within a specific price range. The backend adjustments ensure that the filtering respects tax settings and displays accurate prices.
* Fix formatting
* Fix: Price range filter not working on Editor
* Improve: Share logic between Frontend & Editor
* Add changelog
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Remove duplicate changelog file
* Enhanced Input Control for Price Fields
Key changes include:
1. **Switch to Input Control**: Replaced the NumberControl component with the more versatile InputControl. This offers better handling of currency formatting and user input.
2. **Currency Formatting Logic**: Added robust logic for formatting numbers according to the currency settings. This includes handling thousand separators, decimal places, and currency symbols.
3. **String-to-Number Conversion**: Implemented a function to convert user-entered strings back to numbers, accounting for currency symbols and separators. This ensures accurate parsing of user input for processing.
4. **Input Handling Improvements**: Modified the onChange handlers for minimum and maximum price inputs. Now, they correctly handle edge cases like undefined or zero values, maintaining consistency in the user interface and data processing.
* Refactor price range query handling
1. Introduction of a new method `get_price_range_query_args()` to encapsulate the logic for handling price range queries, especially for the two edge cases:
- Prices excluding tax displayed including tax.
- Prices including tax displayed excluding tax.
2. Removal of direct conditionals in the `get_query_results()` method, replacing them with a call to the new `get_price_range_query_args()` method. This makes the code more modular and easier to understand.
This refactor enhances readability and maintainability of the code, ensuring that special cases in price range filtering are handled more effectively.
* Remove unnecessary suffix prop
* Refactor PriceTextField formatting logic for currency
1. Conditional application of thousand separators: The code now checks for the existence of `currency.thousandSeparator` before applying it. This prevents potential errors when the separator is undefined.
2. Simplified decimal separator handling: Introduced a fallback for the decimal separator, defaulting to a period ('.') if not specified by the currency settings.
3. Enhanced readability and documentation: Added comments to clarify the purpose of code blocks, especially where currency symbols are added or removed, and where value normalization occurs.
4. Function renaming for clarity: Renamed `formatValueWithCurrencySymbol` to `formatCurrency`, which better reflects its purpose.
* Fix onBlur issue with PriceTextField component
Refactored the PriceTextField component to utilize useState for better state management. This change introduces a local state variable, 'newValue', to store the current value. The state updates occur in the handleOnChange function, ensuring that the component's state is managed efficiently. Additionally, a new function, handleOnBlur, is implemented to handle the onBlur event, updating the component's state when focus is lost. The handleEnterKeyPress function captures the 'Enter' key press, providing a more user-friendly experience by allowing users to confirm their input with the Enter key.
* Fix linting error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Better align excluded order statuses with WC Reports
* Update Tracks data to match updated customer order history count
* Add changelog
* Clarify code comment
* Exclude `checkout-draft` for block checkout/API orders.
* Remove unecessary array_map
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Use existing method to get un-prefixed order statuses
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Add utm_category to discover page
* Fix product category URL params
* Add changefile(s) from automation for the following project(s): woocommerce
* Update productCategory to productGroup in Discover and NoResults components
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Simran <simran.kaur@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* use `method_title` for the email to the admin as that is better suited for an admin context
* do not require the title to be set in the updated option
* add the changelog file
* adjust the test, too
* appease the linter
* CYS - select the right font with AI offline
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - reset products and pattern when the site doesn't have AI generated content
* Add changefile(s) from automation for the following project(s): woocommerce
* fix lint
---------
Co-authored-by: github-actions <github-actions@github.com>