/*! 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 I like how the ports is actually separated into some subcategories on the the midst of the fresh new screen – InfoNile
skip to Main Content

I like how the ports is actually separated into some subcategories on the the midst of the fresh new screen

On the downside, there’s absolutely no solution to filter ports according to the software vendor, which could getting an effective addition. You have got a way to opt for the readily available South carolina jackpots by the clicking �Choose During the� at the bottom of each video game, and you are clearly capable look at the latest huge prize.

Day-after-day login bonusTypically 1,000 GC + 0

PlayFame service is available because of official support pathways 24/7, and you may reaction day may vary doing a couple of days. Account and you can harmony info can stand synced around the served gadgets. If you like the new real time desk front, begin by live dealer game; if you want the fresh new larger reception structure, explore local casino-design video game.

However, it’s important to just remember that , you might simply seek out redeem eligible Sweeps Gold coins claimed owing to game play. Accomplish any pick, you’ll want to works the right path by this simple procedure. Touchscreen responsiveness is superb, which have easy scrolling and short game loading moments.

You simply can’t buy Sweeps Coins, therefore the merely chance to discharge all of them has been bonuses, competitions, and game play. For fans off live gambling establishment activity, PlayFame enjoys 11 real time agent video game, in addition to popular choices such Gravity Black-jack and you may Vehicle-Roulette. This type of game function Grand, Biggest, Minor, and you can Micro jackpots, on the Grand Jackpot giving impressive awards doing 777 billion Coins or 150,000 Sweeps Coins. In addition, PlayFame now offers four alive specialist game, for example Gravity Blackjack and you may Car-Roulette, bringing an immersive real-time gambling enterprise experience.

Which multiple-tier VIP advantages program also offers https://coolbetcasino-fi.com/fi-fi/bonus/ generous benefits and you may benefits when you achieve large profile, which have �Glory Factors� coming your way since an incentive for uniform game play. When you sign up PlayFame, you happen to be automatically signed up for the newest brand’s �Magnificence Bar� respect benefits program. 2 SCThe proper way to love a steady flow regarding totally free Coins and you can Sweeps Gold coins from the PlayFame is to try to allege the fresh brand’s every day login extra, and that stands during the one,000 GC and you can 0.2 Sc.

When comparing to greatest sweepstakes casinos, this particular aspect of PlayFame was solid. Also known as the exact opposite Type of Admission (AMOE), that is a thing that most of the sweepstakes casinos have to promote. Into the day 7, if you have effortlessly signed within the and you may stated your own incentive everyday then you will get the limit prize away from 2.5 100 % free Sc. Alternatively, you could record oneself back again to your account, at once out over the newest �Score Coins’ area, click on the �Day-after-day Reward’ and you can �claim’ they. six.Social media GiveawaysFollow PlayFame to your Twitter, X, and you can Instagram to own access to freebies and competitions, with listings providing to 80K GC and you may 40 free Sc. Yet not, this is simply not to declare that PlayFame’s desired added bonus ‘s the best available to choose from, that have gambling enterprises such giving 25 South carolina for the sign-up.

To own a much deeper money dysfunction, utilize the pages for a means to claim free gold coins, exactly how Gold coins really works and award redemption actions. Redemption details, offered prize solutions and account-specific requirements might be appeared on your membership before you could rely on the any well worth, timing or strategy. PlayFame also contains a prize redemption route for eligible account activity. For the Android os or other devices, just unlock PlayFame in virtually any progressive mobile internet browser and put they to your house screen to have an application-such as experience – there is no independent Android os down load.

There is certainly much offered right here, and it is clear that team at the rear of PlayFame has put an effective significant imagine and you will care to the creation of so it uber-progressive public local casino web site. There is a loyal region of PlayFame exclusive online game, where you’ll find a selection of hot the brand new game which you would not come across somewhere else. The game lobby is actually incredibly defined into the PlayFame Log in/PlayFame Check in button perfectly located in the upper correct corner of the fresh display, and you may things are easy to locate. Thanks to all of these bonuses, you don’t should make a great GC buy otherwise must. If you would like know more about tips allege these types of bonuses, here are some our full PlayFame extra comment where i get into more detail. The new everyday login added bonus at PlayFame will provide you with a solid 1,000 GC and up to one South carolina for just log in the a day.

Post Within the Request4 free South carolina 7

Free people is brought to many other channels like email address and you may ticket service, hence generally bring ranging from 12 and you will a day to listen straight back regarding. The latest ten South carolina minimal getting present notes is just one of the lower on sweepstakes gambling establishment business, while making PlayFame highly accessible. It will help PlayFame stand out from the crowd because the not any other social casinos provides an element to match it. PlayFame has these types of less than its real time umbrella, adding a quick-paced replacement for ports. An ever growing group inside sweepstakes casinos, crash online game allow you to cash out a multiplier until the bend resets. Live game are streamer-included roulette, blackjack, and you may crash titles.

Discussion

Back To Top
Search