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_menu_cart.php
<?php

class td_woo_menu_cart extends td_block {

    static function cssMedia( $res_ctx ) {

        /*-- GENERAL-- */
        $res_ctx->load_settings_raw('general_style', 1);
        $icon = $res_ctx->get_icon_att('tdicon');
        if ($icon != '') {
            $res_ctx->load_settings_raw('icon_arrow', 1);
        } else {
            $res_ctx->load_settings_raw('text_arrow', 1);
        }


        // show cart
        if (tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe()) {
            $res_ctx->load_settings_raw('show_cart', $res_ctx->get_shortcode_att('show_cart'));
        }


        /*-- TOGGLE -- */
        // icon size
        $icon_size = $res_ctx->get_shortcode_att('icon_size');
        // icon size
        if( base64_encode( base64_decode( $icon ) ) == $icon ) {
            $res_ctx->load_settings_raw('icon_svg_size', $icon_size . 'px');
        } else {
            $res_ctx->load_settings_raw('icon_size', $icon_size . 'px');
        }

        // icon space
        $text_pos = $res_ctx->get_shortcode_att('toggle_txt_pos');
        $icon_space = $res_ctx->get_shortcode_att('icon_space');
        if ($text_pos == '') {
            $res_ctx->load_settings_raw('icon_space_right', $icon_space);
            if ($icon_space != '') {
                if (is_numeric($icon_space)) {
                    $res_ctx->load_settings_raw('icon_space_right', $icon_space . 'px');
                }
            } else {
                $res_ctx->load_settings_raw('icon_space_right', '12px');
            }
        } else if ($text_pos == 'before') {
            $res_ctx->load_settings_raw('icon_space_left', $icon_space);
            if ($icon_space != '') {
                if (is_numeric($icon_space)) {
                    $res_ctx->load_settings_raw('icon_space_left', $icon_space . 'px');
                }
            } else {
                $res_ctx->load_settings_raw('icon_space_left', '12px');
            }
        }

        // text vertical position
        $res_ctx->load_settings_raw('toggle_txt_align', $res_ctx->get_shortcode_att('toggle_txt_align') . 'px');

        // show count
        $res_ctx->load_settings_raw('show_count', $res_ctx->get_shortcode_att('show_count'));

        // show count
        $res_ctx->load_settings_raw('show_value', $res_ctx->get_shortcode_att('show_value'));

        // align toggle
        $toggle_horiz_align = $res_ctx->get_shortcode_att('toggle_horiz_align');
        if ($toggle_horiz_align == 'content-horiz-left') {
            $res_ctx->load_settings_raw('toggle_horiz_align_left', 1);
        } else if( $toggle_horiz_align == 'content-horiz-center' ) {
            $res_ctx->load_settings_raw('toggle_horiz_align_center', 1);
        } else if( $toggle_horiz_align == 'content-horiz-right' ) {
            $res_ctx->load_settings_raw('toggle_horiz_align_right', 1);
        }

        // make inline
        $res_ctx->load_settings_raw('inline', $res_ctx->get_shortcode_att('inline'));

        // float right
        $res_ctx->load_settings_raw('float_right', $res_ctx->get_shortcode_att('float_block'));



        /*-- CART -- */
        // cart offset
        $cart_offset = $res_ctx->get_shortcode_att('cart_offset');
        $res_ctx->load_settings_raw('cart_offset', $cart_offset);
        if( $cart_offset != '' && is_numeric( $cart_offset ) ) {
            $res_ctx->load_settings_raw('cart_offset', $cart_offset . 'px');
        }

        // cart width
        $cart_width = $res_ctx->get_shortcode_att('cart_width');
        $res_ctx->load_settings_raw('cart_width', $cart_width);
        if( $cart_width != '' && is_numeric( $cart_width ) ) {
            $res_ctx->load_settings_raw('cart_width', $cart_width . 'px');
        }

        // cart padding
        $cart_padding = $res_ctx->get_shortcode_att('cart_padding');
        $res_ctx->load_settings_raw('cart_padding', $cart_padding);
        if( $cart_padding != '' && is_numeric( $cart_padding ) ) {
            $res_ctx->load_settings_raw('cart_padding', $cart_padding . 'px');
        }
        // cart padding empty
        $cart_padding_e = $res_ctx->get_shortcode_att('cart_padding_e');
        $res_ctx->load_settings_raw('cart_padding_e', $cart_padding_e);
        if( $cart_padding_e != '' && is_numeric( $cart_padding_e ) ) {
            $res_ctx->load_settings_raw('cart_padding_e', $cart_padding_e . 'px');
        }

        // cart border size
        $cart_border = $res_ctx->get_shortcode_att('cart_border');
        $res_ctx->load_settings_raw('cart_border', $cart_border);
        if( $cart_border != '' && is_numeric( $cart_border ) ) {
            $res_ctx->load_settings_raw('cart_border', $cart_border . 'px');
        }

        // cart border style
        $cart_border_style = $res_ctx->get_shortcode_att( 'cart_border_style' );
        if( $cart_border_style != '' ) {
            $res_ctx->load_settings_raw( 'cart_border_style', $cart_border_style );
        }

        // cart border radius
        $cart_border_radius = $res_ctx->get_shortcode_att('cart_border_radius');
        $res_ctx->load_settings_raw('cart_border_radius', $cart_border_radius);
        if( $cart_border_radius != '' && is_numeric( $cart_border_radius ) ) {
            $res_ctx->load_settings_raw('cart_border_radius', $cart_border_radius . 'px');
        }

        // cart align
        $cart_horiz_align = $res_ctx->get_shortcode_att('cart_horiz_align');
        if( $cart_horiz_align == 'content-horiz-left' ) {
            $res_ctx->load_settings_raw('cart_horiz_align_left', 1);
        } else if( $cart_horiz_align == 'content-horiz-center' ) {
            $res_ctx->load_settings_raw('cart_horiz_align_center', 1);
        } else if( $cart_horiz_align == 'content-horiz-right' ) {
            $res_ctx->load_settings_raw('cart_horiz_align_right', 1);
        }



        /*-- CART ITEMS LIST -- */
        // list bottom space
        $items_padd = $res_ctx->get_shortcode_att('items_padd');
        $res_ctx->load_settings_raw('items_padd', $items_padd);
        if( $items_padd != '' && is_numeric( $items_padd ) ) {
            $res_ctx->load_settings_raw('items_padd', $items_padd . 'px');
        }

        // list bottom border size
        $items_border = $res_ctx->get_shortcode_att('items_border');
        $res_ctx->load_settings_raw('items_border', $items_border);
        if( $items_border != '' && is_numeric( $items_border ) ) {
            $res_ctx->load_settings_raw('items_border', $items_border . 'px');
        }

        // list bottom border style
        $items_border_style = $res_ctx->get_shortcode_att( 'items_border_style' );
        if( $items_border_style != '' ) {
            $res_ctx->load_settings_raw( 'items_border_style', $items_border_style );
        }



        /*-- CART ITEMS -- */
        // items bottom space
        $item_space = $res_ctx->get_shortcode_att('item_space');
        $res_ctx->load_settings_raw('item_space', $item_space);
        if( $item_space != '' && is_numeric( $item_space ) ) {
            $res_ctx->load_settings_raw('item_space', $item_space . 'px');
        }
        // items padding
        $item_tb_padd_shortcode = $res_ctx->get_shortcode_att('item_tb_padd');
        $item_tb_padd = '';
        if( $item_tb_padd_shortcode != '' ) {
            if( is_numeric( $item_tb_padd_shortcode ) ) {
                $item_tb_padd = $item_tb_padd_shortcode;
            }
        } else {
            $item_tb_padd = '8';
        }
        $res_ctx->load_settings_raw('item_tb_padd', $item_tb_padd . 'px');

        $item_lr_padd = $res_ctx->get_shortcode_att('item_lr_padd');
        if( $item_lr_padd != '' ) {
            if ( is_numeric( $item_lr_padd ) ) {
                $res_ctx->load_settings_raw('item_lr_padd', $item_lr_padd . 'px');
            }
        } else {
            $res_ctx->load_settings_raw('item_lr_padd', '15px');
        }

        // items image width + space
        $image_width = $res_ctx->get_shortcode_att('image_width');
        $image_space = $res_ctx->get_shortcode_att('image_space');
        $res_ctx->load_settings_raw('image_width', $image_width . 'px');
        $res_ctx->load_settings_raw('image_left_padding', ( $image_width + $image_space ) . 'px');
        $res_ctx->load_settings_raw('item_min_height', ( $image_width + ( $item_tb_padd * 2 ) ) . 'px');

        // items image radius
        $image_radius = $res_ctx->get_shortcode_att('image_radius');
        $res_ctx->load_settings_raw('image_radius', $image_radius);
        if( $image_radius != '' && is_numeric( $image_radius ) ) {
            $res_ctx->load_settings_raw('image_radius', $image_radius . 'px');
        }

        // meta info vertical align
        $meta_info_vert = $res_ctx->get_shortcode_att('meta_info_vert');
        $res_ctx->load_settings_raw('meta_info_vert', $meta_info_vert);

        // quantity vertical align
        $res_ctx->load_settings_raw('qty_align', $res_ctx->get_shortcode_att('qty_align') . 'px');

        // variations top space
        $var_top = $res_ctx->get_shortcode_att('var_top');
        $res_ctx->load_settings_raw('var_top', $var_top);
        if( $var_top != '' && is_numeric( $var_top ) ) {
            $res_ctx->load_settings_raw('var_top', $var_top . 'px');
        }

        // subtotal padding
        $subtotal_padd = $res_ctx->get_shortcode_att('subtotal_padd');
        $res_ctx->load_settings_raw('subtotal_padd', $subtotal_padd);
        if( $subtotal_padd != '' && is_numeric( $subtotal_padd ) ) {
            $res_ctx->load_settings_raw('subtotal_padd', $subtotal_padd . 'px');
        }
        // subtotal horizontal align
        $subtotal_horiz = $res_ctx->get_shortcode_att('subtotal_horiz');
        if( $subtotal_horiz == 'content-horiz-left' ) {
            $res_ctx->load_settings_raw('subtotal_horiz_align_left', 1);
        } else if( $subtotal_horiz == 'content-horiz-center' ) {
            $res_ctx->load_settings_raw('subtotal_horiz_align_center', 1);
        } else if( $subtotal_horiz == 'content-horiz-right' ) {
            $res_ctx->load_settings_raw('subtotal_horiz_align_right', 1);
        }

        // buttons group padding
        $btns_padd = $res_ctx->get_shortcode_att('btns_padd');
        $res_ctx->load_settings_raw('btns_padd', $btns_padd);
        if( $btns_padd != '' && is_numeric( $btns_padd ) ) {
            $res_ctx->load_settings_raw('btns_padd', $btns_padd . 'px');
        }
        // buttons gap
        $btn_gap = $res_ctx->get_shortcode_att('btn_gap');
        if( $btn_gap != '' && is_numeric( $btn_gap ) ) {
            $res_ctx->load_settings_raw('btn_gap', $btn_gap / 2 . 'px');
        }
        // buttons border radius
        $btn_radius = $res_ctx->get_shortcode_att('btn_radius');
        $res_ctx->load_settings_raw('btn_radius', $btn_radius);
        if( $btn_radius != '' && is_numeric( $btn_radius ) ) {
            $res_ctx->load_settings_raw('btn_radius', $btn_radius . 'px');
        }



        /*-- COLORS -- */
        // toggle
        $res_ctx->load_settings_raw('icon_color', $res_ctx->get_shortcode_att('icon_color'));
        $res_ctx->load_settings_raw('icon_color_h', $res_ctx->get_shortcode_att('icon_color_h'));

        $res_ctx->load_settings_raw('count_txt_color', $res_ctx->get_shortcode_att('count_txt_color'));
        $res_ctx->load_settings_raw('count_bg_color', $res_ctx->get_shortcode_att('count_bg_color'));

        $res_ctx->load_settings_raw('toggle_txt_color', $res_ctx->get_shortcode_att('toggle_txt_color'));
        $res_ctx->load_settings_raw('toggle_txt_color_h', $res_ctx->get_shortcode_att('toggle_txt_color_h'));

        // cart
        $res_ctx->load_settings_raw('cart_bg', $res_ctx->get_shortcode_att('cart_bg'));
        $res_ctx->load_settings_raw('cart_border_color', $res_ctx->get_shortcode_att('cart_border_color'));
        $res_ctx->load_settings_raw('cart_arrow_color', $res_ctx->get_shortcode_att('cart_arrow_color'));
        $res_ctx->load_shadow_settings( 6, 0, 2, 0, 'rgba(0, 0, 0, 0.2)', 'cart_shadow' );
        $res_ctx->load_settings_raw('cart_no_items_color', $res_ctx->get_shortcode_att('cart_no_items_color'));

        // cart items list
        $res_ctx->load_settings_raw('items_border_color', $res_ctx->get_shortcode_att('items_border_color'));

        // cart item
        $res_ctx->load_settings_raw('item_bg_color', $res_ctx->get_shortcode_att('item_bg_color'));
        $res_ctx->load_settings_raw('item_bg_color_h', $res_ctx->get_shortcode_att('item_bg_color_h'));
        $res_ctx->load_settings_raw('title_color', $res_ctx->get_shortcode_att('title_color'));
        $res_ctx->load_settings_raw('title_color_h', $res_ctx->get_shortcode_att('title_color_h'));
        $res_ctx->load_settings_raw('amount_color', $res_ctx->get_shortcode_att('amount_color'));
        $res_ctx->load_settings_raw('amount_color_h', $res_ctx->get_shortcode_att('amount_color_h'));
        $res_ctx->load_settings_raw('var_color', $res_ctx->get_shortcode_att('var_color'));
        $res_ctx->load_settings_raw('var_color_h', $res_ctx->get_shortcode_att('var_color_h'));
        $res_ctx->load_settings_raw('delete_color', $res_ctx->get_shortcode_att('delete_color'));
        $res_ctx->load_settings_raw('delete_color_h', $res_ctx->get_shortcode_att('delete_color_h'));

        // cart info
        $res_ctx->load_settings_raw('subtotal_color', $res_ctx->get_shortcode_att('subtotal_color'));

        $res_ctx->load_settings_raw('btn1_color', $res_ctx->get_shortcode_att('btn1_color'));
        $res_ctx->load_settings_raw('btn1_color_h', $res_ctx->get_shortcode_att('btn1_color_h'));
        $res_ctx->load_settings_raw('btn1_bg_color', $res_ctx->get_shortcode_att('btn1_bg_color'));
        $res_ctx->load_settings_raw('btn1_bg_color_h', $res_ctx->get_shortcode_att('btn1_bg_color_h'));

        $res_ctx->load_settings_raw('btn2_color', $res_ctx->get_shortcode_att('btn2_color'));
        $res_ctx->load_settings_raw('btn2_color_h', $res_ctx->get_shortcode_att('btn2_color_h'));
        $res_ctx->load_settings_raw('btn2_bg_color', $res_ctx->get_shortcode_att('btn2_bg_color'));
        $res_ctx->load_settings_raw('btn2_bg_color_h', $res_ctx->get_shortcode_att('btn2_bg_color_h'));



        /*-- FONTS -- */
        // toggle
        $res_ctx->load_font_settings( 'f_count' );
        $res_ctx->load_font_settings( 'f_toggle' );

        $res_ctx->load_font_settings( 'f_noitems' );

        // cart item
        $res_ctx->load_font_settings( 'f_title' );
        $res_ctx->load_font_settings( 'f_amount' );
        $res_ctx->load_font_settings( 'f_var' );

        // cart info
        $res_ctx->load_font_settings( 'f_subtotal' );
        $res_ctx->load_font_settings( 'f_btns' );
    }

