HEX
Server: Apache
System: Linux 66-116-199-115.webhostbox.net 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Aug 15 14:47:52 EDT 2024 x86_64
User: blushinc (1003)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/blushinc/loleverywhere.com/wp-content/plugins/td-woo/shortcodes/td_woo_product_image.php
<?php

/**
 * Class td_woo_product_image - shortcode for woocommerce single products images
 */
class td_woo_product_image extends td_block {

	public function get_custom_css() {
		// $unique_block_class
		$unique_block_class = $this->block_uid;

		$compiled_css = '';

		$raw_css =
            "<style>
            
                /* @general_style */
                body.woocommerce .td_woo_product_image div.woocommerce-product-gallery {
                    margin-bottom: 0;
                }
                body.woocommerce .td_woo_product_image .onsale {
                    top: 0;
                    left: 0;
                    padding: 10px;
                    min-width: 0;
                    min-height: 0;
                    background-color: var(--td_theme_color, #4db2ec);
                    font-size: 12px;
                    line-height: 1;
                    border: 0 solid #000;
                    border-radius: 0;
                }
                .td_woo_product_image {
                    display: flex;
                }
                .woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
                    width: 100%;
                }
                .td_woo_product_image .elastislide-wrapper {
                    padding: 0;
                }
                .td_woo_product_image div.woocommerce-product-gallery .flex-control-thumbs {
                    border: 0 solid #000;
                }
                .td_woo_product_image div.woocommerce-product-gallery .flex-control-thumbs li img {
                    border: 0 solid #000;
                }
                .td_woo_product_image div.woocommerce-product-gallery div.elastislide-wrapper .flex-control-thumbs {
                    overflow: initial;
                    padding: 0;
                    white-space: nowrap;
                    line-height: 0;
                    transition: all 0.3s ease-in-out !important;
                }
                .td_woo_product_image div.woocommerce-product-gallery div.elastislide-wrapper .flex-control-thumbs li {
                    float: none;
                }
                .td_woo_product_image div.woocommerce-product-gallery div.elastislide-horizontal .flex-control-thumbs li {
                    display: inline-block;
                }
                .td_woo_product_image .elastislide-wrapper {
                    box-shadow: none;
                    border: 0 solid #000;
                }
                .td_woo_product_image .elastislide-wrapper nav span {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    background: rgba(0, 0, 0, 0.8);
                    font-size: 0;
                    text-indent: 0;
                    line-height: 0;
                }
                .td_woo_product_image .elastislide-wrapper nav span:after {
                    display: block;
                    position: relative;
                    font-family: 'newspaper';
                    line-height: 1;
                    color: #fff;
                }
                .td_woo_product_image .elastislide-horizontal nav span {
                    margin-top: 0;
                    transform: translateY(-50%);
                    -webkit-transform: translateY(-50%);
                }
                .td_woo_product_image .elastislide-horizontal nav .elastislide-prev:after {
                    content: '\\e802';
                }
                .td_woo_product_image .elastislide-horizontal nav .elastislide-next:after {
                    content: '\\e803';
                    left: 1px;
                }
                .td_woo_product_image .elastislide-vertical nav span {
                    margin-left: 0;
                    transform: translateX(-50%);
                    -webkit-transform: translateX(-50%);
                }
                .td_woo_product_image .elastislide-vertical nav .elastislide-prev:after {
                    content: '\\e804';
                }
                .td_woo_product_image .elastislide-vertical nav .elastislide-next:after {
                    content: '\\e801';
                }
                .pswp {
                    z-index: 10000;
                }
                .pswp .pswp__button:before {
                    display: none;
                }
                .pswp .pswp__button:after {
                    display: block;
                    position: absolute;
                    top: 50%;
                    -webkit-transform: translateY(-50%);
                    transform: translateY(-50%);
                    font-family: 'newspaper';
                    font-size: 24px;
                    line-height: 1;
                    color: #fff;
                }
                .pswp .pswp__button--arrow--left:after {
                    content: '\\e802';
                    left: 10px;
                }
                .pswp .pswp__button--arrow--right:after {
                    content: '\\e803';
                    right: 10px;
                }
                .pswp .pswp__ui--fit .pswp__caption,
                .pswp .pswp__ui--fit .pswp__top-bar {
                    background-color: transparent;
                }
                
                
                /* @carousel_normal */
                body.woocommerce div.product div.td_woo_product_image div.woocommerce-product-gallery ol.flex-control-thumbs {
                    display: flex;
                    flex-wrap: wrap;
                }
                body.woocommerce div.product div.td_woo_product_image div.woocommerce-product-gallery ol.flex-control-thumbs li {
                    clear: none;
                }
                
                /* @carousel_vertical */
                body.woocommerce .td_woo_product_image div.woocommerce-product-gallery {
                    display: flex;
                }
                body.woocommerce .td_woo_product_image div.woocommerce-product-gallery .flex-viewport {
                    flex: 1;
                    order: 1;
                }
                .td_woo_product_image .elastislide-carousel {
                    height: 100%;
                }
                .td_woo_product_image .elastislide-wrapper {
                    width: auto;
                    height: auto !important;
                    max-width: none !important;
                }
                .td_woo_product_image .elastislide-wrapper .flex-control-thumbs li {
                    width: 100%;
                    max-width: none !important;
                    max-height: none !important;
                }
                .woocommerce .td_woo_product_image .elastislide-wrapper .flex-control-thumbs li img {
                    max-width: none;
                    width: 90px;
                }
                body.woocommerce .td_woo_product_image .onsale {
                    left: 90px;
                }
                
                /* @sale_margin */
                body.woocommerce div.$unique_block_class .onsale {
                    margin: @sale_margin;
                }
                /* @sale_padding */
                body.woocommerce div.$unique_block_class .onsale {
                    padding: @sale_padding;
                }
                /* @sale_border */
                body.woocommerce div.$unique_block_class .onsale {
                    border-width: @sale_border;
                } 
                /* @sale_border_style */
                body.woocommerce div.$unique_block_class .onsale {
                    border-style: @sale_border_style;
                }     
                /* @sale_radius */
                body.woocommerce div.$unique_block_class .onsale {
                    border-radius: @sale_radius;
                }              
                
                /* @img_vertical */
                body.woocommerce .$unique_block_class.td_woo_product_image .elastislide-wrapper .flex-control-thumbs li img {
                    width: @img_vertical;
                }
                body.woocommerce .td_woo_product_image .onsale {
                    left: @img_vertical;
                }
                
                
                /* @slider_space */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    margin-top: @slider_space;
                }
                /* @slider_space_h */
                .$unique_block_class .elastislide-wrapper {
                    margin-top: @slider_space_h;
                }
                /* @slider_space_v */
                .$unique_block_class .elastislide-wrapper {
                    margin-right: @slider_space_v;
                }
                /* @slider_padding */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    padding: @slider_padding;
                }
                /* @slider_padding_hv */
                .$unique_block_class .elastislide-wrapper {
                    padding: @slider_padding_hv;
                }
                /* @slider_border */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    border-width: @slider_border;
                }
                /* @slider_border_hv */
                .$unique_block_class .elastislide-wrapper {
                    border-width: @slider_border_hv;
                }
                /* @slider_border_style */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    border-style: @slider_border_style;
                }
                /* @slider_border_style_hv */
                .$unique_block_class .elastislide-wrapper {
                    border-style: @slider_border_style_hv;
                }
                
                /* @imgs_on_row_h */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li {
                    width: @imgs_on_row_h !important;
                }
                /* @imgs_gap_h */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li {
                    padding-left: @imgs_gap_h;
                    padding-right: @imgs_gap_h;
                }
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    margin-left: -@imgs_gap_h;
                    margin-right: -@imgs_gap_h;
                }
                /* @imgs_gap_bottom */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li {
                    margin-bottom: @imgs_gap_bottom;
                }
				/* @padding */
				body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li:nth-last-child(@padding) {
					margin-bottom: 0;
				}
                /* @imgs_opacity */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img:not(.flex-active) {
                    opacity: @imgs_opacity;
                }
                /* @imgs_border */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img {
                    border-width: @imgs_border;
                }
                /* @imgs_border_style */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img {
                    border-style: @imgs_border_style;
                }
                /* @imgs_opacity_a */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
                    opacity: @imgs_opacity_a;
                }
                /* @imgs_border_a */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
                    border-width: @imgs_border_a;
                }
                /* @imgs_border_style_a */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
                    border-style: @imgs_border_style_a;
                }
            
                /* @icon_size */
                .$unique_block_class .elastislide-wrapper nav span:after {
                    font-size: @icon_size;
                }
                /* @icon_spacing */
                .$unique_block_class .elastislide-wrapper nav span {
                    width: @icon_spacing;
                    height: @icon_spacing;
                }
            
            
            
                /* @sale_txt_color */
                body.woocommerce div.$unique_block_class .onsale {
                    color: @sale_txt_color;
                } 
                /* @sale_bg_color */
                body.woocommerce div.$unique_block_class .onsale {
                    background-color: @sale_bg_color;
                } 
                /* @sale_border_color */
                body.woocommerce div.$unique_block_class .onsale {
                    border-color: @sale_border_color;
                }
                
                /* @zoom_ico_color */
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:before {
                    border-color: @zoom_ico_color;
                }
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:after {
                    background-color: @zoom_ico_color;
                }
                /* @zoom_ico_color_h */
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover:before {
                    border-color: @zoom_ico_color_h;
                }
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover:after {
                    background-color: @zoom_ico_color_h;
                }
                /* @zoom_bg_color */
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
                    background-color: @zoom_bg_color;
                }
                /* @zoom_bg_color_h */
                body.woocommerce .$unique_block_class div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover {
                    background-color: @zoom_bg_color_h;
                }
                
                /* @slider_bg_color */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    background-color: @slider_bg_color;
                }
                /* @slider_bg_color_hv */
                .$unique_block_class .elastislide-wrapper {
                    background-color: @slider_bg_color_hv;
                }
                /* @slider_border_color */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs {
                    border-color: @slider_border_color;
                }
                /* @slider_border_color_hv */
                .$unique_block_class .elastislide-wrapper {
                    border-color: @slider_border_color_hv;
                }
                /* @imgs_border_color */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img {
                    border-color: @imgs_border_color;
                }
                /* @imgs_border_color_a */
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
                body.woocommerce div.$unique_block_class div.woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
                    border-color: @imgs_border_color_a;
                }
                /* @nav_ico_color */
                .$unique_block_class .elastislide-wrapper nav span:after {
                    color: @nav_ico_color;
                }
                /* @nav_ico_color_h */
                .$unique_block_class .elastislide-wrapper nav span:hover:after {
                    color: @nav_ico_color_h;
                }
                /* @nav_bg_color */
                .$unique_block_class .elastislide-wrapper nav span {
                    background-color: @nav_bg_color;
                }
                /* @nav_bg_color_h */
                .$unique_block_class .elastislide-wrapper nav span:hover {
                    background-color: @nav_bg_color_h;
                }
                /* @modal_bg_color */
                .pswp .pswp__bg {
                    background-color: @modal_bg_color;
                }
                /* @modal_title_color */
                .pswp .pswp__caption__center {
                    color: @modal_title_color;
                }
                /* @modal_arrow_color */
                .pswp .pswp__button:after {
                    color: @modal_arrow_color;
                }
                /* @modal_arrow_color_h */
                .pswp .pswp__button:hover:after {
                    color: @modal_arrow_color_h;
                }
                
                
                /* @f_sale */
                body.woocommerce div.$unique_block_class .onsale {
                    @f_sale
                } 
            
            </style>";

		$td_css_res_compiler = new td_css_res_compiler( $raw_css );
		$td_css_res_compiler->load_settings( __CLASS__ . '::cssMedia', $this->get_all_atts() );

		$compiled_css .= $td_css_res_compiler->compile_css();
		return $compiled_css;
	}

	static function cssMedia( $res_ctx ) {

        $product_gallery = $res_ctx->get_shortcode_att('product_gallery');

        /*-- GENERAL-- */
        $res_ctx->load_settings_raw( 'general_style', 1 );
        if ( $product_gallery === '' ) {
            $res_ctx->load_settings_raw( 'carousel_normal', 1 );
        } else if ( $product_gallery === 'carousel_vertical' ) {
            $res_ctx->load_settings_raw( 'carousel_vertical', 1 );
        }



        /*-- SALE TAG -- */
        // sale tag margin
        $sale_margin = $res_ctx->get_shortcode_att( 'sale_margin' );
        $res_ctx->load_settings_raw( 'sale_margin', $sale_margin );
        if( $sale_margin != '' && is_numeric( $sale_margin ) ) {
            $res_ctx->load_settings_raw( 'sale_margin', $sale_margin . 'px' );
        }
        // sale tag padding
        $sale_padding = $res_ctx->get_shortcode_att( 'sale_padding' );
        $res_ctx->load_settings_raw( 'sale_padding', $sale_padding );
        if( $sale_padding != '' && is_numeric( $sale_padding ) ) {
            $res_ctx->load_settings_raw( 'sale_padding', $sale_padding . 'px' );
        }

        // sale tag border size
        $sale_border = $res_ctx->get_shortcode_att( 'sale_border' );
        $res_ctx->load_settings_raw( 'sale_border', $sale_border );
        if( $sale_border != '' && is_numeric( $sale_border ) ) {
            $res_ctx->load_settings_raw( 'sale_border', $sale_border . 'px' );
        }
        // sale tag border style
        $res_ctx->load_settings_raw( 'sale_border_style', $res_ctx->get_shortcode_att( 'sale_border_style'  ) );
        // sale tag border radius
        $sale_radius = $res_ctx->get_shortcode_att( 'sale_radius' );
        $res_ctx->load_settings_raw( 'sale_radius', $sale_radius );
        if( $sale_radius != '' && is_numeric( $sale_radius ) ) {
            $res_ctx->load_settings_raw( 'sale_radius', $sale_radius . 'px' );
        }


        /*-- GALLERY SLIDER -- */
        // slider top space
        $slider_space = $res_ctx->get_shortcode_att('slider_space');
        if( $product_gallery === '' ) {
            $res_ctx->load_settings_raw('slider_space', $slider_space);
            if ($slider_space != '' && is_numeric($slider_space)) {
                $res_ctx->load_settings_raw('slider_space', $slider_space . 'px');
            }
        } else if( $product_gallery === 'carousel_horizontal' ) {
            $res_ctx->load_settings_raw('slider_space_h', $slider_space);
            if ($slider_space != '' && is_numeric($slider_space)) {
                $res_ctx->load_settings_raw('slider_space_h', $slider_space . 'px');
            }
        } else if( $product_gallery === 'carousel_vertical' ) {
            $res_ctx->load_settings_raw('slider_space_v', $slider_space);
            if ($slider_space != '' && is_numeric($slider_space)) {
                $res_ctx->load_settings_raw('slider_space_v', $slider_space . 'px');
            }
        }
        // img_vertical
        $img_vertical = $res_ctx->get_shortcode_att('img_vertical');
        $res_ctx->load_settings_raw('img_vertical', $img_vertical);
        if ( $img_vertical != '' && is_numeric( $img_vertical ) ) {
            $res_ctx->load_settings_raw('img_vertical', $img_vertical . 'px');
        }


        // slider padding
        $slider_padding = $res_ctx->get_shortcode_att('slider_padding');
        if( $product_gallery === '' ) {
            $res_ctx->load_settings_raw( 'slider_padding', $slider_padding );
            if( $slider_padding != '' && is_numeric( $slider_padding ) ) {
                $res_ctx->load_settings_raw( 'slider_padding', $slider_padding . 'px' );
            }
        } else {
            $res_ctx->load_settings_raw( 'slider_padding_hv', $slider_padding );
            if( $slider_padding != '' && is_numeric( $slider_padding ) ) {
                $res_ctx->load_settings_raw( 'slider_padding_hv', $slider_padding . 'px' );
            }
        }
        // slider border size
        $slider_border = $res_ctx->get_shortcode_att('slider_border');
        if( $product_gallery === '' ) {
            $res_ctx->load_settings_raw( 'slider_border', $slider_border );
            if( $slider_border != '' && is_numeric( $slider_border ) ) {
                $res_ctx->load_settings_raw( 'slider_border', $slider_border . 'px' );
            }
        } else {
            $res_ctx->load_settings_raw( 'slider_border_hv', $slider_border );
            if( $slider_border != '' && is_numeric( $slider_border ) ) {
                $res_ctx->load_settings_raw( 'slider_border_hv', $slider_border . 'px' );
            }
        }
        // slider border style
        $slider_border_style = $res_ctx->get_shortcode_att('slider_border_style');
        if( $product_gallery === '' ) {
            $res_ctx->load_settings_raw( 'slider_border_style', $slider_border_style );
            if( $slider_border_style == '' ) {
                $res_ctx->load_settings_raw( 'slider_border_style', 'solid' );
            }
        } else {
            $res_ctx->load_settings_raw( 'slider_border_style_hv', $slider_border_style );
            if( $slider_border_style == '' ) {
                $res_ctx->load_settings_raw( 'slider_border_style_hv', 'solid' );
            }
        }

        // images per row
        $imgs_on_row = $res_ctx->get_shortcode_att('imgs_on_row');
        if ( $imgs_on_row == '' ) {
            $imgs_on_row = '100%';
        }
        if( $product_gallery === '' || $product_gallery === 'carousel_horizontal' ) {
            $res_ctx->load_settings_raw( 'imgs_on_row_h', $imgs_on_row );
        }
        // modules clearfix
        $padding = 'padding';
        if( $product_gallery === '' ) {
            switch ($imgs_on_row) {
                case '100%':
                    $res_ctx->load_settings_raw( $padding,  '1' );
                    break;
                case '50%':
                    $res_ctx->load_settings_raw( $padding,  '-n+2' );
                    break;
                case '33.33333333%':
                    $res_ctx->load_settings_raw( $padding,  '-n+3' );
                    break;
                case '25%':
                    $res_ctx->load_settings_raw( $padding,  '-n+4' );
                    break;
                case '20%':
                    $res_ctx->load_settings_raw( $padding,  '-n+5' );
                    break;
                case '16.66666667%':
                    $res_ctx->load_settings_raw( $padding,  '-n+6' );
                    break;
                case '14.28571428%':
                    $res_ctx->load_settings_raw( $padding,  '-n+7' );
                    break;
                case '12.5%':
                    $res_ctx->load_settings_raw( $padding,  '-n+8' );
                    break;
                case '11.11111111%':
                    $res_ctx->load_settings_raw( $padding,  '-n+9' );
                    break;
                case '10%':
                    $res_ctx->load_settings_raw( $padding,  '-n+10' );
                    break;
            }
        } else if ( $product_gallery === 'carousel_vertical' ) {
            $res_ctx->load_settings_raw( $padding,  '1' );
        }


        // gap
        $imgs_gap = $res_ctx->get_shortcode_att('imgs_gap');
        if ( $imgs_gap != '' && is_numeric( $imgs_gap ) ) {
            if( $product_gallery === '' || $product_gallery === 'carousel_vertical' ) {
                $res_ctx->load_settings_raw('imgs_gap_bottom', $imgs_gap . 'px');
            }

            if( $product_gallery === '' || $product_gallery === 'carousel_horizontal' ) {
                $res_ctx->load_settings_raw('imgs_gap_h', $imgs_gap / 2 . 'px');
            } else if ( $product_gallery === 'carousel_vertical' ) {
                $res_ctx->load_settings_raw('imgs_gap_v', $imgs_gap / 2 . 'px');
            }
        }

        // images opacity
        $res_ctx->load_settings_raw('imgs_opacity', $res_ctx->get_shortcode_att('imgs_opacity'));
        // images border size
        $imgs_border = $res_ctx->get_shortcode_att('imgs_border');
        $res_ctx->load_settings_raw('imgs_border', $imgs_border);
        if( $imgs_border != '' && is_numeric( $imgs_border ) ) {
            $res_ctx->load_settings_raw('imgs_border', $imgs_border . 'px');
        }
        // images border style
        $res_ctx->load_settings_raw('imgs_border_style', $res_ctx->get_shortcode_att('imgs_border_style'));

        // images active opacity
        $res_ctx->load_settings_raw('imgs_opacity_a', $res_ctx->get_shortcode_att('imgs_opacity_a'));
        // images active border size
        $imgs_border_a = $res_ctx->get_shortcode_att('imgs_border_a');
        $res_ctx->load_settings_raw('imgs_border_a', $imgs_border_a);
        if( $imgs_border_a != '' && is_numeric( $imgs_border_a ) ) {
            $res_ctx->load_settings_raw('imgs_border_a', $imgs_border_a . 'px');
        }
        // images active border style
        $res_ctx->load_settings_raw('imgs_border_style_a', $res_ctx->get_shortcode_att('imgs_border_style_a'));


        // icon size
        $res_ctx->load_settings_raw( 'icon_size', $res_ctx->get_shortcode_att( 'icon_size' ) . 'px' );

        // icon spacing
        $res_ctx->load_settings_raw('icon_spacing', $res_ctx->get_shortcode_att( 'icon_size' ) * $res_ctx->get_shortcode_att( 'icon_spacing' ) . 'px');



        /*-- COLORS -- */
        $res_ctx->load_settings_raw('sale_txt_color', $res_ctx->get_shortcode_att( 'sale_txt_color' ));
        $res_ctx->load_settings_raw('sale_bg_color', $res_ctx->get_shortcode_att( 'sale_bg_color' ));
        $res_ctx->load_settings_raw('sale_border_color', $res_ctx->get_shortcode_att( 'sale_border_color' ));

        $res_ctx->load_settings_raw('zoom_ico_color', $res_ctx->get_shortcode_att( 'zoom_ico_color' ));
        $res_ctx->load_settings_raw('zoom_ico_color_h', $res_ctx->get_shortcode_att( 'zoom_ico_color_h' ));
        $res_ctx->load_settings_raw('zoom_bg_color', $res_ctx->get_shortcode_att( 'zoom_bg_color' ));
        $res_ctx->load_settings_raw('zoom_bg_color_h', $res_ctx->get_shortcode_att( 'zoom_bg_color_h' ));

        if( $product_gallery === '' ) {
            $res_ctx->load_settings_raw('slider_bg_color', $res_ctx->get_shortcode_att( 'slider_bg_color' ));
            $res_ctx->load_settings_raw('slider_border_color', $res_ctx->get_shortcode_att( 'slider_border_color' ));
        } else {
            $res_ctx->load_settings_raw('slider_bg_color_hv', $res_ctx->get_shortcode_att( 'slider_bg_color' ));
            $res_ctx->load_settings_raw('slider_border_color_hv', $res_ctx->get_shortcode_att( 'slider_border_color' ));
        }
        $res_ctx->load_settings_raw('imgs_border_color', $res_ctx->get_shortcode_att( 'imgs_border_color' ));
        $res_ctx->load_settings_raw('imgs_border_color_a', $res_ctx->get_shortcode_att( 'imgs_border_color_a' ));
        $res_ctx->load_settings_raw('nav_ico_color', $res_ctx->get_shortcode_att( 'nav_ico_color' ));
        $res_ctx->load_settings_raw('nav_ico_color_h', $res_ctx->get_shortcode_att( 'nav_ico_color_h' ));
        $res_ctx->load_settings_raw('nav_bg_color', $res_ctx->get_shortcode_att( 'nav_bg_color' ));
        $res_ctx->load_settings_raw('nav_bg_color_h', $res_ctx->get_shortcode_att( 'nav_bg_color_h' ));

        $res_ctx->load_settings_raw('modal_bg_color', $res_ctx->get_shortcode_att( 'modal_bg_color' ));
        $res_ctx->load_settings_raw('modal_title_color', $res_ctx->get_shortcode_att( 'modal_title_color' ));
        $res_ctx->load_settings_raw('modal_arrow_color', $res_ctx->get_shortcode_att( 'modal_arrow_color' ));
        $res_ctx->load_settings_raw('modal_arrow_color_h', $res_ctx->get_shortcode_att( 'modal_arrow_color_h' ));



        /*-- FONTS -- */
        $res_ctx->load_font_settings( 'f_sale' );

    }

	function __construct() {
		parent::disable_loop_block_features();
	}

	function render($atts, $content = null) {

		global $td_woo_state_single_product_page;

		$product_img_data = $td_woo_state_single_product_page->product_image->__invoke($atts);

		parent::render($atts);

		$product_gallery = $this->get_att('product_gallery');

		$columns           = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
		$wrapper_classes   = apply_filters(
			'woocommerce_single_product_image_gallery_classes',
			array(
				'woocommerce-product-gallery',
				'woocommerce-product-gallery--' . ( $product_img_data['with_images'] ? 'with-images' : 'without-images' ),
				'woocommerce-product-gallery--columns-' . absint( $columns ),
				'images',
			)
		);

		// data type
		$sample_data = $product_img_data['sample_data'];

		// $unique_block_class
		$unique_block_class = $this->block_uid;

		$buffy = '';

		$buffy .= '<div id="' . $unique_block_class . '" class="' . $this->get_block_classes() . '" ' . $this->get_block_html_atts() . '>';

			//get the block css
			$buffy .= $this->get_block_css();

			//get the js for this block
			$buffy .= $this->get_block_js();

		    $style = '';
            if ( ! tdc_state::is_live_editor_ajax() and ! tdc_state::is_live_editor_iframe() ) {
	            $style = 'opacity: 0; transition: opacity .25s ease-in-out; width: 100%;';
            }

            if ( $sample_data || tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe() ) {
	            $style .= 'width: 100%;';
            }

            if ( $product_img_data['on_sale'] ) {
	            $buffy .= apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woocommerce' ) . '</span>', $product_img_data['product'], $product_img_data['product'] );
            }

			$buffy .= '<div class="' . esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ) . '" data-columns="' . esc_attr( $columns ) . '" style="' . $style . '">';
		        if ( $sample_data ) {
                    $buffy .= $product_img_data['sample_html'];
                } else {
                    $buffy .= '<figure class="woocommerce-product-gallery__wrapper">';

                        // images gallery ( .. it also displays the single main product image  )
			            $buffy .= $product_img_data['gallery_images_html'];

                    $buffy .= '</figure>';
		        }
			$buffy .= '</div>';

            td_resources_load::render_script( TD_WOO_SCRIPTS_URL . '/modernizr.custom.17475.js' . TD_WOO_SCRIPTS_VER, 'modernizr-custom-17475-js', '', 'footer' );
            td_resources_load::render_script( TD_WOO_SCRIPTS_URL . '/jquerypp.custom.js' . TD_WOO_SCRIPTS_VER, 'elastislide-jquerypp-custom-js', '', 'footer' );
            td_resources_load::render_script( TD_WOO_SCRIPTS_URL . '/jquery.elastislide.js' . TD_WOO_SCRIPTS_VER, 'elastislide-jquery-js', '', 'footer' );

			if ( $product_gallery === 'carousel_horizontal' ) {
				ob_start();
				?>
                <script>
                    setTimeout( function(){
                        jQuery('.flex-control-thumbs').elastislide({
                            orientation : 'horizontal',
                            minItems : 3,
                            start : 0,
                        });
                    }, 200 );
                </script>
				<?php
				td_js_buffer::add_to_footer( "\n" . td_util::remove_script_tag( ob_get_clean() ) );
            }
			if ( $product_gallery === 'carousel_vertical' ) {
				ob_start();
				?>
                <script>
                    setTimeout( function(){
                        jQuery('.flex-control-thumbs').elastislide({
                            orientation : 'vertical',
                            minItems : 3,
                            start : 0,
                        });
                    }, 200 );
                </script>
				<?php
				td_js_buffer::add_to_footer( "\n" . td_util::remove_script_tag( ob_get_clean() ) );
            }

		$buffy .= '</div>';

		return $buffy;
	}

	function js_tdc_callback_ajax() {
		$buffy = '';

		$product_gallery = $this->get_att('product_gallery');

		// add a new composer block - that one has the delete callback
		$buffy .= $this->js_tdc_get_composer_block();

		ob_start();
		?>
        <script>
            /* global jQuery:{} */
            ( function () {
                /*
                 * Reinitialize the gallery.
                 */
                jQuery( '.<?php echo $this->block_uid; ?> .woocommerce-product-gallery' ).each( function() {
                    jQuery( this ).trigger( 'wc-product-gallery-before-init', [ this, wc_single_product_params ] );
                    jQuery( this ).wc_product_gallery( wc_single_product_params );
                    jQuery( this ).trigger( 'wc-product-gallery-after-init', [ this, wc_single_product_params ] );
                });

                <?php
                if ( $product_gallery === 'carousel_horizontal' ) { ?>
                    setTimeout( function(){
                        jQuery('.flex-control-thumbs').elastislide({
                            orientation : 'horizontal',
                            minItems : 3,
                            start : 0,
                        });
                    }, 200 );
                <?php
                }

                if ( $product_gallery === 'carousel_vertical' ) { ?>
                    setTimeout( function(){
                        jQuery('.flex-control-thumbs').elastislide({
                            orientation : 'vertical',
                            minItems : 3,
                            start : 0,
                        });
                    }, 200 );
                <?php
                } ?>
            })();
        </script>
        <?php

		return $buffy . td_util::remove_script_tag( ob_get_clean() );
	}

}