/*! elementor-pro - v3.28.0 - 30-03-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{ /***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js": /*!******************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class Base extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { stickyRightColumn: '.e-sticky-right-column' }, classes: { stickyRightColumnActive: 'e-sticky-right-column--active' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $stickyRightColumn: this.$element.find(selectors.stickyRightColumn) }; } bindEvents() { // Add our wrapper class around the select2 whenever it is opened. elementorFrontend.elements.$document.on('select2:open', event => { this.addSelect2Wrapper(event); }); } addSelect2Wrapper(event) { // The select element is recaptured every time because the markup can refresh const selectElement = jQuery(event.target).data('select2'); if (selectElement.$dropdown) { selectElement.$dropdown.addClass('e-woo-select2-wrapper'); } } isStickyRightColumnActive() { const classes = this.getSettings('classes'); return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive); } activateStickyRightColumn() { const elementSettings = this.getElementSettings(), $wpAdminBar = elementorFrontend.elements.$wpAdminBar, classes = this.getSettings('classes'); let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0; if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) { stickyOptionsOffset += $wpAdminBar.height(); } if ('yes' === this.getElementSettings('sticky_right_column')) { this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive); this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px'); } } deactivateStickyRightColumn() { if (!this.isStickyRightColumnActive()) { return; } const classes = this.getSettings('classes'); this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive); } /** * Activates the sticky column * * @return {void} */ toggleStickyRightColumn() { if (!this.getElementSettings('sticky_right_column')) { this.deactivateStickyRightColumn(); return; } if (!this.isStickyRightColumnActive()) { this.activateStickyRightColumn(); } } equalizeElementHeight($element) { if ($element.length) { $element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content let maxHeight = 0; $element.each((index, element) => { maxHeight = Math.max(maxHeight, element.offsetHeight); }); if (0 < maxHeight) { $element.css({ height: maxHeight + 'px' }); } } } /** * WooCommerce prints the Purchase Note separated from the product name by a border and padding. * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated. * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust * its padding. Since this cannot be achieved in CSS, it is done in this method. * * @param {Object} $element * * @return {void} */ removePaddingBetweenPurchaseNote($element) { if ($element) { $element.each((index, element) => { jQuery(element).prev().children('td').addClass('product-purchase-note-is-below'); }); } } /** * `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then * received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`. * These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method. */ updateWpReferers() { const selectors = this.getSettings('selectors'), wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs), url = new URL(document.location); url.searchParams.set('elementorPageId', elementorFrontend.config.post.id); url.searchParams.set('elementorWidgetId', this.getID()); wpHttpRefererInputs.attr('value', url); } } exports["default"] = Base; /***/ }), /***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js": /*!***************************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js")); class Checkout extends _base.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(...arguments); return { selectors: { ...defaultSettings.selectors, container: '.elementor-widget-woocommerce-checkout-page', loginForm: '.e-woocommerce-login-anchor', loginSubmit: '.e-woocommerce-form-login-submit', loginSection: '.e-woocommerce-login-section', showCouponForm: '.e-show-coupon-form', couponSection: '.e-coupon-anchor', showLoginForm: '.e-show-login', applyCoupon: '.e-apply-coupon', checkoutForm: 'form.woocommerce-checkout', couponBox: '.e-coupon-box', address: 'address', wpHttpRefererInputs: '[name="_wp_http_referer"]' }, classes: defaultSettings.classes, ajaxUrl: elementorProFrontend.config.ajaxurl }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { ...super.getDefaultElements(...arguments), $container: this.$element.find(selectors.container), $loginForm: this.$element.find(selectors.loginForm), $showCouponForm: this.$element.find(selectors.showCouponForm), $couponSection: this.$element.find(selectors.couponSection), $showLoginForm: this.$element.find(selectors.showLoginForm), $applyCoupon: this.$element.find(selectors.applyCoupon), $loginSubmit: this.$element.find(selectors.loginSubmit), $couponBox: this.$element.find(selectors.couponBox), $checkoutForm: this.$element.find(selectors.checkoutForm), $loginSection: this.$element.find(selectors.loginSection), $address: this.$element.find(selectors.address) }; } bindEvents() { super.bindEvents(...arguments); this.elements.$showCouponForm.on('click', event => { event.preventDefault(); this.elements.$couponSection.slideToggle(); }); this.elements.$showLoginForm.on('click', event => { event.preventDefault(); this.elements.$loginForm.slideToggle(); }); this.elements.$applyCoupon.on('click', event => { event.preventDefault(); this.applyCoupon(); }); this.elements.$loginSubmit.on('click', event => { event.preventDefault(); this.loginUser(); }); elementorFrontend.elements.$body.on('updated_checkout', () => { this.applyPurchaseButtonHoverAnimation(); this.updateWpReferers(); }); } onInit() { super.onInit(...arguments); this.toggleStickyRightColumn(); this.updateWpReferers(); this.equalizeElementHeight(this.elements.$address); // Equalize
boxes height if (elementorFrontend.isEditMode()) { this.elements.$loginForm.show(); this.elements.$couponSection.show(); this.applyPurchaseButtonHoverAnimation(); } } onElementChange(propertyName) { if ('sticky_right_column' === propertyName) { this.toggleStickyRightColumn(); } } onDestroy() { super.onDestroy(...arguments); this.deactivateStickyRightColumn(); } applyPurchaseButtonHoverAnimation() { const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation'); if (purchaseButtonHoverAnimation) { // This element is recaptured every time because the checkout markup can refresh jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation); } } applyCoupon() { // Wc_checkout_params is required to continue, ensure the object exists // eslint-disable-next-line camelcase if (!wc_checkout_params) { return; } this.startProcessing(this.elements.$couponBox); const data = { // eslint-disable-next-line camelcase security: wc_checkout_params.apply_coupon_nonce, coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val() }; jQuery.ajax({ type: 'POST', // eslint-disable-next-line camelcase url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'), context: this, data, success(code) { jQuery('.woocommerce-error, .woocommerce-message').remove(); this.elements.$couponBox.removeClass('processing').unblock(); if (code.includes('woocommerce-error') || code.includes('does not exist')) { jQuery('html, body').animate({ scrollTop: 0 }, 'fast'); } if (code) { this.elements.$checkoutForm.before(code); this.elements.$couponSection.slideUp(); elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]); elementorFrontend.elements.$body.trigger('update_checkout', { update_shipping_method: false }); } }, dataType: 'html' }); } loginUser() { this.startProcessing(this.elements.$loginSection); const data = { action: 'elementor_woocommerce_checkout_login_user', username: this.elements.$loginSection.find('input[name="username"]').val(), password: this.elements.$loginSection.find('input[name="password"]').val(), nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(), remember: this.elements.$loginSection.find('input#rememberme').prop('checked') }; jQuery.ajax({ type: 'POST', url: this.getSettings('ajaxUrl'), context: this, data, success(code) { code = JSON.parse(code); this.elements.$loginSection.removeClass('processing').unblock(); const messages = jQuery('.woocommerce-error, .woocommerce-message'); messages.remove(); if (code.logged_in) { location.reload(); } else { this.elements.$checkoutForm.before(code.message); elementorFrontend.elements.$body.trigger('checkout_error', [code.message]); } } }); } startProcessing($form) { if ($form.is('.processing')) { return; } /** * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages. */ $form.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } } exports["default"] = Checkout; /***/ }) }]); //# sourceMappingURL=woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js.map Onlayn kazino proqram təminatı marşrutlaşdırması mobil tərəfdaşlar üçün təmin Pin-Up Casino edir – InfoNile
skip to Main Content

