Commit Graph

6015 Commits

Author SHA1 Message Date
Luigi Teschio 35e82fe4ec Fix: Password Protection not respected on single product template (https://github.com/woocommerce/woocommerce-blocks/pull/10999)
* Add password protection on the blockified Single Product Template

* Add E2E test

* fix unit test

* remove empty space
2023-09-20 07:17:13 +00:00
Sam Seay 767a093b6a Refactor frontend, frontend-container-block (of reviews) to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/10787)
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
2023-09-20 04:21:26 +00:00
Daniel Dudzic 67f8476a82 Update experimental blocks in the feature-flags-and-experimental-interfaces doc (https://github.com/woocommerce/woocommerce-blocks/pull/10937)
* Features Flags and Experimental Interfaces doc: Update blocks behind the experimental flag

* Product Gallery Next Previous: Add missing experimental flag
2023-09-19 21:37:00 +00:00
Daniel W. Robert 8fdd1726a6 Add escaping to unescaped style attribute variable 2023-09-19 18:48:08 +02:00
Mike Jolley 68064c115b Refactor Cart and Checkout Page Templates (https://github.com/woocommerce/woocommerce-blocks/pull/10773)
* Rename checkout template slug

* Remove redirect and custom title

* Classic shortcode block for checkout

* Empty title

* WIP placeholder

* Change blockified template

* Prefix cart and checkout templates with "Page: "

* Template migration routine

* Apply same treatment to cart template

* Notices

* Update placeholder text

* Classic shortcodes block

* Page content wrapper for templates

* Update default

* Do not save attributes

* Update templates

* Remove cart classic template

* Reverted endpoints for Cart & Checkout templates. This reverts PR 9406

* Migrate page content wrapper.

* Removed useless method arg. Minor tweaks.

* Skip migration if the theme has a template file for this page.

* Removed impossible condition.

* Migrate page content wrapper.

* Remove TemplateNotice in favour of DefaultNotice

* Documentation links in shortcode placeholder

* Hide cart and checkout page selector when using block themes

* Unused var

* Add tests for template changes

* Revert changes to classic-template

* Allow frontend redirect

* Unused file

* Bump version for updater

* Support x template naming as well as page-x

* Need to add item to cart to test checkout

* Fix header test by fixing utility for adding to cart

* Remove permalink tests

* Click body

* Wait for content to finish loading

* Wait for add to cart response when adding to cart without item name

* Wait for save before visiting frontend

* Set content instead of inserting block

* Perform test in site editor rather than page editor

* Prevent notice to set the default cart/checkout page from showing on the site editor.

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2023-09-19 10:58:18 +01:00
Tarun Vijwani ea1b201579 Checkout Block: Prevent changes in the selected shipping method when new rates are added or removed (https://github.com/woocommerce/woocommerce-blocks/pull/10457)
* Prevent changes in the selected shipping method when new rates are added or removed.

* Fix spacing as per the coding standards

* Remove additional new line space.
2023-09-19 12:29:03 +04:00
Brian 04578dda16 Cart Line Items » saleBadgePriceFormat / cartItemClass / cartItemPrice: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10989)
* Cart Line Items » saleBadgePriceFormat: Add code snippet and screenshot

* fix before image

* fix enter
2023-09-19 14:55:32 +07:00
Alba Rincón 26295c0eab [Store Customization] Update patterns to use the AI selected verticals for images (https://github.com/woocommerce/woocommerce-blocks/pull/10796)
* Add the Verticals API client

* Add tests

* Refactor error handling

* Create first version of the prompt class

* Improve Vertical selector and add tests

* Remove testing code

* Update class comment

* Add PatternImages class

* Pass the dictionary as param

* Add tests

* Add `get_pattern_images` function and use it on patterns

* Add the Jetpack Connection Package as a dependency for WooCommerce Blocks.

* Introduce the new Configuration Class for registering and enabling the Jetpack connection for sites and users.

* Introduce the Connection class for making requests to the GPT AI API.

* Update the get_jwt_token method.

* Update the error messages for the get_jwt_token method.

* Update the register_site method.

* Update the Configuration class structure and add Dependency Injection.

* Update structure for the Connection Class.

* Update the return type for the get_jwt_token method.

* Update method visibility for get_site_id

* Update the name and params for methods within the Connection Class

* Add tests for the Connecction class.

* Update the Constructor for the Configuration class.

* Add the Patterns class.

* Move the get_image_url function to the PatternImages class and update the call in all patterns to address errors.

* Remove the functions.php file

* Update the VerticalsSelector class.

* Update the constructor for PatternImages.

* Update the Store API Route for Patterns.

* Update the create_patterns_content method to ensure it returns the results of update_option.

* Add the new Patterns route to the RoutesController class.

* Update the route path and remove the business description validation as that is done via create_patterns_content

* Introduce the PatternsSchema

* Update the prompt, errors messages and output format for the Verticals Selector.

* Fix the missing file error for the Patterns Dictionary.

* Introduce the new get_patterns_dictionary method and update the create_patterns_content method to better handle errors.

* Update the returned response for the endpoint.

* Add the get_item_response method to the PatternsSchema class.

* Update response for when allow_ai_connection option is not set.

* Enable authentication for the endpoint.

* Modify and temporarily remove some failing tests for the AI API: a separate PR will be opened to clear those out later.

* Add validation to the verticals_id.

* Remove reference to the src/Patterns/functions.php file.

* Update `alt` to be more generic, since the displayed images will vary

* Store Customization > Schedule an action to update the patterns content whenever the business description is changed (https://github.com/woocommerce/woocommerce-blocks/pull/10956)

* Introduce the new OptionUpdate class.

* Update the path to action schduler and add a file_exists check before attempting to schedule the action.

* Update the content in patterns from the BlockPatterns class instead.

* Remove return comment

---------

Co-authored-by: Alba Rincón <alba.rincon@automattic.com>

---------

Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
2023-09-19 09:05:44 +02:00
Brian 559b29c850 ExperimentalOrderShippingPackages add snippet (https://github.com/woocommerce/woocommerce-blocks/pull/10988) 2023-09-19 13:26:21 +07:00
Daniel Dudzic 6f32bf8cf7 Single Product: Fix width setting (https://github.com/woocommerce/woocommerce-blocks/pull/10977) 2023-09-18 12:35:30 +02:00
Tung Du d488a3f2b9 CollectionFilters: Hydrate Collection Data for inner filter blocks (https://github.com/woocommerce/woocommerce-blocks/pull/10873) 2023-09-18 10:00:18 +07:00
Brian 0b2b3d5df1 ExperimentalOrderMeta / ExperimentalOrderLocalPickupPackages / ExperimentalDiscountsMeta: add code snippet (https://github.com/woocommerce/woocommerce-blocks/pull/10976)
* ExperimentalOrderMeta add code snippet

* ExperimentalOrderLocalPickupPackages add code snippet

* ExperimentalOrderLocalPickupPackages add code snippet
2023-09-16 14:34:24 +07:00
Brian 181df639d5 Cart Line Items » itemName / subtotalPriceFormat / showRemoveItemLink: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10969)
* Cart Line Items » itemName: Add code snippet and screenshot

* subtotalPriceFormat

* showRemoveItemLink
2023-09-16 12:30:33 +07:00
Patricia Hillebrandt 067626a155 Store Customization > Create a new endpoint within Store API for updating patterns with AI-generated content (https://github.com/woocommerce/woocommerce-blocks/pull/10881)
* Add the Jetpack Connection Package as a dependency for WooCommerce Blocks.

* Introduce the new Configuration Class for registering and enabling the Jetpack connection for sites and users.

* Introduce the Connection class for making requests to the GPT AI API.

* Update the get_jwt_token method.

* Update the error messages for the get_jwt_token method.

* Update the register_site method.

* Update the Configuration class structure and add Dependency Injection.

* Update structure for the Connection Class.

* Update the return type for the get_jwt_token method.

* Update method visibility for get_site_id

* Update the name and params for methods within the Connection Class

* Add tests for the Connecction class.

* Update the Constructor for the Configuration class.

* Add the Patterns class.

* Update the VerticalsSelector class.

* Update the constructor for PatternImages.

* Update the Store API Route for Patterns.

* Update the create_patterns_content method to ensure it returns the results of update_option.

* Add the new Patterns route to the RoutesController class.

* Update the route path and remove the business description validation as that is done via create_patterns_content

* Introduce the PatternsSchema

* Update the prompt, errors messages and output format for the Verticals Selector.

* Fix the missing file error for the Patterns Dictionary.

* Introduce the new get_patterns_dictionary method and update the create_patterns_content method to better handle errors.

* Update the returned response for the endpoint.

* Add the get_item_response method to the PatternsSchema class.

* Update response for when allow_ai_connection option is not set.

* Enable authentication for the endpoint.

* Modify and temporarily remove some failing tests for the AI API: a separate PR will be opened to clear those out later.
2023-09-15 15:44:15 +00:00
Thomas Roberts e2b8083883 Update `postcode-validator` to 3.8.15 to validate "new" Taiwanese postcodes (https://github.com/woocommerce/woocommerce-blocks/pull/10924) 2023-09-15 07:05:01 -07:00
Brian 6aa7796e13 Coupons: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10957) 2023-09-15 20:50:09 +07:00
Brian 4d435d3c96 Order Summary Items Adjustments (https://github.com/woocommerce/woocommerce-blocks/pull/10970) 2023-09-15 19:59:04 +07:00
Brian f82c860de0 Proceed to Checkout Button Link: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10954)
* Proceed to Checkout Button Link: Add code snippet and screenshot

* Update docs/third-party-developers/extensibility/checkout-block/available-filters.md

Co-authored-by: Niels Lange <niels.lange@a8c.com>

---------

Co-authored-by: Niels Lange <niels.lange@a8c.com>
2023-09-15 19:09:12 +07:00
Brian 9c3bb8159c Proceed to Checkout Button Label: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10955)
* Update available-filters.md

* Update available-filters.md

* Update available-filters.md
2023-09-15 18:11:11 +07:00
Manish Menaria 890c5dbcac Transfer layout options from Toolbar to Inspector controls (https://github.com/woocommerce/woocommerce-blocks/pull/10922)
In this update, the layout options for the Product Collection block are transferred from the Toolbar to the Inspector controls. Below is the breakdown of the changes:

1. **Constants Update**
    - `LayoutOptions` enumeration has been imported into `constants.ts`, facilitating a more structured approach to managing layout types (grid and stack).
    - The default display layout type has been updated from 'flex' to reference `LayoutOptions.GRID`.
    - The `getDefaultQuery` function now uses the `getDefaultValueOfInheritQueryFromTemplate` utility to set the default `inherit` value. (This is mainly done to fix a bug)

2. **Display Layout Control Removal**
    - The `display-layout-control.tsx` file has been removed, discontinuing the previous method of layout management.

3. **New Layout Options Control**
    - A new component `LayoutOptionsControl` has been introduced in the `layout-options-control.tsx` file, utilizing the experimental `ToggleGroupControl` and `ToggleGroupControlOption` components from the WordPress package to provide a more intuitive layout selection experience.
    - The `types.ts` file has been updated to define the `LayoutOptions` enum, effectively mapping 'flex' to 'GRID' and 'list' to 'STACK'.

4. **Inspector Controls Update**
    - In `inspector-controls/index.tsx`, the obsolete `DisplayLayoutControl` has been replaced with the new `LayoutOptionsControl`, integrating it into the `ProductCollectionInspectorControls` component.
    - The `BlockControls` wrapper has been removed, and layout options have been relocated to the Inspector controls, presented as a toggle group within the ToolsPanel.

5. **Inherit Query Control Modification**
    - The `inherit-query-control.tsx` file sees a change in the reset value for the `inherit` query attribute to employ a default value which fix one bug.

These changes aim to streamline the user experience by relocating the layout options from the Toolbar to the Inspector controls, offering a centralized location for block settings. Leveraging an enum for layout options fosters code readability and maintainability.

Do note that the update uses experimental components, hence it would be prudent to keep an eye on potential alterations or deprecations in upcoming WordPress releases.
2023-09-15 15:38:48 +05:30
Brian 2dc82412d5 Order Summary Items » subtotalPriceFormat: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10958)
* Order Summary Items » subtotalPriceFormat: Add code snippet and screenshot

* fix linterror
2023-09-15 16:45:24 +07:00
Luigi Teschio 11062e8600 Product Gallery Block: Add Product Gallery template to allow users to edit full mode view (https://github.com/woocommerce/woocommerce-blocks/pull/10823)
* Product Gallery: add support for On Sale Badge Block

* add align support

* Add E2E tests

* set margin via Block Styles

* disable experimental flag

* add next previous block

* restore support file

* fix TS error

* fix layout

* change product

* change product

* Product Gallert Block: Add zoom on hover

* set to true by default

* remove block is already registered error

* remove unecessary await

* Improve zoom logic

Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>

* Product Gallery Full view mode: Add the logic to render the dedicated template

* use template-part instead template

* add E2E tests

* update selectors

* add feature flag product gallery template part

* fix E2E tests

* remove not necessary file

---------

Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
2023-09-15 08:54:49 +00:00
Brian 0abe53d079 Allowing blocks in specific areas in the Cart and Checkout blocks: Add screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10953) 2023-09-15 15:37:20 +07:00
Karol Manijak 8643df713c Improve the testing notes to include information about Product Rating (https://github.com/woocommerce/woocommerce-blocks/pull/10944)
* Improve the testing notes to include information about Product Rating being plugin feature

* Improve the wording
2023-09-15 08:39:02 +02:00
Tung Du 71b8bee08e Revert "Fix: use correct bump strategy for Assign Milestone workflow (https://github.com/woocommerce/woocommerce-blocks/pull/10805) (https://github.com/woocommerce/woocommerce-blocks/pull/10962) 2023-09-15 13:20:16 +07:00
Karol Manijak 4418cb7d67 Hide unexpected bullet point in Product Collection on Storefront (https://github.com/woocommerce/woocommerce-blocks/pull/10945) 2023-09-15 08:07:54 +02:00
Brian 06b09e07f0 Show Apply Coupon Notice / Show Remove Coupon Notice: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10931)
* Show Remove Coupon Notice: Add code snippet and screenshot

* Show Apply Coupon Notice: Add code snippet and screenshot

* Update available-filters.md

Co-authored-by: Niels Lange <niels.lange@a8c.com>

---------

Co-authored-by: Niels Lange <niels.lange@a8c.com>
2023-09-15 04:40:12 +00:00
Niels Lange 0c74f96e8f Add custom regex for validating Nicaraguan postal codes (https://github.com/woocommerce/woocommerce-blocks/pull/10928) 2023-09-15 03:16:04 +00:00
Paulo Arromba 615d4455d8 Updated composer.lock (https://github.com/woocommerce/woocommerce-blocks/pull/10936) 2023-09-14 14:51:23 +01:00
Thomas Roberts a3a55383f8 Add readme file to extend-rest-api directory and move internal doc into internal folder (https://github.com/woocommerce/woocommerce-blocks/pull/10926)
Co-authored-by: Niels Lange <info@nielslange.de>
2023-09-14 05:47:35 -07:00
Karol Manijak 25c0b47721 Add pattern chooser in Product Collection (https://github.com/woocommerce/woocommerce-blocks/pull/10876)
* Enable Product Collection patterns in inserter and kick off the layout control button

* Add Choose Pattern button

* Move Toolbar settings to related directory

* Display Pattern Selection modal with available patterns after clicking the button

* Make Pattern Chooser always visible

Patterns can be changed no matter if the Inherit Query from Template option in enabled or not

* Add pattern replacement mechanism

* Switch from Gutenberg styles to internal ones
2023-09-14 14:19:16 +02:00
Brian 48aad27c61 fix woocommerce/woocommerce-blocks#10918 (https://github.com/woocommerce/woocommerce-blocks/pull/10930) 2023-09-14 05:49:09 +00:00
Roy Ho 3c0498e891 Add collection filters block (https://github.com/woocommerce/woocommerce-blocks/pull/10726)
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
2023-09-14 11:13:33 +07:00
Brian 461aa1d5d3 Place Order Button Label: Add code snippet and screenshot (https://github.com/woocommerce/woocommerce-blocks/pull/10932)
* Place Order Button Label: Add code snippet and screenshot

* add before screenshot
2023-09-14 04:07:25 +00:00
Tom Cafferkey fd83e0a4cb BlockTemplatesController: Check that $attributes['theme'] value isset before operating on it (https://github.com/woocommerce/woocommerce-blocks/pull/10879) 2023-09-13 13:58:16 +01:00
Saad Tarhi c28319fc3c Update Woo Blocks version in trunk 2023-09-12 16:57:47 +01:00
Saad Tarhi 5418cd7535 Fix link in "readme.txt" 2023-09-12 16:45:19 +01:00
Saad Tarhi cc211cf662 Fix PR's links in readme.txt 2023-09-12 16:45:10 +01:00
Saad Tarhi 704aaf8273 Update testing steps 2023-09-12 16:44:51 +01:00
Saad Tarhi 82dfe3d331 Remove a test for an experimental feature 2023-09-12 16:44:31 +01:00
Saad Tarhi 880cf7a197 Add testing notes 2023-09-12 16:44:11 +01:00
Saad Tarhi 41772b674b Remove changelog of a closed PR 2023-09-12 16:43:51 +01:00
Saad Tarhi ddc3474355 Comment: Indicate min WP version for WooCommerce Core, not Blocks.
Woo Core supports WP L1, and we support L0. We added this comment
because it can be confusing since the info can only be found on the
release instructions
2023-09-12 16:43:29 +01:00
Saad Tarhi b66ceecf7f Update WP min version in PHPCS file
It should match the min WP version of WooCommerce Core
2023-09-12 16:43:06 +01:00
Saad Tarhi 1ef1c4d154 Add changelog to "readme.txt" 2023-09-12 16:42:22 +01:00
Saad Tarhi cd734831a7 Fix link in "readme.txt" 2023-09-12 16:36:06 +01:00
Saad Tarhi 03b4b71927 Fix PR's links in readme.txt 2023-09-12 15:24:29 +01:00
Saad Tarhi ae9e2e5e64 Update testing steps 2023-09-12 14:50:27 +01:00
Saad Tarhi 1ce980b512 Remove a test for an experimental feature 2023-09-12 14:38:00 +01:00
Patricia Hillebrandt deb71f97fa Store Customization > Implement Client for requests to the GPT API (https://github.com/woocommerce/woocommerce-blocks/pull/10846)
* Add the Jetpack Connection Package as a dependency for WooCommerce Blocks.

* Introduce the new Configuration Class for registering and enabling the Jetpack connection for sites and users.

* Introduce the Connection class for making requests to the GPT AI API.

* Update the get_jwt_token method.

* Update the error messages for the get_jwt_token method.

* Update the register_site method.

* Update the Configuration class structure and add Dependency Injection.

* Update structure for the Connection Class.

* Update the return type for the get_jwt_token method.

* Update method visibility for get_site_id

* Update the name and params for methods within the Connection Class

* Add tests for the Connecction class.

* Update the Constructor for the Configuration class.
2023-09-12 08:41:43 +00:00