woocommerce/plugins/woocommerce-blocks/patterns/discount-banner-with-image.php

54 lines
3.4 KiB
PHP
Raw Normal View History

<?php
/**
* Title: Discount Banner with Image
* Slug: woocommerce-blocks/discount-banner-with-image
* 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;
$description = $content['descriptions'][0]['default'] ?? '';
?>
<!-- wp:columns {"verticalAlignment":"center","align":"wide","style":{"color":{"background":"#254094"},"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}}}} -->
<div class="wp-block-columns alignwide are-vertically-aligned-center has-background" style="background-color:#254094;padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px">
<!-- wp:column {"verticalAlignment":"center","width":""} -->
<div class="wp-block-column is-vertically-aligned-center">
<!-- wp:group {"style":{"spacing":{"padding":{"top":"15px"}}},"layout":{"type":"constrained","contentSize":"350px"}} -->
<div class="wp-block-group" style="padding-top:15px">
<!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"500","fontSize":"45px","lineHeight":"0"},"color":{"text":"#ffffff"}}} -->
<p class="has-text-color" style="color:#ffffff;font-size:45px;font-style:normal;font-weight:500;line-height:0">UP TO</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"style":{"color":{"text":"#fdf251"},"typography":{"fontStyle":"normal","fontWeight":"800","fontSize":"90px","lineHeight":"0.8"}}} -->
<p class="has-text-color" style="color:#fdf251;font-size:90px;font-style:normal;font-weight:800;line-height:0.8">40% off</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"300","fontSize":"35px","lineHeight":"0"},"color":{"text":"#ffffff"},"spacing":{"margin":{"bottom":"40px"}}}} -->
<p class="has-text-color" style="color:#ffffff;margin-bottom:40px;font-size:35px;font-style:normal;font-weight:300;line-height:0"><?php echo esc_html( $description ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"style":{"color":{"background":"#ff7179","text":"#ffffff"},"border":{"radius":"40px","width":"0px","style":"none"},"spacing":{"padding":{"top":"10px","bottom":"10px","left":"30px","right":"30px"}}}} -->
<div class="wp-block-button"><a class="wp-block-button__link has-text-color has-background wp-element-button" href="<?php echo esc_url( get_permalink( wc_get_page_id( 'shop' ) ) ); ?>" style="border-style:none;border-width:0px;border-radius:40px;color:#ffffff;background-color:#ff7179;padding-top:10px;padding-right:30px;padding-bottom:10px;padding-left:30px">Shop now</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
<!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center">
<!-- wp:image {"align":"center","sizeSlug":"full","linkDestination":"none","style":{"border":{"radius":{"topLeft":"100px","topRight":"10px","bottomLeft":"10px","bottomRight":"100px"}}}} -->
<figure class="wp-block-image aligncenter size-full has-custom-border">
<img src="<?php echo esc_url( PatternsHelper::get_image_url( $images, 0, 'images/pattern-placeholders/table-floor-interior-atmosphere-living-room-furniture-square-lg.png' ) ); ?>" alt="" style="border-top-left-radius:100px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:100px"/>
</figure>
<!-- /wp:image -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->