    public function get_custom_css() {
        // $unique_block_class - the unique class that is on the block. use this to target the specific instance via css
        $unique_block_class = $this->block_uid;

        $compiled_css = '';

        $raw_css =
            "<style>
            
                /* @general_style */
                .td_woo_menu_cart {
                    z-index: 998;
                    vertical-align: middle;
                }
                .td_woo_menu_cart .tdw-block-inner {
                    font-size: 0;
                    line-height: 0;
                }
                .td_woo_menu_cart .tdw-wmc-wrap {
                    display: inline-block;
                    position: relative;
                }
                .td_woo_menu_cart .tdw-wmc-link {
                    position: relative;
                    display: flex;
                    flex-wrap: wrap;
                }
                .td_woo_menu_cart .tdw-wmc-wrap:hover .tdw-wmc-widget {
                    opacity: 1;
                    visibility: visible;
                }
                .td_woo_menu_cart .tdw-wmc-icon-wrap {
                    position: relative;
                }
                .td_woo_menu_cart .tdw-wmc-icon {
                    display: block;
                    color: #000;
                }
                .td_woo_menu_cart .tdw-wmc-icon-svg {
                    line-height: 0;
                }
                .td_woo_menu_cart .tdw-wmc-icon-svg svg {
                    height: auto;
                }
                .td_woo_menu_cart .tdw-wmc-icon-svg svg,
                .td_woo_menu_cart .tdw-wmc-icon-svg svg * {
                    fill: #000;
                }
                .td_woo_menu_cart .tdw-wmc-count {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    position: absolute;
                    right: -5px;
                    top: -4px;
                    min-width: 16px;
                    min-height: 16px;
                    padding: 2px 4px;
                    background-color: var(--td_theme_color, #4db2ec);
                    font-size: 10px;
                    text-align: center;
                    line-height: 1;
                    color: #fff;
                    border-radius: 50px;
                }
                .td_woo_menu_cart .tdw-wmc-txt {
                    position: relative;
                    display: flex;
                    align-items: center;
                    font-size: 13px;
                    color: #000;
                }
                .td_woo_menu_cart .tdw-wmc-widget {
                    position: absolute;
                    top: 100%;
                    right: 0;
                    width: 290px;
                    opacity: 0;
                    visibility: hidden;
                    z-index: 10;
                    font-size: 14px;
                    line-height: 21px;
                    text-align: left;
                }
                .td_woo_menu_cart .tdw-wmc-widget:before {
                    content: '';
                    display: block;
                    width: 100%;
                    height: 18px;
                }
                .td_woo_menu_cart .tdw-wmc-widget .tdw-wmc-widget-inner {
                    background-color: #fff;
                    border-width: 0;
                    border-style: solid;
                    border-color: #000;
                }
                .td_woo_menu_cart:not(.tdw-wmc-empty) .tdw-wmc-widget .tdw-wmc-widget-inner {
                    padding: 7px 0 15px;
                }
                .td_woo_menu_cart.tdw-wmc-empty .tdw-wmc-widget .tdw-wmc-widget-inner {
                    padding: 15px;
                }
                .td_woo_menu_cart .tdw-wmc-widget .cart_list {
                    margin: 0;
                    padding-bottom: 7px;
                    border-bottom: 1px solid #eee;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item {
                    margin: 0;
                    display: flex;
                    flex-wrap: wrap;
                    position: relative;
                    list-style-type: none;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item:hover {
                    background-color: #f9f9f9;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item:last-child {
                    margin-bottom: 0 !important;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item .blockOverlay {
                    background: #fff !important;
                    opacity: 0.75 !important;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item a:nth-child(2) {
                    display: flex;
                    flex: 1;
                    padding-right: 4px;
                    font-size: 11px;
                    font-weight: 600;
                    line-height: 1.3;
                    color: #000;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item .variation {
                    order: 10;
                    width: 100%;
                    margin-block-start: 0;
                    margin-block-end: 0;
                    margin-top: 4px;
                    font-size: 9px;
                    font-style: italic;
                    line-height: 1.2;
                    color: #777;
                    border: none;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item .variation p {
                    margin-bottom: 0;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item .variation dt {
                    margin: 0;
                    padding: 0;
                    clear: left;
                    font-weight: normal;
                    float: left;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item .variation dd {
                    margin: 0 0 0 5px;
                    padding: 0;
                    float: left;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item a:nth-child(2):hover {
                    color: var(--td_theme_color, #4db2ec);
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item a:nth-child(2) img {
                    position: absolute;
                    left: 0;
                    top: 0;
                    margin-left: 0;
                }
                .td_woo_menu_cart .tdw-wmc-widget .remove_from_cart_button {
                    position: absolute;
                    width: auto;
                    height: auto;
                    font-size: 14px;
                    line-height: 1;
                    font-weight: 600;
                    color: #f26060 !important;
                    opacity: 0;
                    transition: all 0.3s ease;
                }
                .td_woo_menu_cart .tdw-wmc-widget .remove_from_cart_button:hover {
                    background-color: transparent;
                    color: #f26060 !important;
                }
                .td_woo_menu_cart .tdw-wmc-widget .mini_cart_item:hover .remove_from_cart_button {
                    opacity: 1;
                }
                .td_woo_menu_cart .tdw-wmc-widget .quantity {
                    position: relative;
                    align-self: flex-start;
                    font-size: 10px;
                    line-height: 1;
                    color: #999999;
                }
                .td_woo_menu_cart .tdw-wmc-widget .total {
                    margin: 0;
                    padding: 15px;
                    text-align: right;
                    font-size: 12px;
                    font-weight: 600;
                }
                .td_woo_menu_cart .tdw-wmc-widget .buttons {
                    display: flex;
                    justify-content: space-between;
                    margin: 0;
                    padding: 0 15px;
                }
                .td_woo_menu_cart .tdw-wmc-widget .buttons a {
                    display: inline-block;
                    width: calc(50% - 5px);
                    padding: 0 15px;
                    background-color: #222222;
                    font-family: 'Roboto', sans-serif;
                    font-size: 13px;
                    font-weight: 500;
                    line-height: 32px;
                    text-align: center;
                    color: #fff;
                    -webkit-transition: all 0.3s ease;
                    transition: all 0.3s ease;
                    border-radius: 0;
                    z-index: 1;
                }
                .td_woo_menu_cart .tdw-wmc-widget .buttons a:hover {
                    background-color: #777;
                    color: #fff;
                }
                .td_woo_menu_cart .tdw-wmc-widget .buttons .checkout {
                    background-color: var(--td_theme_color, #4db2ec);
                }
                .td_woo_menu_cart .tdw-wmc-widget .woocommerce-mini-cart__empty-message {
                    text-align: center;
                    margin-bottom: 0;
                    font-size: 12px;
                    color: #888;
                }
                
                /* @icon_arrow */
                .td_woo_menu_cart .tdw-wmc-icon-wrap:after {
                    content: '';
                    display: none;
                    position: absolute;
                    bottom: -18px;
                    left: 50%;
                    transform: translateX(-50%);
                    width: 0;
                    height: 0;
                    border-left: 6px solid transparent;
                    border-right: 6px solid transparent;
                    border-bottom: 6px solid #fff;
                    z-index: 11;
                }
                .td_woo_menu_cart .tdw-wmc-wrap:hover .tdw-wmc-icon-wrap:after {
                    display: block;
                }
                /* @text_arrow */
                .td_woo_menu_cart .tdw-wmc-txt:after {
                    content: '';
                    display: none;
                    position: absolute;
                    bottom: -18px;
                    left: 50%;
                    transform: translateX(-50%);
                    width: 0;
                    height: 0;
                    border-left: 6px solid transparent;
                    border-right: 6px solid transparent;
                    border-bottom: 6px solid #fff;
                    z-index: 11;
                }
                .td_woo_menu_cart .tdw-wmc-wrap:hover .tdw-wmc-txt:after {
                    display: block;
                }
                
            
                /* @show_cart */
                body .$unique_block_class.tdc-element-selected .tdw-wmc-widget {
                    opacity: 1;
                    visibility: visible;
                }
                body .$unique_block_class.tdc-element-selected .tdw-wmc-icon-wrap:after,
                body .$unique_block_class.tdc-element-selected .tdw-wmc-txt:after{
                    display: block;
                }
            
            
                /* @icon_size */
                body .$unique_block_class .tdw-wmc-icon {
                    font-size: @icon_size;
                }
                /* @icon_svg_size */
                body .$unique_block_class .tdw-wmc-icon-svg svg {
                    width: @icon_svg_size;
                }
                
                /* @icon_space_left */
                body .$unique_block_class .tdw-wmc-txt{
                    margin-right: @icon_space_left;
                }
                /* @icon_space_right */
                body .$unique_block_class .tdw-wmc-txt {
                    margin-left: @icon_space_right;
                }
                
                
                /* @toggle_txt_align */
                body .$unique_block_class .tdw-wmc-txt {
                    top: @toggle_txt_align;
                }
                
                /* @show_count */
                body .$unique_block_class .tdw-wmc-count {
                    display: @show_count;
                }
                /* @show_value */
                body .$unique_block_class .tdw-wmc-txt {
                    display: @show_value;
                }
                
                /* @toggle_horiz_align_left */
                body .$unique_block_class .td_block_inner {
                    text-align: left;
                }
                /* @toggle_horiz_align_center */
                body .$unique_block_class .td_block_inner {
                    text-align: center;
                }
                /* @toggle_horiz_align_right */
                body .$unique_block_class .td_block_inner {
                    text-align: right;
                }
                
                /* @inline */
                body .$unique_block_class {
                    display: inline-block;
                }
                
                /* @float_right */
                body .$unique_block_class {
                    float: right;
                    clear: none;
                }
                
                
                /* @cart_offset */
                body .$unique_block_class .tdw-wmc-widget:before {
                    height: @cart_offset;
                }
                body .$unique_block_class .tdw-wmc-icon-wrap:after,
                body .$unique_block_class .tdw-wmc-txt:after {
                    bottom: -@cart_offset;
                }
                /* @cart_width */
                body .$unique_block_class .tdw-wmc-widget {
                    width: @cart_width;
                }
                /* @cart_padding */
                body .$unique_block_class:not(.tdw-wmc-empty) .tdw-wmc-widget .tdw-wmc-widget-inner {
                    padding: @cart_padding;
                }
                /* @cart_padding_e */
                body .$unique_block_class.tdw-wmc-empty .tdw-wmc-widget .tdw-wmc-widget-inner {
                    padding: @cart_padding_e;
                }
                /* @cart_border */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    border-width: @cart_border;
                }
                /* @cart_border_style */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    border-style: @cart_border_style;
                }
                /* @cart_border_radius */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    border-radius: @cart_border_radius;
                }
                /* @cart_horiz_align_left */
                body .$unique_block_class .tdw-wmc-widget {
                    left: 0;
                    right: auto;
                    transform: none;
                }
                /* @cart_horiz_align_center */
                body .$unique_block_class .tdw-wmc-widget {
                    left: 50%;
                    right: auto;
                    transform: translateX(-50%);
                }
                /* @cart_horiz_align_right */
                body .$unique_block_class .tdw-wmc-widget {
                    right: 0;
                    left: auto;
                    transform: none;
                }
                
                
                /* @items_padd */
                body .$unique_block_class .tdw-wmc-widget .cart_list {
                    padding: @items_padd;
                }
                /* @items_border */
                body .$unique_block_class .tdw-wmc-widget .cart_list {
                    border-bottom-width: @items_border;
                }
                /* @items_border_style */
                body .$unique_block_class .tdw-wmc-widget .cart_list {
                    border-bottom-style: @items_border_style;
                }
                
                
                /* @item_space */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    margin-bottom: @item_space;
                }
                /* @item_tb_padd */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    padding-top: @item_tb_padd;
                    padding-bottom: @item_tb_padd;
                }
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) img {
                    top: @item_tb_padd;
                }
                body .$unique_block_class .tdw-wmc-widget .remove_from_cart_button {
                    bottom: @item_tb_padd;
                }
                /* @item_lr_padd */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    padding-left: @item_lr_padd;
                    padding-right: @item_lr_padd;
                }
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) img {
                    left: @item_lr_padd;
                }
                body .$unique_block_class .tdw-wmc-widget .remove_from_cart_button {
                    right: @item_lr_padd;
                }
                /* @item_min_height */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    min-height: @item_min_height;
                }
                
                /* @image_width */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) img {
                    width: @image_width;
                }
                /* @image_left_padding */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2),
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item .variation {
                    padding-left: @image_left_padding;
                }
                /* @image_radius */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) img {
                    border-radius: @image_radius;
                }
                /* @meta_info_vert */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    align-items: @meta_info_vert;
                }
                /* @qty_align */
                body .$unique_block_class .tdw-wmc-widget .quantity {
                    top: @qty_align;
                }
                /* @var_top */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item .variation {
                    margin-top: @var_top;
                }
                
                
                /* @subtotal_padd */
                body .$unique_block_class .tdw-wmc-widget .total {
                    padding: @subtotal_padd;
                }
                /* @subtotal_horiz_align_left */
                body .$unique_block_class .tdw-wmc-widget .total {
                    text-align: left;
                }
                /* @subtotal_horiz_align_center */
                body .$unique_block_class .tdw-wmc-widget .total {
                    text-align: center;
                }
                /* @subtotal_horiz_align_right */
                body .$unique_block_class .tdw-wmc-widget .total {
                    text-align: right;
                }
                
                /* @btns_padd */
                body .$unique_block_class .tdw-wmc-widget .buttons {
                    padding: @btns_padd;
                }
                /* @btn_gap */
                body .$unique_block_class .tdw-wmc-widget .buttons a {
                    width: calc(50% - @btn_gap);
                }
                /* @btn_radius */
                body .$unique_block_class .tdw-wmc-widget .buttons a {
                    border-radius: @btn_radius;
                }
                
                
                /* @icon_color */
                body .$unique_block_class .tdw-wmc-icon {
                    color: @icon_color;
                }
                body .$unique_block_class .tdw-wmc-icon-svg svg,
                body .$unique_block_class .tdw-wmc-icon-svg svg * {
                    fill: @icon_color;
                }
                /* @icon_color_h */
                body .$unique_block_class .tdw-wmc-wrap:hover .tdw-wmc-icon {
                    color: @icon_color_h;
                }
                body .$unique_block_class .tdw-wmc-wrap:hover .tdw-wmc-icon-svg svg,
                body .$unique_block_class .tdw-wmc-wrap:hover .tdw-wmc-icon-svg svg * {
                    fill: @icon_color_h;
                }
                
                /* @count_txt_color */
                body .$unique_block_class .tdw-wmc-count {
                    color: @count_txt_color;
                }
                /* @count_bg_color */
                body .$unique_block_class .tdw-wmc-count {
                    background-color: @count_bg_color;
                }
                
                /* @toggle_txt_color */
                body .$unique_block_class .tdw-wmc-txt {
                    color: @toggle_txt_color;
                }
                /* @toggle_txt_color_h */
                body .$unique_block_class .tdw-wmc-wrap:hover .tdw-wmc-txt {
                    color: @toggle_txt_color_h;
                }
                
                /* @cart_bg */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    background-color: @cart_bg;
                }
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item .blockOverlay {
                    background-color: @cart_bg !important;
                }
                /* @cart_border_color */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    border-color: @cart_border_color;
                }
                /* @cart_arrow_color */
                body .$unique_block_class .tdw-wmc-icon-wrap:after,
                body .$unique_block_class .tdw-wmc-txt:after {
                    border-bottom-color: @cart_arrow_color;
                }
                /* @cart_shadow */
                body .$unique_block_class .tdw-wmc-widget .tdw-wmc-widget-inner {
                    box-shadow: @cart_shadow;
                }
                /* @cart_no_items_color */
                body .$unique_block_class .tdw-wmc-widget .woocommerce-mini-cart__empty-message {
                    color: @cart_no_items_color;
                }
                
                /* @items_border_color */
                body .$unique_block_class .tdw-wmc-widget .cart_list {
                    border-bottom-color: @items_border_color;
                }
                
                /* @item_bg_color */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item {
                    background-color: @item_bg_color;
                }
                /* @item_bg_color_h */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item:hover {
                    background-color: @item_bg_color_h;
                }
                /* @title_color */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) {
                    color: @title_color;
                }
                /* @title_color_h */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item:hover a:nth-child(2) {
                    color: @title_color_h;
                }
                /* @amount_color */
                body .$unique_block_class .tdw-wmc-widget .quantity {
                    color: @amount_color;
                }
                /* @amount_color_h */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item:hover .quantity {
                    color: @amount_color_h;
                }
                /* @var_color */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item .variation {
                    color: @var_color;
                }
                /* @var_color_h */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item:hover .variation {
                    color: @var_color_h;
                }
                /* @delete_color */
                body .$unique_block_class .tdw-wmc-widget .remove_from_cart_button {
                    color: @delete_color !important;
                }
                /* @delete_color_h */
                body .$unique_block_class .tdw-wmc-widget .remove_from_cart_button:hover {
                    color: @delete_color_h !important;
                }
                
                /* @subtotal_color */
                body .$unique_block_class .tdw-wmc-widget .total {
                    color: @subtotal_color;
                }
                
                /* @btn1_color */
                body .$unique_block_class .tdw-wmc-widget .buttons a:first-child {
                    color: @btn1_color;
                }
                /* @btn1_color_h */
                body .$unique_block_class .tdw-wmc-widget .buttons a:first-child:hover {
                    color: @btn1_color_h;
                }
                /* @btn1_bg_color */
                body .$unique_block_class .tdw-wmc-widget .buttons a:first-child {
                    background-color: @btn1_bg_color;
                }
                /* @btn1_bg_color_h */
                body .$unique_block_class .tdw-wmc-widget .buttons a:first-child:hover {
                    background-color: @btn1_bg_color_h;
                }
                
                /* @btn2_color */
                body .$unique_block_class .tdw-wmc-widget .buttons .checkout {
                    color: @btn2_color;
                }
                /* @btn2_color_h */
                body .$unique_block_class .tdw-wmc-widget .buttons .checkout:hover {
                    color: @btn2_color_h;
                }
                /* @btn2_bg_color */
                body .$unique_block_class .tdw-wmc-widget .buttons .checkout {
                    background-color: @btn2_bg_color;
                }
                /* @btn2_bg_color_h */
                body .$unique_block_class .tdw-wmc-widget .buttons .checkout:hover {
                    background-color: @btn2_bg_color_h;
                }
                
                
                /* @f_count */
                body .$unique_block_class .tdw-wmc-count {
                    @f_count
                }
                /* @f_toggle */
                body .$unique_block_class .tdw-wmc-txt {
                    @f_toggle
                }
                /* @f_noitems */
                body .$unique_block_class .tdw-wmc-widget .woocommerce-mini-cart__empty-message {
                    @f_noitems
                }
                /* @f_title */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item a:nth-child(2) {
                    @f_title
                }
                /* @f_amount */
                body .$unique_block_class .tdw-wmc-widget .quantity {
                    @f_amount
                }
                /* @f_var */
                body .$unique_block_class .tdw-wmc-widget .mini_cart_item .variation {
                    @f_var
                }
                /* @f_subtotal */
                body .$unique_block_class .tdw-wmc-widget .total,
                body .$unique_block_class .tdw-wmc-widget strong {
                    @f_subtotal
                }
                /* @f_btns */
                body .$unique_block_class .tdw-wmc-widget .buttons a {
                    @f_btns
                }
                
            </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;
    }

    /**
     * Disable loop block features. This block does not use a loop and it dosn't need to run a query.
     */
    function __construct() {
        parent::disable_loop_block_features();
    }

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

        parent::render($atts);

        global $woocommerce;
        $menu_cart = array();
        $price_decimal_separator = wc_get_price_decimal_separator();
		$price_thousand_separator = wc_get_price_thousand_separator();
		$price_decimals = wc_get_price_decimals();
        $price_format = get_woocommerce_price_format();

        $cart_subtotal = (float) $woocommerce->cart->get_subtotal();
        if( get_option( 'woocommerce_tax_display_cart' ) == 'incl' ) {
            $cart_subtotal += (float) $woocommerce->cart->get_subtotal_tax();
        }
        $original_cart_subtotal = $cart_subtotal;
        $negative_cart_subtotal = $cart_subtotal < 0;

        $cart_subtotal = apply_filters( 'raw_woocommerce_price', $negative_cart_subtotal ? $cart_subtotal * -1 : $cart_subtotal, $original_cart_subtotal );
        $cart_subtotal = apply_filters( 'formatted_woocommerce_price', number_format( $cart_subtotal, $price_decimals, $price_decimal_separator, $price_thousand_separator ), $cart_subtotal, $price_decimals, $price_decimal_separator, $price_thousand_separator, $original_cart_subtotal );

        $formatted_cart_subtotal = ( $negative_cart_subtotal ? '-' : '' ) . sprintf( $price_format, get_woocommerce_currency_symbol(), $cart_subtotal );

        $menu_cart['cart_count'] = $woocommerce->cart->cart_contents_count;
        $menu_cart['cart_subtotal'] = $formatted_cart_subtotal;

        ob_start();
        woocommerce_mini_cart();
        $menu_cart['cart_contents'] = ob_get_clean();

        if ( !$menu_cart['cart_count'] && ( tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe() ) ) {
            $sample_product_photo_src = TD_WOO_URL . '/assets/images/sample_product_photo.png';

            $sample_cart_subtotal = (float) 200;
            $original_sample_cart_subtotal = $sample_cart_subtotal;
            $negative_sample_cart_subtotal = $sample_cart_subtotal < 0;

            $sample_cart_subtotal = apply_filters( 'formatted_woocommerce_price', number_format( $sample_cart_subtotal, $price_decimals, $price_decimal_separator, $price_thousand_separator ), $sample_cart_subtotal, $price_decimals, $price_decimal_separator, $price_thousand_separator, $original_sample_cart_subtotal );

            $formatted_sample_cart_subtotal = ( $negative_sample_cart_subtotal ? '-' : '' ) . sprintf( $price_format, get_woocommerce_currency_symbol(), $sample_cart_subtotal );

            $menu_cart = array(
                'cart_count' => '3',
                'cart_subtotal' => $formatted_sample_cart_subtotal,
                'cart_contents' => '
                    <ul class="woocommerce-mini-cart cart_list product_list_widget">
						<li class="woocommerce-mini-cart-item mini_cart_item">
					        <a href="#" class="remove remove_from_cart_button" aria-label="Remove this item" data-product_id="" data-cart_item_key="" data-product_sku="">×</a>
					        <a href="#">
							    <img width="300" height="300" src="' . $sample_product_photo_src . '" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="" loading="lazy">
							    Sample Product 1
                            </a>
                            <span class="quantity">1 × <span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol() . '</span>50.00</span></span>
                        </li>
                        <li class="woocommerce-mini-cart-item mini_cart_item">
					        <a href="#" class="remove remove_from_cart_button" aria-label="Remove this item" data-product_id="" data-cart_item_key="" data-product_sku="">×</a>
					        <a href="#">
							    <img width="300" height="300" src="' . $sample_product_photo_src . '" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="" loading="lazy">
							    Sample Product 2
                            </a>
                            <span class="quantity">3 × <span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol() . '</span>25.00</span></span>
                        </li>
                        <li class="woocommerce-mini-cart-item mini_cart_item">
					        <a href="#" class="remove remove_from_cart_button" aria-label="Remove this item" data-product_id="" data-cart_item_key="" data-product_sku="">×</a>
					        <a href="#">
							    <img width="300" height="300" src="' . $sample_product_photo_src . '" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="" loading="lazy">
							    Sample Product 3
                            </a>
                            <dl class="variation">
                                <dt class="variation-Color">Color:</dt>
                                <dd class="variation-Color"><p>Black</p></dd>
                                <dt class="variation-sad">Size:</dt>
                                <dd class="variation-sad"><p>M</p></dd>
                            </dl>
                            <span class="quantity">3 × <span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol() . '</span>75.00</span></span>
                        </li>
					</ul>

	                <p class="woocommerce-mini-cart__total total">
		                <strong>Subtotal:</strong> <span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol() . '</span>200.00</span>
                    </p>

                    <p class="woocommerce-mini-cart__buttons buttons"><a href="#" class="button wc-forward">View cart</a><a href="#" class="button checkout wc-forward">Checkout</a></p>
                '
            );
        }

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

        $additional_classes = array();
        if( $menu_cart['cart_count'] == 0 ) {
            $additional_classes[] = 'tdw-wmc-empty';
        } else if ( tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe() ) {
            if( $show_version == 'no_items' ) {
                $additional_classes[] = 'tdw-wmc-empty';
            }
        }

        // toggle icon
        $icon = $this->get_icon_att('tdicon');
        $icon_data = '';
        if( td_util::tdc_is_live_editor_iframe() || td_util::tdc_is_live_editor_ajax() ) {
            $icon_data = 'data-td-svg-icon="' . $this->get_att('tdicon') . '"';
        }

        // toggle text
        $text_position = $this->get_att('toggle_txt_pos');
        $buffy_text = '<span class="tdw-wmc-txt">' . $menu_cart['cart_subtotal'] . '</span>';


        // cart with items
        $cart_normal = '';
        $cart_normal .= '<a class="tdw-wmc-link" href="' . wc_get_cart_url() . '">';
            if( $text_position == 'before' ) {
                $cart_normal .= $buffy_text;
            }

            if( $icon != '' ) {
                $cart_normal .= '<div class="tdw-wmc-icon-wrap">';
                    if( base64_encode( base64_decode( $icon ) ) == $icon ) {
                        $cart_normal .= '<span class="tdw-wmc-icon tdw-wmc-icon-svg" ' . $icon_data . '>' . base64_decode( $icon ) . '</span>';
                    } else {
                        $cart_normal .= '<i class="tdw-wmc-icon ' . $icon . '"></i>';
                    }

                    if( $menu_cart['cart_count'] > 0 ) {
                        $cart_normal .= '<span class="tdw-wmc-count">'. $menu_cart['cart_count'] . '</span>';
                    }
                $cart_normal .= '</div>';
            }

            if( $text_position == '' ) {
                $cart_normal .= $buffy_text;
            }
        $cart_normal .= '</a>';

        $cart_normal .= '<div class="tdw-wmc-widget">';
            $cart_normal .= '<div class="tdw-wmc-widget-inner">';
                $cart_normal .= $menu_cart['cart_contents'];
            $cart_normal .= '</div>';
        $cart_normal .= '</div>';


        // cart without items
        $cart_no_items = '';
        $cart_no_items .= '<a class="tdw-wmc-link" href="' . wc_get_cart_url() . '">';
            if( $text_position == 'before' ) {
                $cart_no_items .= '<span class="tdw-wmc-txt">0,00 ' . get_woocommerce_currency_symbol() . '</span>';
            }

            if( $icon != '' ) {
                $cart_no_items .= '<div class="tdw-wmc-icon-wrap">';
                    $cart_no_items .= '<i class="tdw-wmc-icon ' . $icon . '"></i>';
                    $cart_no_items .= '<span class="tdw-wmc-count">0</span>';
                $cart_no_items .= '</div>';
            }

            if( $text_position == '' ) {
                $cart_no_items .= '<span class="tdw-wmc-txt">0,00 ' . get_woocommerce_currency_symbol() . '</span>';
            }
        $cart_no_items .= '</a>';

        $cart_no_items .= '<div class="tdw-wmc-widget">';
            $cart_no_items .= '<div class="tdw-wmc-widget-inner">';
                $cart_no_items .= '<p class="woocommerce-mini-cart__empty-message">' . __td('No products in the cart.', TD_THEME_NAME) . '</p>';
            $cart_no_items .= '</div>';
        $cart_no_items .= '</div>';

        $buffy = ''; //output buffer

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

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

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

            $buffy .= '<div id=' . $this->block_uid . ' class="tdw-block-inner">';
                $buffy .= '<div class="tdw-wmc-wrap">';
                    if ( tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe() ) {
                        if( $show_version == 'no_items' ) {
                            $buffy .= $cart_no_items;
                        } else {
                            $buffy .= $cart_normal;
                        }
                    } else {
                        $buffy .= $cart_normal;
                    }
                $buffy .= '</div>';
            $buffy .= '</div>';

            if( !( tdc_state::is_live_editor_ajax() || tdc_state::is_live_editor_iframe() ) ) {
                td_resources_load::render_script( TD_WOO_SCRIPTS_URL . '/tdwMenuCart.js' . TD_WOO_SCRIPTS_VER, 'tdwMenuCart-js', '', 'footer' );

                ob_start();
                ?>
                <script>

                    jQuery().ready(function () {

                        const tdwMenuCartItem = new tdwMenuCart.item()
                        tdwMenuCartItem.uid = '<?php echo $this->block_uid; ?>'
                        tdwMenuCartItem.blockObj = jQuery('.<?php echo $this->block_uid ?>')

                        tdwMenuCart.addItem( tdwMenuCartItem );

                    });

                </script>
                <?php
                td_js_buffer::add_to_footer( "\n" . td_util::remove_script_tag( ob_get_clean() ) );
            }
        $buffy .= '</div>';

        return $buffy;
    }
}