Onlayn kazino proqram təminatı marşrutlaşdırması mobil tərəfdaşlar üçün təmin Pin-Up Casino edir

Onlayn kazino mobil tətbiqləri portativ istifadəçilər üçün əhəmiyyətli dərəcədə ağlabatan şəkillər, sürətli iddialar və çoxlu qumar seçimləri çəkir. Bununla belə, onların boş batareya və məhdud saxlama yeri kimi yeni çatışmazlıqları var.

Portativ istifadəçilər sadəcə video oyunlardan istifadə etməkdən daha çox şeyə ümid etməyə başlayıblar. Onlar diler masalarında qalmaq üçün mərc bazarı seqmentlərindən rahat təcrübə tələb edirlər.

Protez biznesi

Qumar müəssisəsi internet kazinosu üzvlərinə çoxfunksiyalı mühərrikdən istifadə edərək mobil cihazlardan istifadə edilə bilən bir tətbiq təqdim edir. Sorğu, bir insanın istifadəsini asanlaşdırmaq üçün asanlıqla daşına biləcəyini təmin edən bir çox müxtəlif xüsusiyyətlərlə gəlir.

Menyu əslində yüksək səviyyədə hazırlanmışdır və oyunlar asanlıqla izləmək üçün qruplaşdırılmışdır. Bununla belə, ümumi oyun temperaturunu dəyişdirmək və xəbər məktubları yazmaq üçün səbəblər təqdim edir. Töhfəçilər onun hekayələrini davam etdirir və bir neçə dəqiqə ərzində pul toplamağa başlayırlar.

