Commit Graph

64603 Commits

Author SHA1 Message Date
Jonathan Lane c3b355a53f
Remove test publishing (#44592) 2024-02-14 16:41:11 -08:00
nigeljamesstevenson 83fc7a88f3
Update Action Scheduler to 3.7.2 (#44628)
* Update Action Scheduler to 3.7.2
2024-02-14 16:28:02 -08:00
Paul Sealock 0f27449454
Update states.php -> Add Morocco regions (#41769)
Add regions for Morocco according to CLDR.
2024-02-14 16:17:09 -08:00
Christopher Allford eb543f564f
Fixed `@woocomerce/classic-assets` Watch Command (#44627)
The `watch:build` setup in this package does not conform to
the expects format and so the build command was not being
run. This fixes that and ensures it gets executed correctly.
2024-02-14 15:53:14 -08:00
Thomas Roberts 1ddd904b26
Add additional checkout fields documentation (#43782)
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: github-actions <github-actions@github.com>
2024-02-14 13:48:03 -08:00
Ron Rennick 16c8ec397c
fix label typo added in #44561 (#44618)
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
2024-02-14 11:10:03 -08:00
Mike Jolley b94c14e745
[Experiment] Fix additional address field validation notices (#44615) 2024-02-14 10:02:30 -08:00
Maikel Perez 5af88543eb
Add the collapsible Schedule section (#44563)
* Create schedule section within the pre-publish panel component

* Add publish date time picket to the schedule section

* Enhance schedule section title to show the selected date

* Change the text of the publish button to schedule once the product is scheduled

* Add changelog file

* Fix linter errors

* Set schedule text in pre publish button too

* Fix timezone offset from getSiteSettingsTimezoneAbbreviation when the onboarding wizard is skipped
2024-02-14 13:57:53 -03:00
Paul Sealock 4061bbfc2b
Changelog Auto Add script: Fix property chaining (#44570)
Fix property chaining
2024-02-14 11:04:56 -04:00
Matt Sherman d279466eb3
[Product Editor] Fix blank editor flash when loading product (#43840)
* EditorLoadingContext

* Use EditorLoadingContext

* Remove fallbacks

* Make sure metadata exists before using it

* Add header loading state

* Do not return skeleton

* Use EditorLoadingContext

* Update editor loading state

* Remove ProductPageSkeleton

* Remove unused import

* Remove unused import

* Handle undefined variationId and parentId in VariationSwitcherFooter

* Remove ProductPageSkeleton

* Include productId in determination of whether editor is loading

* Handle variation loading

* Fix rebase merge conflict mistakes

* Fix layout margins

* Show welcome tour and feedback bar after editor has loaded

* Changelogs

* Make loading context experimental
2024-02-14 09:57:17 -05:00
Bart Kalisz 2432b3b22e
[E2E] Update the blocks E2E setup guide (#44468)
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2024-02-14 16:00:52 +02:00
nigeljamesstevenson fd24ff80e0
Delete plugins/woocommerce/changelog/kevinbates-patch-1-1
File removed as part of actioning CFE pf59Ax-L1-p2
2024-02-14 13:36:42 +00:00
Alba Rincón bf938b0bd3
[CYS] Update `Hero product chessboard` pattern (#44553)
* Reduce the `woocommerce-customize-store-banner-content` width to better fit the copy

* Add changelog

* Remove the image placeholder and improve margins

* Add changelog
2024-02-14 14:28:40 +01:00
Ilyas Foo c0804827a4
Improve tasklist performance, add prop to track (#44442)
* Improve tasklist performance, add prop to track

* Changelog

* Lint
2024-02-14 21:17:08 +08:00
Ilyas Foo 8ba2942099
Fix type handling and default value for remote API transformers (#44418)
* Add default value check and parameter, change transformer behaviour around defaults and types, update and add tests

* Changelog
2024-02-14 21:16:39 +08:00
Alba Rincón e5e641180b
Update the `Product gallery` pattern title (#44604)
* Update the product gallery title

* Add changlog
2024-02-14 13:55:33 +01:00
github-actions[bot] e00f49a0b1
Delete changelog files based on PR 44526 (#44608)
Delete changelog files for 44526

Co-authored-by: WooCommerce Bot <no-reply@woo.com>
2024-02-14 13:19:22 +01:00
github-actions[bot] d12cc1a770
Delete changelog files based on PR 44318 (#44606)
Delete changelog files for 44318

Co-authored-by: WooCommerce Bot <no-reply@woo.com>
2024-02-14 11:46:04 +00:00
Alba Rincón 0e1239867a
[CYS] Reduce the width of the "Design your own" text box on the Intro screen (#44546)
* Reduce the `woocommerce-customize-store-banner-content` width to better fit the copy

* Add changelog

* Increase the width to fit the sentence in one line
2024-02-14 11:44:41 +01:00
Justin Palmer 754779e00e
Simplify Customer history calculation (#44318)
* Only show customer history box if WooCommerce Analytics are enabled

* Use requests to /reports/customers endpoint for customer history data

* Don't reinvent the wheel - use customer analytics data for Cust. Hist.

* Remove Customer Order Count from tracks data

* Simplify the customer history process

* Omit Customer history content when adding a new order in wp-admin

* Early return to reduce complexity

Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>

* Simplify matching customers

Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>

* Remove unnecessary method

* Use Customers Query directly to get customer history data

* Template version bump

* Move the customers query to CustomerHistory

* Only show customer history box if WooCommerce Analytics are enabled

* Use requests to /reports/customers endpoint for customer history data

* Don't reinvent the wheel - use customer analytics data for Cust. Hist.

* Remove Customer Order Count from tracks data

* Simplify the customer history process

* Style and legibility fixes

* Template version bump

* Add changelog

* Omit Customer history content when adding a new order in wp-admin

* Early return to reduce complexity

Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>

* Simplify matching customers

Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>

* Remove unnecessary method

* Use Customers Query directly to get customer history data

* Template version bump

* Move the customers query to CustomerHistory

* Match default params

* Simplify Customer Query params (cache key match with API is much harder)

---------

Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
2024-02-14 11:38:10 +01:00
Albert Juhé Lluveras 13ded5be76
Minor typo and text styling fixes (#44583)
* Fix typos in PHP comments

* Fix styling of tests/README.md

* Other linting fixes

* Add changelog file
2024-02-14 11:13:28 +01:00
Luigi Teschio cb1ae99a77
Core - CYS: fix fonts not loaded on the font picker iframes (#44586)
* Core - CYS: fix fonts not loaded on the font picker iframes

* add changelog

* fix lint error
2024-02-14 10:30:18 +01:00
Alba Rincón 0f198da833
[CYS] Update "Start customizing your store" task description on Core (#44584)
* Update customized store task description on Core

* Add changelog
2024-02-14 09:08:16 +01:00
Alba Rincón da8fee41aa
[CYS] Update the "Change your homepage" description on Core (#44579)
* Update the "Change your homepage" description on Core

* Add changelog
2024-02-14 09:07:55 +01:00
Corey McKrill b2d9d6f118
Logging: Add filter to modify the list of expired logs to be deleted (#44380)
* Logging: Add filter to modify the list of expired logs to be deleted

This provides a way for extensions to ensure that some log files are
retained for a different time period than the normal
retention period setting.

* phpcs cleanup

* Add changelog file

* Add note to settings view when hook has filter on it

Also remove the note about retention days from the log entry that's
generated when expired log files are deleted
2024-02-13 12:42:38 -08:00
Matt Sherman a619aba5ee
Product Editor: load translations (#44520)
* Clarify when the custom message is used in useConfirmUnsavedChanges

* Changelog

* Load translations for wc-navigation and wc-product-editor scripts

* Changelog
2024-02-13 15:38:04 -05:00
Mike Jolley 51a9da9f2c
[Experiment] Additional field extensible sanitisation and validation handling (#44463)
* Fix field saving in account area

* Check for error notices in core form handler

* Tidy up additional field saving in api

* sanitize_additional_fields does not expect request

* Validate fields with extra context

* Revert "Tidy up additional field saving in api"

This reverts commit 872c8f4afb.

* Tidy update_customer_from_request

* validate_field docs

* Validation and sanitization hooks

* Address schema validates fields and address location

* Validate locations

* Frontend validation

* Remove empty error response

* Document account details hook

* field_key

* Improve validation routine

* Changelog

* Swap key and value in woocommerce_blocks_validate_additional_field hook

* woocommerce_blocks_validate_location_X_fields

* Validation and sanitization callbacks

* Update try catch blocks
2024-02-13 19:40:55 +01:00
Mike Jolley cea1c10122
Fix coupon codes containing apostrophes (#40998)
* Use wp_kses_post to sanitize coupon codes

* Fix notice (php 8)

* Add changefile(s) from automation for the following project(s): woocommerce

* Add changefile(s) from automation for the following project(s): woocommerce

* Remove duplicate changelog entry

* Try alternative wp_kses function

* Account for unfiltered_html

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2024-02-13 17:01:49 +00:00
Alba Rincón a48e2111b8
[CYS] Add title to the "Product Gallery" pattern (#44556)
* Add title to the "Product Gallery" pattern

* Add changelog
2024-02-13 14:40:49 +01:00
Luigi Teschio 69728b70e9
CYS - Core: catch error when font installation fails (#44559)
* CYS - Core: catch error when font installation fails

* add changelog

* reduce the requests number
2024-02-13 13:15:52 +00:00
Fernando Marichal 75791b2aff
Add visibility section to pre-publish panel (#44434)
* Add visibility-section

* Fix generic checkbox

* Move visibility-section

* Add isPasswordRequired to store

* Change password checked

* Add tracks events

* Fix generic checkbox

* Add changelog

* Create reequire-password component

* Create CatalogVisibility component

* Use CatalogVisibility component

* Add changelog

* Fix lint

* Remove requirePassword from store

* Add useEffect to update checkbox

* Remove object spread from state

* Remove empty line

* Fix useEffect

* Refactor if in useEffect

* Refactor catalog-visibility

* Modify useEffect

* Remove not used import
2024-02-13 10:09:06 -03:00
Luigi Teschio a2d35b0563
CYS - Core: install fonts only when the tracking is enabled (#44558)
* CYS - Core: install fonts only when the tracking is enabled

* add a parameter to reduce the response payload

* add changelog
2024-02-13 14:03:06 +01:00
Chris Lilitsas 8d5c0dae83
Ensure proper handling of product-related taxonomies in filtering logic (#44230)
* Fix product-related whitelisting in Product Query and Collection blocks

* Fix Product Query Utility

* Remove store-api related fix

* Changelog
2024-02-13 13:59:02 +02:00
Leif Singer e548c715f3
Quote lines starting with asterisk in PR labeler YAML (#44573)
* quote lines starting with asterisk

* use single quotes instead of double quotes

* try triggering the workflow locally

* remove `workflow_dispatch` trigger again -- temporary testing
2024-02-13 11:30:31 +01:00
Adrian Moldovan e863c02551
[e2e tests] Add tests for managing product images in block editor (#44470) 2024-02-13 01:20:48 +02:00
Ron Rennick bf2db602b6
add to auto labeler and review assign for Vortex and Developer Advocacy (#44561)
* add to auto labeler and review assign

* add vortex - vortex pr review assignment

---------

Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
2024-02-12 14:19:31 -08:00
Karol Manijak 2750e79224
Getting the Product Collection location/context (#43997)
* Early implementation of getting the Product Collection location/context

* Solve the problem of async fetch in the hook

* Improve typing

* Import core data store instead of hardcoding store name

* Recognise Product Category and Product Tag

* Remove attr property from archive location data

* Unify states naming

* Add TODO entry

* Display the info about the location of Product Collection

* Improve the typing

* Recognise if Product Collection is nested in Single Product block

* Improve cases descriptions and add some defaults to potentially undefined values

* Change the taxonomies sourceData

* Recognise Mini Cart as Cart context

* Recognise attribute as archive contect but no taxonomy

* Refactor the function into single useEffect and clean it up

* Fix typo

* Remove unnecessary import

* Stop rendering the output in Editor (it was for demo purposes)

* Pass location data to Product Template query in Editor

* Replace templateSlugs literal strings with object reference

* Rename parseResponse function to more specific name getIdFromResponse

* Add dpeendency array to useEffect

* Refactor templates detection

* Use full taxonomy names instead of shortcuts

* Write down scenarios to test

* Working scenario

* Change the verification way for more robust

* Add more robust methods to include Single Product block

* Add test Product Collection in Single Product block in a Single Product Template

* Imprvoe the order of veryfing the requests

* Fix linter issues. Although that makes code less readable

* Improve the useGetLocation typing so it's more generic

* Rework the E2E tests regarding location of Product Collection and limit their number

* Bring back necessary eslint-disable

* Remove unused imports

* Uncomment line required for other tests

* Add changelog

* Rename constant from BLOCK_NAME to BLOCK_SLUG as it's a slug

* Add a BLOCK_NAME constant and replace the literal block name usages in E2E tests

* Fix post merge issues

* Fix test after merge

* Adjust the tests to kick off waiting for request before action that triggers them
2024-02-12 20:59:40 +01:00
Karol Manijak cc0d7368e9
Add missing Beta label to Product Filters E2E tests (#44564)
* Add missing Beta label to Product Filters E2E tests

* Add changelog
2024-02-12 20:26:19 +01:00
Néstor Soriano 60cc3df264
Fix for the dependency injection container resolution by tag (#44496)
* Fix for the DI container resolution by tag.

This fixes an issue that arises when using service providers inheriting
from AbstractInterfaceServiceProvider: if one of these providers
registers classes both by name and by tag, and one of its registered
classes is requested with 'get' by name before a list of classes is
requested by tag, then that service provider gets locked as the only one
providing that tag, and the others get ignored. This is due to the fact
that container definitions are created "on the fly" as needed and the
base 'get' method won't try to register additional providers if the
requested tag is already provided by at least one of the already
existing definitions.

* Add changelog file

* Add a unit test for the fix
2024-02-12 10:21:51 -08:00
Luigi Teschio 79ff29138c
CYS - Core: fix fonts not loaded after the setup (#44550)
* CYS - Core: fix fonts not loaded after the setup

* add changelog
2024-02-12 18:33:19 +01:00
Luigi Teschio 3919b8361d
CYS - Core: Add async font installation (#44473)
* CYS - Core: Ensure that the bodoni font is loaded

* CYS-Core: install fonts via async job

* ensure that the font are installed only when the Font Library is installed

* improve documentation and validation

* add changelog

* remove unused class

* remove not necessary changes

* improve documentation

* improving naming

* improve documentation

* fix PHP linter

* fix phpdoc comment
2024-02-12 16:23:21 +00:00
Luigi Teschio 738a57fe98
Core - CYS: fix inter font not applied (#44544)
* Core - CYS: fix inter font not applied

* remove logs

* add changelog
2024-02-12 14:09:04 +00:00
Sam Seay 143388dae8
[Experimental] Add (Beta) suffix to block name of new filter blocks (#44487) 2024-02-12 11:15:49 +00:00
Manish Menaria 4ae60196ea
Product Collection: Make attributes available in rest_product_query hook (#44150)
* Make attributes available in rest_product_query hook

This commit introduces the 'includeInQueryContext' attribute to the 'woocommerce/product-collection' block and updates the 'woocommerce/product-template' block to consume this new attribute.

Key Changes:
1. `woocommerce/product-collection` Block:
   - A new attribute 'includeInQueryContext' is added in `block.json`. This attribute is designed to hold a list of attribute names relevant for the query context.
   - The 'includeInQueryContext' attribute is included in the `providesContext` field to ensure its availability to child blocks.
   - In `constants.ts`, default values for 'includeInQueryContext' are defined, specifying 'collection' and 'id' as initial attributes.
   - The `types.ts` file is updated with a comment explaining the purpose of 'includeInQueryContext'.

2. `woocommerce/product-template` Block:
   - Modified `block.json` to utilize the 'includeInQueryContext' context provided by the parent `woocommerce/product-collection` block.
   - The `edit.tsx` file is updated to handle the new context. It uses a newly added utility function `useProductCollectionBlockAttributes` from `utils.tsx` to access parent block attributes.
   - The `utils.tsx` file is introduced, containing the `useProductCollectionBlockAttributes` hook. This hook is responsible for finding the parent 'woocommerce/product-collection' block and returning its attributes.
   - Within `edit.tsx`, logic is added to create a query context object based on the attributes specified in 'includeInQueryContext', enhancing the block's ability to dynamically adapt to changes.

* Remove commented code

* Rename query context attribute and optimize parent block detection

This commit introduces two significant changes aimed at improving code readability and efficiency.

1. **Renaming of Query Context Attribute:**
   - The attribute `includeInQueryContext` has been renamed to `queryContextIncludes` across various files, including block JSON configurations and TypeScript definitions. This change makes the attribute's purpose more intuitive, indicating it specifies which attributes to include in the query context.

2. **Optimized Parent Block Detection:**
   - Replaced the use of `getBlockParents` with `getBlockParentsByBlockName` in utility functions to find the closest Product Collection block. This optimization allows for a more direct and efficient way to identify the relevant parent block by specifying the block name, reducing unnecessary iterations and improving code performance.

* Streamline query context construction in product template

Key Changes:
- **Introduction of `useProductCollectionQueryContext` Hook:** This new hook takes the `clientId` and `queryContextIncludes` as inputs and returns a query context object. It encapsulates the logic for fetching parent product collection block attributes and constructing the query context accordingly. This abstraction simplifies the edit component's logic, focusing on the essentials and improving code readability.
- **Optimization of Parent Block Detection:** The hook uses `getBlockParentsByBlockName` to accurately and efficiently find the closest parent `Product Collection` block, minimizing the overhead previously associated with traversing the block hierarchy.

* Always include `collection` and `id` in query context

* Minor refactor

* Enhance query context handling for more maintainable code

- Introduced `DEFAULT_QUERY_CONTEXT_ATTRIBUTES` in `edit.tsx` to maintain a clear list of default query context attributes.
- Modified `ProductTemplateEdit` to automatically include these default attributes in `queryContextIncludes`, ensuring they are always part of the query context without manual initialization.
- Simplified `useProductCollectionQueryContext` in `utils.tsx` by removing static initialization of 'collection' and 'id', relying instead on the dynamic addition of necessary attributes from `queryContextIncludes`.

This refactor enhances the maintainability and clarity of the code, ensuring a solid foundation for future enhancements and features.

* Add E2E tests for Product Collection query context

- Added a new test suite 'Query Context in Editor' to validate the correctness of query context parameters when the Product Collection block is used. This suite ensures that:
  - For the 'Product Catalog', only the ID is sent in the query context, confirming that collection-specific parameters are excluded when not relevant.
  - For collections such as 'On Sale', the collection name is correctly passed in the query context, validating that the block dynamically adjusts query parameters based on its settings.

- Introduced a new utility method `setupAndFetchQueryContextURL` in `product-collection.page.ts`. This method automates the setup of a post with the Product Collection block and fetches the URL with query context parameters, facilitating the validation of query context handling.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Fix edge case when `queryContextIncludes` is not defined

- Initializing `queryContextIncludes` with a default empty array directly in the destructuring assignment of the component's props. This approach ensures that `queryContextIncludes` is always an array, simplifying downstream logic.
- Creating a new constant `queryContextIncludesWithDefaults` to hold the combination of `queryContextIncludes` and `DEFAULT_QUERY_CONTEXT_ATTRIBUTES`. This step avoids directly mutating the `queryContextIncludes` prop, aligning with best practices for functional purity and making the code easier to understand and debug.
- Updating the `useProductCollectionQueryContext` hook call to use `queryContextIncludesWithDefaults`. This ensures that the default query context attributes are consistently included without altering the original prop.

These adjustments not only enhance the code's maintainability but also ensure more predictable behavior by avoiding side effects related to parameter mutation.

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-02-12 14:15:24 +05:30
Karol Manijak 96f3e3c98b
Remove global pageObject action from Product Collection tests and add it as before each for specific tests (#44407)
* Remove global pageObject action from Product Collection tests and add it as before all for specific tests

* Replace beforeAll with beforeEach

* Adjust the beforeEach usage

* Add changelog

* Refresh locators when adding Single Product block as it's not initialised in pageObject

* Change method dedicated to templates to one dedicated to posts
2024-02-12 09:44:02 +01:00
Alba Rincón 7f8b1e201c
[CYS] Ensure the font family for buttons match the one assigned for the content, not the title (#44458)
* Fix select font for buttons

* Add changelog
2024-02-12 09:25:36 +01:00
github-actions[bot] cd43dd1116
Delete changelog files based on PR 44494 (#44534)
Delete changelog files for 44494

Co-authored-by: WooCommerce Bot <no-reply@woo.com>
2024-02-12 10:11:14 +08:00
kevinbates abc6993678
Update woocommerce.php (#44527)
* Update woocommerce.php

* Add changelog file
2024-02-09 17:27:18 -08:00
kevinbates 578f711730
Update readme.txt (#44526)
* Update readme.txt

Removing Woo Express section
Correcting eCommerce -> ecommerce

* Add changelog file
2024-02-09 17:26:57 -08:00
Christopher Allford cd643d164e
Added `packages/php/remote-specs-validation` to Lock File (#44523)
Updated Lock File
2024-02-09 12:22:53 -08:00