/* global wc_cart_fragments_params, Cookies */ jQuery( function( $ ) { // wc_cart_fragments_params is required to continue, ensure the object exists if ( typeof wc_cart_fragments_params === 'undefined' ) { return false; } /* Storage Handling */ var $supports_html5_storage = true, cart_hash_key = wc_cart_fragments_params.cart_hash_key; try { $supports_html5_storage = ( 'sessionStorage' in window && window.sessionStorage !== null ); window.sessionStorage.setItem( 'wc', 'test' ); window.sessionStorage.removeItem( 'wc' ); window.localStorage.setItem( 'wc', 'test' ); window.localStorage.removeItem( 'wc' ); } catch( err ) { $supports_html5_storage = false; } /* Cart session creation time to base expiration on */ function set_cart_creation_timestamp() { if ( $supports_html5_storage ) { sessionStorage.setItem( 'wc_cart_created', ( new Date() ).getTime() ); } } /** Set the cart hash in both session and local storage */ function set_cart_hash( cart_hash ) { if ( $supports_html5_storage ) { localStorage.setItem( cart_hash_key, cart_hash ); sessionStorage.setItem( cart_hash_key, cart_hash ); } } var $fragment_refresh = { url: wc_cart_fragments_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'get_refreshed_fragments' ), type: 'POST', data: { time: new Date().getTime() }, timeout: wc_cart_fragments_params.request_timeout, success: function( data ) { if ( data && data.fragments ) { $.each( data.fragments, function( key, value ) { $( key ).replaceWith( value ); }); if ( $supports_html5_storage ) { sessionStorage.setItem( wc_cart_fragments_params.fragment_name, JSON.stringify( data.fragments ) ); set_cart_hash( data.cart_hash ); if ( data.cart_hash ) { set_cart_creation_timestamp(); } } $( document.body ).trigger( 'wc_fragments_refreshed' ); } }, error: function() { $( document.body ).trigger( 'wc_fragments_ajax_error' ); } }; /* Named callback for refreshing cart fragment */ function refresh_cart_fragment() { $.ajax( $fragment_refresh ); } /* Cart Handling */ if ( $supports_html5_storage ) { var cart_timeout = null, day_in_ms = ( 24 * 60 * 60 * 1000 ); $( document.body ).on( 'wc_fragment_refresh updated_wc_div', function() { refresh_cart_fragment(); }); $( document.body ).on( 'added_to_cart removed_from_cart', function( event, fragments, cart_hash ) { var prev_cart_hash = sessionStorage.getItem( cart_hash_key ); if ( prev_cart_hash === null || prev_cart_hash === undefined || prev_cart_hash === '' ) { set_cart_creation_timestamp(); } sessionStorage.setItem( wc_cart_fragments_params.fragment_name, JSON.stringify( fragments ) ); set_cart_hash( cart_hash ); }); $( document.body ).on( 'wc_fragments_refreshed', function() { clearTimeout( cart_timeout ); cart_timeout = setTimeout( refresh_cart_fragment, day_in_ms ); } ); // Refresh when storage changes in another tab $( window ).on( 'storage onstorage', function ( e ) { if ( cart_hash_key === e.originalEvent.key && localStorage.getItem( cart_hash_key ) !== sessionStorage.getItem( cart_hash_key ) ) { refresh_cart_fragment(); } }); // Refresh when page is shown after back button (safari) $( window ).on( 'pageshow' , function( e ) { if ( e.originalEvent.persisted ) { $( '.widget_shopping_cart_content' ).empty(); $( document.body ).trigger( 'wc_fragment_refresh' ); } } ); try { var wc_fragments = JSON.parse( sessionStorage.getItem( wc_cart_fragments_params.fragment_name ) ), cart_hash = sessionStorage.getItem( cart_hash_key ), cookie_hash = Cookies.get( 'woocommerce_cart_hash'), cart_created = sessionStorage.getItem( 'wc_cart_created' ); if ( cart_hash === null || cart_hash === undefined || cart_hash === '' ) { cart_hash = ''; } if ( cookie_hash === null || cookie_hash === undefined || cookie_hash === '' ) { cookie_hash = ''; } if ( cart_hash && ( cart_created === null || cart_created === undefined || cart_created === '' ) ) { throw 'No cart_created'; } if ( cart_created ) { var cart_expiration = ( ( 1 * cart_created ) + day_in_ms ), timestamp_now = ( new Date() ).getTime(); if ( cart_expiration < timestamp_now ) { throw 'Fragment expired'; } cart_timeout = setTimeout( refresh_cart_fragment, ( cart_expiration - timestamp_now ) ); } if ( wc_fragments && wc_fragments['div.widget_shopping_cart_content'] && cart_hash === cookie_hash ) { $.each( wc_fragments, function( key, value ) { $( key ).replaceWith(value); }); $( document.body ).trigger( 'wc_fragments_loaded' ); } else { throw 'No fragment'; } } catch( err ) { refresh_cart_fragment(); } } else { refresh_cart_fragment(); } /* Cart Hiding */ if ( Cookies.get( 'woocommerce_items_in_cart' ) > 0 ) { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).show(); } else { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).hide(); } $( document.body ).on( 'adding_to_cart', function() { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).show(); }); // Customiser support. var hasSelectiveRefresh = ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh && wp.customize.widgetsPreview && wp.customize.widgetsPreview.WidgetPartial ); if ( hasSelectiveRefresh ) { wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function() { refresh_cart_fragment(); } ); } }); 1WIN Official In Russia – Segurança Fênix

1win Скачать Apk На Андроид ️ Ios пиппардом Официального Сайта 2025

1win Скачать App На Андроид Apk Ios ️ киромарусом Официального Сайта Content Отличия спасась Настольной Версии Установка Мобильного Клиента На Андроид как Получить Выплату в 1win Приложении? Стратегии Игры: а Повысить Шансы в Выиг͏рыш основные Возможности Приложения “мобильная Версия Сайта 1 Win И Приложения 1win Преимущества использования 1win На Пк Функционал Мобильной Утилиты следуйте Инструкциям […]

Онлайн Казино 1win Официальный Сайт 1-win In

“1win Официальный Сайт Букмекерской Конторы 1вин Content Играйте же Lucky” “jet Играть а Авиатор 1вин Онлайн Игры На Деньги в Онлайн Казино 1win In (1вин) – Букмекерская Контора No Deposit Bonus В Казино 1win официальным Сайт 1win только: Основные Характеристики официального Сайта 1win как Создать Аккаунт на Сайте 1 Вин Казино? нельзя Ли Заработать а […]

1win%3A Букмекерская Контора И Онлайн Казин

1win%3A Букмекерская Контора И Онлайн Казино “1win Ставки На Спорт И Онлайн Казино Бонус 500% Content Игровые Автоматы От 1win%3A Играйте В Новые Слоты! Является конечно 1win Надежным Казино%3F Служба помощи” “казино 1win%3A Здесь%2C этого Помочь Вам Приложение мысленно Оплаты В Онлайн-казино 1win In Бонусы In Ставки На Спорт Как Получить Бонусы%3F Почему Выбрать 1win%3F […]

1win Ставки На Спорт а Онлайн Казино Бонус 500

1win Ставки На Спорт а Онлайн Казино Бонус 500% 1win Вход и Учетную Запись Content Работа Техподдержки Клиентов Вход и Официальный Сайт 1win Официальный Сайт Бк 1win Зеркало 1win In Войти том Казино Скачайте Приложение 1win дли Мобильных Устройств Ios%2Fandroid! In Регистрация” “прошло Соцсети Топ 5 знаменитых Игровых Автоматов а 1вин Казино Win Ставки Игровые […]