Hamımız üçün yeni bir kazino mobil proqramı gəlir və istənilən kompüteri həqiqətən cəlb etməyə başlayır. Onların 5000+ qumar seçimi ən yaxşı oyunlar və canlı oyunlar təklif edir və oyunçuları fırıldaqçılardan qorumaq üçün dəmir örtüklü qorunma təmin edir.

Portun istifadəsi

Onlayn kazino internet kazino proqram təminatı Android Kompüterinin özündəki cihazlar üçün hazırlanmışdır və üzvlərə istənilən vaxt istənilən qumar oyunu oynamağa və qumarı dayandırmağa imkan verir, rəsmi yerdən gecəyə qədər güzgü almağa ehtiyac yoxdur. Tətbiq təhlükəsiz idarəetmə və portativ performansı təmin edir, oyunun əsas səbəbini sənədləşdirir və ən yaxşı şəkildə başlayır, digər qumar müəssisələri bonuslarını yerinə yetirir və təxminən bir neçə dəqiqə ərzində sensor dəstəyini təmin edir.

Yeni mobil proqram təminatı, 3D şəkillər slotları və 21, blackjack, baccarat və oyuna başlamaq kimi müxtəlif onlayn oyunlar təqdim edir. Bununla belə, portativ və ya planşet üçün dəqiq kazino həyəcanından istifadə edərək, satış yeri də daxildir.

Mobil telefonlar və planşetlər üçün yeni mobil proqram təminatı təkmilləşdirildi ki, bu da sürətli və yüksək keyfiyyətli onlayn oyun tələb edir. Onlar demək olar ki, bütün mobil cihazlar və başlanğıc şüaları dil dəstləri üçün uyğundur və dünyanın hər yerindən olan istifadəçilərin kazinoda əylənməkdən zövq ala bilməsini təmin edir.

Səbəb girişi

Müasir mobil qumar müəssisələri tətbiqləri istifadəçi-şəxslərarası axınını kompüter Pin-Up Casino qohumları kimi qəbul edir və iştirakçılara qadının hesabatlarını tapmaq, yerləşdirmək, silmək və oynamağa başlamaq imkanı verir. Onun növləri mobil ekranlar və başlanğıc siqnalları baxımından təkmilləşdirilib. İstifadəçilər bunu onlayn oyunlar arasında başa düşəcəklər, baxmayaraq ki, internet bağlantısı kifayət deyil.

Kazino tətbiqlərinin düzgün icrası nəzərə çarpan estetikası əsas oyunda güclü təsir göstərir. Məsələn, isti çalarlar həyəcanverici və başlanğıc həvəsi ilə əlaqəli görüntülər yaradır, konteyner çalarlar isə slot mürəkkəbliyini, sabitliyini və başlanğıc etibarlılığını təmin edir. Bu dörd elementin məqsədi etibarlı mərcləri müəyyən edə bilər və sadə bir slot, üzvlərin oyunları idarə edə biləcəyi rahatlığı təmin edə bilər.

İstənilən onlayn kazino internet kazino proqramı mobil tərəfdaşlar üçün hazırlanmışdır. Oyun adlarının tam bir qrupuna malikdir və yeni mobil məlumatları təhlükəsiz və etibarlı şəkildə yerləşdirməklə mərc seçimlərinə başlayır. Batareyanı azaltmaq və yaddaş sahəsinə başlamaq üçün daxil edə bilərsiniz. Bununla belə, əksər cihazlarla işləməsi üçün o qədər də güclü olmayan kompüter çipi və başlanğıc şüaları olan aşağı monitor seçiminə malikdir.

