/*! 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
Ανακαλύπτοντας την άγρια μαγεία του Sultan Wild στην καθημερινότητά μας – InfoNile
skip to Main Content
Ανακαλύπτοντας την άγρια μαγεία του Sultan Wild στην καθημερινότητά μας
Διασχίζοντας τους Αχαρτογράφητους Δρόμους του Sultan Wild
Καλωσορίσατε στον μαγευτικό κόσμο του Sultan Wild , ένα παιχνίδι που συνδυάζει την περιπέτεια και την αδρεναλίνη, προσφέροντας στους παίκτες την ευκαιρία να εξερευνήσουν τις άγριες γωνιές της φαντασίας. Σε αυτό το άρθρο, θα ανακαλύψουμε όλα όσα χρειάζεται να γνωρίζετε για το Sultan Wild και πώς έχει γίνει αγαπημένο μεταξύ των φίλων των διαδικτυακών καζίνο.
Περιεχόμενα
VIDEO
Τι είναι το Sultan Wild;
Το Sultan Wild είναι ένα παιχνίδι τύχης που κρατά τους παίκτες σε συνεχόμενη δράση με την εξερεύνηση της άγριας φύσης και των κρυμμένων θησαυρών. Βασισμένο σε μυθικές αναφορές και πολιτισμικές αναφορές από την Ανατολή, το παιχνίδι ενσωματώνει εκπληκτικά γραφικά και τη δυνατότητα να κερδίσετε μεγάλα έπαθλα.
Χαρακτηριστικά του Sultan Wild
Ας ρίξουμε μια ματιά στα ιδιαίτερα χαρακτηριστικά του Sultan Wild :
VIDEO
Ευρεία Ποικιλία Τζόγου: Διατίθενται πολλές παραλλαγές παιχνιδιών, από κουλοχέρηδες μέχρι επιτραπέζια παιχνίδια.
Υπέροχα Γραφικά: Το οπτικό κομμάτι του Sultan Wild είναι σχεδιασμένο για να επενδύει τους παίκτες σε μια μοναδική εμπειρία.
Δυνατότητα Κερδών: Ο μηχανισμός κέρδους είναι δυναμικός και προσφέρει διογκωμένα jackpots στους παίκτες.
Ειδικά Μπόνους: Διαθέτει μπόνους καλωσορίσματος και προγράμματα επιβράβευσης πιστών για τους τακτικούς παίκτες.
Zinkra Casino: Η τέλεια πλατφόρμα
Αναζητώντας το καλύτερο μέρος για να απολαύσετε το Sultan Wild ; Το Zinkra Casino διαθέτει ένα φιλικό προς το χρήστη περιβάλλον που εξασφαλίζει ευχάριστη και ασφαλή εμπειρία παιχνιδιού.
Διαδικασία Εγγραφής: Εύκολη και γρήγορη εγγραφή με αξιόπιστες μεθόδους πληρωμής.
Υποστήριξη Πελατών: Διαθέσιμη 24/7 για την εξυπηρέτηση των παικτών.
Ειδικές Προσφορές: Τακτικά μπόνους και προσφορές για όλους τους χρήστες.
VIDEO
Πλεονεκτήματα του Zinkra Casino
Πλεονέκτημα
Λεπτομέρειες
Ευχρηστία
Φιλικό προς τον χρήστη περιβάλλον παιχνιδιού με εύκολη πλοήγηση.
Ασφάλεια
Χρησιμοποιεί τα πιο σύγχρονα μέτρα ασφαλείας για την προστασία των δεδομένων σας.
Ποικιλία Παιχνιδιών
Περισσότεροι από 1000 τίτλοι για να διαλέξετε.
Συμβουλές παιχνιδιού
Για να μεγιστοποιήσετε την εμπειρία σας στο Sultan Wild , ακολουθείστε αυτές τις συμβουλές:
Καθορίστε Προϋπολογισμό: Ορίστε ένα όριο στις δαπάνες σας πριν από την έναρξη του παιχνιδιού.
Δοκιμάστε Δωρεάν Έκδοση: Χρησιμοποιήστε την επιλογή δωρεάν παιχνιδιού για να κατανοήσετε wildsultangr.com τους κανόνες.
Μην Υπερβάλλετε: Παίξτε υπεύθυνα και απολαύστε τη διαδικασία χωρίς πίεση.
Συχνές Ερωτήσεις
Εδώ θα βρείτε απαντήσεις σε μερικές συχνές ερωτήσεις σχετικά με το Sultan Wild :
Πρέπει να κάνω λογαριασμό για να παίξω; Ναι, η εγγραφή είναι απαραίτητη για την πρόσβαση σε όλα τα παιχνίδια.
Ποιες μέθοδοι πληρωμής είναι διαθέσιμες; Κάρτες, ηλεκτρονικά πορτοφόλια και τραπεζικές μεταφορές.
Πως μπορώ να κερδίσω μεγάλα έπαθλα; Χρησιμοποιώντας στρατηγικές μακροχρόνιας παραμονής στο παιχνίδι, μπορείτε να αυξήσετε τις πιθανότητές σας.
Για περισσότερες πληροφορίες ή για να επισκεφτείτε το Zinkra Casino, μπορείτε να ακολουθήσετε την ιστοσελίδα τους και να ξεκινήσετε τη δική σας περιπέτεια με το Sultan Wild .
Η ισχυρή ένταση και η περιπέτεια που υπόσχεται το Sultan Wild δημιουργούν μια μοναδική εμπειρία που συνδυάζει τη χαρά του παιχνιδιού με την ανακάλυψη της άγριας πλευράς που όλοι κρύβουμε! Ας ανακαλύψουμε μαζί αυτόν τον συναρπαστικό κόσμο!
Back To Top