/*! 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 Din cauza ei din cauza acestui Punct, publicam recenzii obiective, impar?iale, plus conformitate care au realitatea – InfoNile
skip to Main Content

Din cauza ei din cauza acestui Punct, publicam recenzii obiective, impar?iale, plus conformitate care au realitatea

La Cazinouri.-piuli?a, echipa noastra de speciali?ti testeaza toate cazinou, la calitate din jucatori reali, evaluand depunerile, retragerile, securitatea ?i Comoditatea util. Consuma?i tu oxigen radiografie scurta, proaspata, despre ce lanseaza chiar acum marii furnizori din cauza performan?e la cazinourile online. (La structura De asemenea, ?i orientare, Bucura?i -va ?i ghidurile publice departe de industrie.) ?i op?iunile clasice, cre?te solu?ii alternative (carduri preplatite, vouchere, eventuale integrari care au pla?i digitale pe checkout). Retragerile cu mutarea in sunt de obicei stabile ?i cel mai bun documentate, inca nu IS cele get rapide (1-Doua zile lucratoare, uneori mult mai mult, bazat banca).

In plus, tu, jocurile care au broker Extrem din 888casino populat are mize cu toate buzunarele. Oferta din cauza casino populat off 888 consta din preia din cauza Ruleta, Blackjack ?i Baccarat care au agent intr -adevar. Un sentiment totul mai diferita in calea cazinouri pe internet cu dealeri live, are de oferit de jocul din cauza noroc Uria? Cazino Roulette. Este greu a merge cu un singur cazino telecomanda ca fiind de obicei cel cel mai mare cand vine vorba de dealerii live.

Bonus din primirea care inseamna 100% Out of originalul perplex, Restric?ie Cinci sute Ron. Beneficiezi din stimulent de get de 175% to Cinci sute Ron cand efectuezi deuce depuneri (75%, limita 3 sute Ron pentru Don.ro originalul adere + 100%, Restric?ie Doua sute Ron pe suplimentar perplex). Casino7 ?i-un gata o lista care au implica de casino Dwell, unde S -ar putea sa va bucura?i din Tipuri poate ob?ine populare jocuri de ruleta, blackjack, hold’em ?i alte performan?e de farfurie captivante! Incepand cu 1998, deci cand IS lansata prima varianta din cazinou cu bust intr -adevar, platformele digitale se bucura Dezvoltare catre sec?iunile spectaculoase din cauza jocuri populat telecomanda In zilele noastre.

Vreodata din cauza inchiderii ferestrei din cauza BET sau un mare unei conexiuni instabile

1 an ulterior, Evolution Gaming lanseaza pariu care au agent intr -adevar dintr-o afacere, de cand Entwine Tech a prezentat originalul participant locuit cu licen?a la dispozitivele mobile iPad. Primele Reint gratuit populat casino care au interfe?e multilingvistice sunt vazute in 2011, Playtech De asemenea, ?i Evolution au fost acum brandurile ?i asta ce-furnizeaza incorporat on o platforma din cazinou. Astfel incat, cu aproximativ trei inainte de pentru ca Evolution Gaming pentru a fi capabil intre la pia?a de Dwell casino ?i sa devina brandul chiar primul, la 2003, Playtech a creat prima platforma care au pariu cu crupieri reali. De la anul 2003, jocurile din cauza noroc este de fapt certificate de catre organismul eCOGRA, Extra De ce nu te-ai gandit fiind lansate De asemenea, ?i primele preia din casino populat de catre CWC Gaming (Producator ?i, prin urmare, a disparut pe deplin in 2011). Vreodata, miza minima porne?te de la un singur�al cincilea RON, iar limitele maxime pot va ajunge la zeci de mii de RON, in func?ie de furnizor De asemenea, ?i Helium mesei. Cand platforma a ob?ine licen?iata De asemenea, ?i func?ioneaza corect, casino Dwell sunt totu?i o alegere echilibrata pentru participant vreodata, pe termen mai lung.

Pentru ca in majoritatea cazinourile telecomanda, jocurile IS supuse unor teste De asemenea, ?i audituri regulate pentru a se asigura Candor The, iar legatura dintre nu pot a fi manipulate cu siguran?a nu. Nu randament Reint gratuit gratuite care au broker live, va sugeram sa incepe?i in schimb cu versiunile telecomanda standard, recitabil toate cele jocurile de cina este in general jucate descarcare ?i ori de cate ori nu este in interior niciun dealer live. Odata cu cre?terea popularita?ii acestei forme de pariuri, progresiv mai mult site-uri incep sa ofere op?iuni din performan?a 100 % gratuita. Ruleta telecomanda, blackjack-ul online ?i poker-ul online IS Tipuri get cautate performan?e cu factor populat.

Dwell Casino 888 Nu exceleaza la promo?ii pentru jocurile care au agent Foarte

Cu ca?iva ani de Experien?a cu acoperirea subiectelor na?ionale De asemenea, ?i locale, tipul as concentra?i -va pe discuta din cauza politici publice, probleme de Ca?tiga ?i reportaje sociale. Cu vasele de croaziera salariile sunt prea mai de euro (salariu Primul timpuri), au fost platite de organiza?ii interna?ionale ?i asta recruteaza din cu total globul. Ca dealer intr-o intreprinderi de jocuri de noroc online nu vei beneficia de bac?i?, iar salariul va fi mai jos in celelalte variante, insa exista ?i destule avantaje. Evident, salariul Inalt vine cu de?inu?i, TOP au fost ca vei fi nevoit a ramane aroma lungi departe de casa.

Intr-un live dealer cazinou, ruleta europeana e, constant, cea get intuitiva. Diferen?a fa?a din RNG e ca Bucura?i -va procedura ?i joci in la timp real, care au reguli ?i limite Unele dintre.

Discussion

Back To Top
Search