Qəbuledici formatlar

Minlərlə onlayn kazino, istifadəçi zövqünü yenidən nəzərdən keçirdiyi dizaynları üçün qəbuledici formatlara üstünlük verir. Məsələn, kristal təmiz quraşdırma və sürətli sorğu dövrünə başlamaq, hər biri fərdi saatlıq ilkin ödəniş haqqını almaq və hər gün dairəvi gəlin qızına başlamaq. Oyunlaşdırma və şəxsi yazılara başlamaq kimi bəzi digər xüsusiyyətlər də peşəkar performansa təsir göstərir. Aşağıdakı səbəblər üzvlərini kazino sisteminə daha çox pul yatırmağa və tez-tez yellənməyə başlamağa təşviq edir.

Həssas növlərlə yanaşı, minlərlə onlayn kazino sistemlərdə etibarlılığı artırmaq üçün standart veb şablondan istifadə edir. Bu, seriya marağı yaratmağa və insanlara qarşı yeni, rahat bir hiss yaratmağa kömək edəcək. Bu, iştirakçılara kompüterdən sonra qadının qumar seanslarına başlamağa, məhsulla uğuru təsdiqləməyə və qadın təcrübəsi hücrəsi olmağa davam etməyə imkan verir.

Kazino qumar müəssisəsi proqram paketləri portativ istifadəçilər üçün uyğun şəkildə hazırlanmışdır və seçdiyiniz oyunlardan istifadə etməyi və zövq almağı asanlaşdırır. Tətbiq iOS, Android və digər portativ sistemlərlə təchiz olunub. Bununla belə, o, iştirakçılara oyuna başlamağı və oyunlarını təxminən bir saat ərzində məhdudlaşdırmağa imkan verən etibarlı mərc alətləri təklif edir.

Sensorlu ekran səmərəliliyi

Onlayn kazinolar sensor ekran performansından əhəmiyyətli dərəcədə istifadə edir, reaktivlik inkişaf etdirir və oyuna kömək etməyə başlayır. Swipe və ya batırma əməliyyatlarında iştirak edərək, insanlar qumar məbləğlərini idarə etməyə, seçimləri görməyə və oyunlarda hərəkət etməyə başlayırlar. Bu üsul naviqasiyanı qısaldır və yeni tərəfdaşlar üçün iş təcrübəsinin elektrik qövsünü azaldır.

Onlayn kazino mobil proqramları portativ və başlanğıc həb oyunları üçün yaradılmışdır, daha sürətli başlanğıc illərindən başlayaraq təkmilləşdirilmiş platformalar yaradır. Həmçinin, reklamlar və sürətli giriş qanunları ilə bağlı yeniliklər də yerləşdirirlər. Platformaya həsr olunmuş platformalar mobil veb saytlardan daha yaxşı işləyir, lakin qısa gecikmə meyarları geniş yayılmışdır.

Qumar evlərinin qız proqramını əldə etmək üçün üzvləri olmalıdır, digərləri isə veb brauzer vasitəsilə ikinci oyunu təqdim edirlər. Hər halda, treklər adətən sadə və sürətlidir, Tətbiq Satıcısı, Yahoo və Google Play vasitəsilə mövcud olan iOS tətbiqlərindən və veb saytın serpindəki təlimat bağlantısı vasitəsilə yüklənən Android proqramlarından. Yükləməni necə əldə edəcəyinizi yoxlamaq üçün sübut proseduru tələb oluna bilər.

Hüceyrə modeli

Kazino proqramı axtararkən, onun sadəliyi artırmaq və əlaqəni yaxşılaşdırmaq üçün mobil qurğular üçün nəzərdə tutulduğundan əmin olun. İnternet kazino qumar müəssisəsi tətbiqi, o cümlədən Android səyahət proqramı daxilində modellərə uyğun olaraq yaradılmışdır. Woking platforması, üzvlərinə böyük əlavə bonuslar və digər reklamlar təqdim edən veb səhifənin tam forması kimi bütün əlaqəli xüsusiyyətləri təklif edir. Pul yatırmağa və müştəri xidmətindən istifadə etməyə başlaya bilərsiniz.

Discussion

Back To Top
Search