woocommerce/plugins/woocommerce-blocks/patterns/product-collections-feature...

92 lines
6.0 KiB
PHP
Raw Normal View History

<?php
/**
Consistent Pattern Titles (https://github.com/woocommerce/woocommerce-blocks/pull/9814) * Update featured-category-cover-image.php * Update featured-category-focus.php * Update featured-category-triple.php * Update featured-products-5-cols.php * Update filters.php * Update footer-large-dark.php * Update footer-large.php * Update footer-simple-dark.php * Update footer-simple.php * Update footer-simple-menu-and-cart.php * Update footer-with-2-menus-dark.php * Update footer-with-2-menus.php * Update footer-with-3-menus.php * Update header-centered-search-pattern.php * Update header-essential-dark.php * Update header-essential.php * Update header-large-dark.php * Update header-large.php * Update header-minimal.php * Update hero-product-3-split.php * Update hero-product-chessboard.php * Update hero-product-split.php * Update just-arrived-full-hero.php * Update no-products-found.php * Update product-collections-featured-collection.php * Update product-collections-featured-collections.php * Update product-collections-newest-arrivals.php * Update product-details-listing.php * Update product-details-pattern.php * Update product-featured-2-columns.php * Update product-hero-2-col-2-row.php * Update product-hero.php * Update product-listing-with-gallery-and-description.php * Update product-query-1-1-image-4-column-products-row.php * Update product-query-3-column-product-row.php * Update product-query-4-column-product-row.php * Update product-query-large-image-product-gallery.php * Update product-query-minimal-5-column-products-row.php * Update product-query-minimal-product-list.php * Update product-query-product-gallery.php * Update product-query-product-list-with-1-1-images.php * Update product-query-product-list-with-full-product-description.php * Update product-search-form.php * Update shop-by-price.php * Update store-info-alt-image-and-text.php * Update testimonials-3-columns.php * Update testimonials-single.php * Create readme.md * Update featured-category-cover-image.php * Update featured-category-focus.php * Update featured-category-triple.php * Update featured-products-5-cols.php * Update filters.php * Update footer-large-dark.php * Update footer-large.php * Update testimonials-single.php * Update testimonials-3-columns.php * Update store-info-alt-image-and-text.php * Update shop-by-price.php * Update readme.md * Update product-search-form.php * Update product-query-product-list-with-full-product-description.php * Update product-query-product-list-with-1-1-images.php * Update product-query-product-gallery.php * Update product-query-minimal-product-list.php * Update footer-simple-dark.php * Update footer-simple-menu-and-cart.php * Update footer-simple.php * Update footer-with-2-menus-dark.php * Update footer-with-2-menus.php * Update footer-with-3-menus.php * Update product-query-minimal-5-column-products-row.php * Update product-query-large-image-product-gallery.php * Update product-query-4-column-product-row.php * Update product-query-3-column-product-row.php * Update product-query-1-1-image-4-column-products-row.php * Update product-listing-with-gallery-and-description.php * Update product-hero.php * Update product-hero-2-col-2-row.php * Update product-featured-2-columns.php * Update product-details-pattern.php * Update product-details-listing.php * Update product-collections-newest-arrivals.php * Update product-collections-featured-collections.php * Update product-collections-featured-collection.php * Update no-products-found.php * Update just-arrived-full-hero.php * Update hero-product-split.php * Update hero-product-chessboard.php * Update hero-product-3-split.php * Update header-minimal.php * Update header-large.php * Update header-large-dark.php * Update header-essential.php * Update header-essential-dark.php * Update header-centered-search-pattern.php * Update readme.md * Update and rename readme.md to README.md * Update patterns/README.md Co-authored-by: Karol Manijak <karol.manijak@automattic.com> --------- Co-authored-by: Karol Manijak <karol.manijak@automattic.com> Co-authored-by: Niels Lange <info@nielslange.de>
2023-06-21 07:50:12 +00:00
* Title: Product Collections Featured Collections
* Slug: woocommerce-blocks/product-collections-featured-collections
* Categories: WooCommerce
*/
[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 07:05:44 +00:00
use Automattic\WooCommerce\Blocks\Patterns\PatternsHelper;
[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 07:05:44 +00:00
$image1 = PatternsHelper::get_image_url( $images, 0, 'images/pattern-placeholders/technology-white-camera-photography-vintage-photographer.png' );
$image2 = PatternsHelper::get_image_url( $images, 1, 'images/pattern-placeholders/leather-guitar-typewriter-red-gadget-sofa.png' );
$image3 = PatternsHelper::get_image_url( $images, 2, 'images/pattern-placeholders/music-technology-play-equipment-studio-gadget.png' );
$image4 = PatternsHelper::get_image_url( $images, 3, 'images/pattern-placeholders/technology-joystick-gadget-console-games-playstation.png' );
$first_title = $content['titles'][0]['default'] ?? '';
$second_title = $content['titles'][1]['default'] ?? '';
$first_button = $content['buttons'][0]['default'] ?? '';
$second_button = $content['buttons'][1]['default'] ?? '';
?>
<!-- wp:columns {"align":"wide","style":{"spacing":{"padding":{"top":"0","right":"0","bottom":"0","left":"0"},"blockGap":{"top":"0","left":"0"}}}} -->
<div class="wp-block-columns alignwide" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0">
<!-- wp:column {"width":"50%","style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}},"color":{"background":"#f3edd8"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-column has-background" style="background-color:#f3edd8;padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px;flex-basis:50%">
<!-- wp:heading {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"},"color":{"text":"#000000"}},"fontSize":"x-large"} -->
<h2 class="wp-block-heading has-text-color has-x-large-font-size" style="color:#000000;font-style:normal;font-weight:700"><?php echo esc_html( $first_title ); ?></h2>
<!-- /wp:heading -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"style":{"spacing":{"padding":{"left":"18px","right":"18px","top":"9px","bottom":"9px"}},"typography":{"fontSize":"16px"},"color":{"background":"#000000","text":"#ffffff"}}} -->
<div class="wp-block-button has-custom-font-size" style="font-size:16px">
<a href="<?php echo esc_url( wc_get_page_permalink( 'shop' ) ); ?>" class="wp-block-button__link has-text-color has-background wp-element-button" style="color:#ffffff;background-color:#000000;padding-top:9px;padding-right:18px;padding-bottom:9px;padding-left:18px"><?php echo esc_html( $first_button ); ?></a>
</div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group">
<!-- wp:image {"width":140,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized">
[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 07:05:44 +00:00
<img src="<?php echo esc_url( $image1 ); ?>" alt="<?php esc_attr_e( 'Placeholder image used to represent products being showcased in a left side of a banner. 1 out of 2.', 'woo-gutenberg-products-block' ); ?>" width="140" />
</figure>
<!-- /wp:image -->
<!-- wp:image {"width":140,"height":100,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized">
[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 07:05:44 +00:00
<img src="<?php echo esc_url( $image2 ); ?>" alt="<?php esc_attr_e( 'Placeholder image used to represent products being showcased in a left side of a banner. 2 out of 2.', 'woo-gutenberg-products-block' ); ?>" width="140" height="100" />
</figure>
<!-- /wp:image -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
<!-- wp:column {"width":"50%","style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}},"color":{"background":"#d8f2f3"}}} -->
<div class="wp-block-column has-background" style="background-color:#d8f2f3;padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px;flex-basis:50%">
<!-- wp:heading {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"},"color":{"text":"#000000"}},"fontSize":"x-large"} -->
<h2 class="wp-block-heading has-text-color has-x-large-font-size" style="color:#000000;font-style:normal;font-weight:700"><?php echo esc_html( $second_title ); ?></h2>
<!-- /wp:heading -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"style":{"spacing":{"padding":{"left":"18px","right":"18px","top":"9px","bottom":"9px"}},"typography":{"fontSize":"16px"},"color":{"background":"#000000","text":"#ffffff"}}} -->
<div class="wp-block-button has-custom-font-size" style="font-size:16px">
<a href="<?php echo esc_url( wc_get_page_permalink( 'shop' ) ); ?>" class="wp-block-button__link has-text-color has-background wp-element-button" style="color:#ffffff;background-color:#000000;padding-top:9px;padding-right:18px;padding-bottom:9px;padding-left:18px"><?php echo esc_html( $second_button ); ?></a>
</div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group">
<!-- wp:image {"width":140,"height":100,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized">
[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 07:05:44 +00:00
<img src="<?php echo esc_url( $image3 ); ?>" alt="<?php esc_attr_e( 'Placeholder image used to represent products being showcased in a right side of a banner. 1 out of 2.', 'woo-gutenberg-products-block' ); ?>" width="140" height="100" />
</figure>
<!-- /wp:image -->
<!-- wp:image {"width":140,"height":100,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized">
[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 07:05:44 +00:00
<img src="<?php echo esc_url( $image4 ); ?>" alt="<?php esc_attr_e( 'Placeholder image used to represent products being showcased in a right side of a banner. 2 out of 2.', 'woo-gutenberg-products-block' ); ?>" width="140" height="100" />
</figure>
<!-- /wp:image -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->