* 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>
* Trigger event experimental__woocommerce_blocks-cart-add-item in the SSR Product Button vis Interactivity API
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update code comment and add reference to the followup issue
---------
Co-authored-by: github-actions <github-actions@github.com>
* Installer url API
* Redirect if installer not available
* Remove paid product autoinstall support
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add logging and admin noticing for rest api usages
Two new settings are added (UI in the Legacy API settings page):
- woocommerce_legacy_api_log_enabled
- woocommerce_legacy_api_usage_notice_enabled
When any of the two are enabled, legacy API usages are stored
in two options, 'wc_legacy_rest_usages' and 'wc_legacy_rest_last_usage'.
'wc_legacy_rest_usages' is a dictionary keyed by user agent,
each entry is in turn a dictionary keyed by request route,
items are arrays containing first and last usage dates as well
as total usages count (API version is logged too but for simplicity
it's not used to key the data).
'wc_legacy_rest_last_usage' contains the entry for the last usage,
regardless of user agent and route. It's used to display the notice.
When 'woocommerce_legacy_api_usage_notice_enabled' is enabled,
and the 'wc_legacy_rest_last_usage' option exists, an admin notice
displaying its contents is shown.
* Add changelog file
* Linting fixes
* Fix unit test
* Simplify the approach to logging/noticing:
- Remove settings
- Use a transient instead of an option for temporary data
- Store temporary data by user agent but not by route
- Make the admin notice dismissable
- Don't log now show the notice if the legacy REST API extension
is installed and active
- Add a filter to explicitly disable the logging
* Small fixes, including a missing "exit" after request processing
* Apply suggestions from code review
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Fix linting issues
* Update the warning text under the "Enable legacy REST API" setting
* Change the rules to display the notice.
Now it won't appear if the transient isn't available
or if the Legacy REST API is disabled (or if the Legacy REST API
extension is active, as before); but if the user hasn't
explicitly dismissed the notice it will appear again if the transient
is recreated or the Legacy REST API is enabled again.
---------
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Add the source type / origin of "Web admin" for orders created in admin
* Include "Web admin" in values for Order information metabox
* Include "Web admin" value for the Order information metabox
* Use the Order Origin meta value in the Origin column of the Orders table
* Add web admin and direct as origin values, and a flag for un/translated
* Use the untranslated origin_label value in Tracks
* Don't store the origin label in the database to allow better l10n
* Lowercase origin label in Tracks
* Empty label and Direct or Web admin as source for orders table column
* Better Tracks customer order count and include customer status
* Add changelog
* Update test to expect Unknown
* Remove short ternary
* Change OA meta box title to Order Attribution
* Use native order method `get_total_refunded`
* Simplify origin labels - use the same value for Orders Edit and table
* Correct imprecise doc comment.
* Improve customer order count and total spend calculation
* Make default label "Unknown" (for pre-OA orders, for example)
* Update tests to match new labels
* Hide Marketplace feature toggle UI
* Ensure marketplace feature is active in DB on all sites
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove duplicated text
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Don't access the keys of what is now just an array
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Adds missing aria-label and tabindex HTML attributes to the Help tip element for "Product data" on "Add new product" page.
* Escape HTML tags
* Added changelog
* Update comment
* Amend method for selecting "New attribute" placeholder.
* Restore use of `getByRole()` and select first instance (two are being matched, in some cases).
* Use last match (in some test runs, `getByRole()` is unexpectedly matching more than 1 heading.
---------
Co-authored-by: Sagar Tamang <mi5t4n@gmail.com>
* docs: Compatibility Layer - update documentation about woocommerce_single_product_summary
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Reviews by Product block: fix encoded in input aria-label
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make extended fields optional in Store API
* add tests
* add changelog
* update logic in validate function
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* add: active filters block
* update text domain
* chore: linting
* use template string instead of concat
* add experimental flag to register block type calls
* chore: update comments
* feat: register active rating filter data
* fix: unique navigation id when collection filters are added outside product collection
* fix: active filter rating id
* fix: return the href
* chore: phpcs
* Introduce `LegacyDataHandler` for handling legacy orders in the HPOS datastore
* Add methods to count and obtain orders subject to cleanup
* First pass at metadata cleanup for orders
* Add unit tests
* Implement `wc hpos cleanup` CLI tool
* Make PHPCS happy
* Add changelog
* Change error to warning
* Improve tests
* Fix unit tests
* Allow cleaning up of placeholders with meta
* Add support for `--force` flag
* Update plugins/woocommerce/changelog/enhancement-41914
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/src/Database/Migrations/CustomOrderTable/CLIRunner.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/src/Database/Migrations/CustomOrderTable/CLIRunner.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Exclude auto-draft
---------
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.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
* 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
* 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
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* add mask-image
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Allow for line breaks within log messages so they can be easier to read when they contain a lot of content.
Based on a suggestion in #27758
Co-authored-by: Moritz Meißelbach <4208996+Biont@users.noreply.github.com>
This fleshes out the LogHandlerFileV2 class that was introduced back in #40662. It no longer extends the original file log handler, but works as a standalone. To realize the improvements in the handler class, lots of improvements are also made to the File and FileController classes.
Notable enhancements in this handler class vs the original one:
* Better algorithm for determining the "source" of a log entry when none is provided.
* Normalizes the source property of a log entry so that variations in capitalization will still result in the same value.
* Improves file rotation behavior so that it will consistently increment each rotation up by one.
* Formats log messages to remove line breaks, so that each line of a log file is an entire entry.
* To complement this, data from the $context parameter is added to the log entries, and displayed in the log file viewer as prettified JSON, hidden behind a `<details>` element. Thus, each log entry can be expanded to show the context data, but it won't dominate the screen in the log viewer by default.
Fixes#41561
* Extract 'downloadable product' class and include it for API endpoint calls as well
* Re-add mediauploader component
* Restore UploadFilesMenuItem
* Provide additionalData type
* Restore MediaUploader component
* Lint PHP
* Add changelogs
* Update pnpm-lock
* Revert "Update pnpm-lock"
This reverts commit b61ee5813aa0b7b8b1ea8e71423bedbb6f876139.
* Revert pnpm-lock.yaml
* Fix unit tests
* Use WC_ABSPATH
* Revert "k6 perf tests: Fix parsing of COT/HPOS environment variable (#40930)"
This reverts commit 50c56d8427, reversing
changes made to cbc3bac88c.
* Address potential rXSS vulnerability in the product-reviews-have-moved notice.
* Changelog.
* Restore button-based approach for notice dismissal.
In the context of this edit comments screen, it looks better as a button (than as a link, which would require extra CSS to support).
* Tidy.
* Update tests: reviews-have-moved notice HTML has been updated.
* Modify form-based approach following code-review feedback.
---------
Co-authored-by: barryhughes <3594411+barryhughes@users.noreply.github.com>
* add matching image by sku exp feature
* attach featured image in rest api
* add CSV import support
* include changelog
* update from feedback- move to products advanced settings
* address phpcs
* bump @since to 8.5.0
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Add tracking when opening or searching in the Command Palette
* Add changefile(s) from automation for the following project(s): woocommerce
* Add 'origin' property to all Command Palette events
---------
Co-authored-by: github-actions <github-actions@github.com>
* Marketplace: refresh subscriptions in if "install" parameter exists
* Marketplace: handle loadSubscriptions or refreshSubscriptions failing
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* revert test to what it was
* Default to text, if the type supplied is not supported throw an error
* Add type for options
* Return null if somehow the select made it through without options
* Make select fields type enum and add options to schema
* Lint fixes
* Update plugins/woocommerce-blocks/assets/js/base/components/cart-checkout/address-form/address-form.tsx
Co-authored-by: Niels Lange <info@nielslange.de>
* Update plugins/woocommerce/src/Blocks/Domain/Services/CheckoutFields.php
Co-authored-by: Niels Lange <info@nielslange.de>
* Update checks to log errors and fail gracefully
* Add field id to class names
* Fix lint error
* Fix short array use
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* Default to text, if the type supplied is not supported throw an error
* Lint fixes
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* add support for registering checkboxes
* remove extra error log
* add styling
* fix rebase conflit
* fix rebase conflit 2
* fix linter errors
* address review comments
* add warning for checkbox
* fix changes
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* Remove padding for the products query with background
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* First pass at Playwright test migration
* Set working directory
* Remove exec
* Configure the environment before testing
* Remove filter
* Update paths for tests
* Try explicitly stating working-directory
* Change tests directory
* Try running all tests
* Uncommented project
* Update commands to run tests
* Comment out env config
* Uncomment
* Changelog
* Set up multiple test configurations
* Update failing test
* Update paths for artifacts
* Update path to artifacts
* Path to results
* remove unnecessary file
* Skip translation E2E tests
Skipping translation tests until we fix the missing translations issues after we changed the domain to "woocommerce"
* Update the artifacts path
* Fix lint errors
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Add the response_format to the params for requests to AI to ensure it will return the responses in JSON format.
* Update the prompt to define the search term for images from Pexels.
* Streamline product content update and the product image uploads within the ProductUpdater class.
* IMprove prompts for images and product content generation.
* Update the prompt for defining the search term on Pexels and drop double quotes from the response.
* Update the prompts and the position for the titles on content generation for the woocommerce-blocks/testimonials-3-columns pattern.
* Set the 'woocommerce_ai_managed_images' transient for the products endpoint callback in case execution is interrupted so images don't have to be fetched from Pexels again.
* Update the prompt for defining the search term for images.
* Remove unused methods from the PatternsHelper class.
* Update the prompt for AI content generation in patterns.
* Update the prompts for the testimonials and the Hero Product 3 Split patterns.
* Update the position for the main title in the Hero Product 3 Split pattern.
* Reduce the size of the images uploaded to the media library for products.
* Add docblock and update prompts.
* Update the default size of the images received from Pexels to be downloaded and uploaded to the media library.
* Update prompts for the Hero Product 3 Split pattern.
* Add changefile(s) from automation for the following project(s): woocommerce
* Address lint errors.
* Update array formatting
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove use of deprecated conditional block
* Remove use of deprecated context usage
* Remove use of deprecated positoin on Dropdown in favour of popoverProps
* Add changelogs
* Remove unused import
* Fix lint errors
* Remove popoverProps.position with popoverProps.placement
* Update missed items replacing position to placement
* Fix lint error
* Fix placement position
* Update changelogs
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* add changelog
* Auto load the Blocks/Domain/Services/functions.php file
* add changelog
* revert test to what it was
* Update text domain for translations
* Ensure address data is added on the cart block too
* fix lint problem
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Add a test that fails if trashed orders are never deleted under HPOS
* Delete trashed orders after `EMPTY_TRASH_DAYS` as defined by WordPress
* add the changelog file
* appease the linter
* return early if HPOS is not authorative
* attempt to precede WordPress itself (which uses priority 10) to increase the probability of orders and their posts being handled solely by us
* appease the linter
* Product Image Gallery: Add transform to Product Gallery block
* Single Product Template: Transform to blocks with new Product Gallery block
* Ensure we first check for block existance
* Add changelog
* Add/delete changelog file
* fix: CYS - update copy
* not format style file
* Add changefile(s) from automation for the following project(s): woocommerce
* add changelog
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change the imageSizing to single
Images need a higher resolution in patterns used for the CYS project in the assembler
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Migrate Puppeteer test action from Blocks repo
* Update file path
* Use pnpm
* Use npm
* Updates based on feedback
* Comment out paths for testing
* Fix paths with working directory
* Use pnpm
* Fix missing pnpms
* npm instead
* Do use pnpm
* Update command
* Blocks wp-env config
* Update paths, config files
* Run test commands from blocks
* Config update
* Uncomment paths so that e2e checks only run on Blocks
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fixed Blocks' `wp-env` Configuration
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update action for API tests
* Changelog
* Update e2e tests
* Rename WooCommerce Payments to WooPayments
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Similarly to `build:project`, a new `watch:build:project`
script will watch individual projects for changes. The
`watch:build` script has been updated so that it does
a deep watch in the same vein as `build`. We have also
hooked up tool-level watching for faster performance.
When using a preset we need to keep in mind that the transformation
paths are relative to the preset, not the consuming package. We get
around this by using `<rootDir>` in the transform paths. However,
doing this means fixing the root directory for all of the jest tests.
This keeps the tests working in the same way but lets us fix the
preset too.
* Clean up created pages and posts
* Move tax tests so that they run last
* Improve locators
* Changelog
* Improve locators
* Improve locator on heading
* Change assertions to look for alert text
* Change assertion to look for text
* Update locators
* Update locator
* Update alternate elements
* Specify first order amount
* Update locator
* Changelog
* Increase reliability of checkout test
* Update a few locators
* Remove .slice()
* Add some console output to checkout test
* Make command palette tests Mac-compatible
* Added update for why download test flaky
* Improvements to checkout tax tests
* Add changelog
* Assert on range of prices
* Improve the regex for matching the price
* Changelog
* Clean up locator
* Unskip analytics tests
* Remove logging statements
* Update variations selector
* Remove comment
* Fix disable block tests
* Remove skipped legacy coupon page test
* Account for multiple products in test
* Cleaned up some console.logs
* Added specificity to locator
* Better price parsing
* Fix cart block shipping test
* Fix syntax error
* Update Playwright, fix logic error
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Having an explicit `"files"` definition will allow us to fingerprint
dependencies in `wireit` more granularly. This avoids problems
that can be caused by different source files and directories that
trigger a rebuild in a dependee before a dependent finishes.
Fixes some issues where pagination and filters were not persisting in the DB log list table view after running a bulk action. Also adds a way to customize the number of log entries shown per page.
Fixes#39359
Wireit doesn't allow us to have build outputs in a directory outside
of the package. We can get around this by having a build step in
WooCommerce that copies the files from the output directories.
We're adding this to _every_ package since they have their own
configuration and scripts to run. This also keeps them
isolated so that they can operate independently.
NPM requires names to be single-word or have a scope. The
current name is not valid. The package has been renamed
`@woocommerce/shortcode-assets` to better match its purpose.
NPM package names _must_ either be single-word or have
a scope. The current structure is unsupported and has been
changed. The new package name is `@woocommerce/admin-library`.