File "single-scripts.js"
Full Path: /home/exhehbu/www/wp-content/plugins/eventer/js/single-scripts.js
File size: 53.01 KB
MIME-type: text/plain
Charset: utf-8
jQuery(function ($) {
"use strict";
// console.log( single );
if (single.woo_layout == 'on') {
if ($('.reload-checkout').length) {
$('[href="#eventer-ticket-form-' + single.dynamic_event + '"]').click();
$('.add_services_btn').removeClass('disableClick');
}
$('.eventer-ticket-details-wrap a.eventer-btn' ).on('click', function( e ) {
if (single.minimum_ticket != '') {
$('.num-tickets').each( function() {
$(this).val(single.minimum_ticket);
$(this).trigger('keyup');
});
}
});
}
function disableDays(date) {
var pad = function (value) {
return (value < 10 ? '0' : '') + value;
};
var sDate = date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate());
$('#ui-datepicker-div').addClass('eventer-custom-ui-datepicker');
return [$.inArray(sDate, single.enabled_date) !== -1, 'highlight'];
}
function eventer_match_height() {
$('.equah').each(function () {
$(this).find('.equah-item').matchHeight();
});
}
if (single.stripe_switch == '1' && single.woo_payment_switch !== 'on') {
//Stripe.setPublishableKey(single.stripe_publishable_key);
var stripe = Stripe(single.stripe_publishable_key); // test publishable API key
var elements = stripe.elements();
var card = elements.create('card', {
hidePostalCode: true,
style: {
base: {
iconColor: '#666EE8',
color: '#31325F',
lineHeight: '40px',
fontWeight: 300,
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
fontSize: '15px',
'::placeholder': {
color: '#999999',
},
},
}
});
// Add an instance of the card UI component into the `card-element` <div>
if ($('#card-element').length) {
card.mount('#card-element');
}
// Handle events and errors
card.addEventListener('change', function (event) {
var displayError = document.getElementById('card-errors');
if (event.error) {
displayError.textContent = event.error.message;
} else {
displayError.textContent = '';
}
});
}
function stripeTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('ticket-reg');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
var form$ = $(".ticket-reg");
form$.append("<input type='hidden' class='eventer-stripe-token' name='stripeToken' value='" + token.id + "' />");
$('.save-registrant').trigger('click');
}
function createToken(e) {
e.preventDefault();
let custData = {
name: $("#reg_email").val(),
/*address_line1: '21 Great Street',
address_line2: 'Shilloong',
address_city: 'Chicago',
address_state: 'Illinois',
address_zip: '12345',
address_country: 'US'*/
};
stripe.createToken(card, custData).then(function (result) {
if (result.error) {
// Inform the user if there was an error
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
// Send the token to your server
stripeTokenHandler(result.token);
}
});
}
$(document).on('click', '.eventer-stripe-trigger', function (e) {
if (single.stripe_switch == '1' && single.woo_payment_switch !== 'on') {
createToken(e);
let token_val = $('.eventer-stripe-token').val();
if (typeof token_val != 'undefined' && token_val != '') {
$(this).removeClass('eventer-stripe-trigger');
}
}
})
function APPENDQUERYURL(key, value, url) {
if (!url) { url = window.location.href; }
var re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi"),
hash;
if (re.test(url)) {
if (typeof value !== 'undefined' && value !== null) {
return url.replace(re, '$1' + key + "=" + value + '$2$3');
} else {
hash = url.split('#');
url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
if (typeof hash[1] !== 'undefined' && hash[1] !== null) {
url += '#' + hash[1];
}
return url;
}
} else {
if (typeof value !== 'undefined' && value !== null) {
var separator = url.indexOf('?') !== -1 ? '&' : '?';
hash = url.split('#');
url = hash[0] + separator + key + '=' + value;
if (typeof hash[1] !== 'undefined' && hash[1] !== null) {
url += '#' + hash[1];
}
return url;
} else { return url; }
}
}
function CHECKBOXVALIDATE(names, fields) {
var chkds = $("input[name='" + names + "']:" + fields);
if (chkds.is(":checked")) {
return "1";
} else {
return "0";
}
}
function VALIDATEEMAIL(emailField) {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
if (reg.test(emailField.val()) === false) {
return "0";
}
return "1";
}
//Load dynamic booking area on single details page
function eventer_dynamic_bookings(dateText) {
var event_time = $('.eventer-time-slot :selected').val();
$('.eventer-ticket-details').attr('data-date', dateText);
$('.eventer-ticket-details').attr('data-time', event_time);
var request = $.ajax({
url: single.ajax_url,
type: "post",
dataType: 'json',
data: {
action: 'eventer_dynamic_ticket_area',
date: dateText,
time: event_time,
event: single.dynamic_event,
},
beforeSend: function (xhr) {
$('.eventer-loader-form').show();
},
});
request.done(function (response) {
$('.eventer-event-date').html('<i class="eventer-icon-calendar"></i>' + response.formatted);
//$('.eventer-front-ticket-area-dynamic').empty();
$('.eventer-ticket-details-wrap').replaceWith(response.tickets);
$('.eventer_ticket-filter').replaceWith(response.tickets_modal);
$('#reg_event_date').text(response.date);
$('#reg_event_time').text(response.time);
$('#paypal_return').text(response.event_url);
eventer_update_date_in_url( response, single, dateText );
var metas = $('.eventer-single-event-details');
metas.empty();
metas.removeClass('eventer eventer-event-single eventer-single-event-details');
metas.html(response.metas);
$('#eventer-future-bookings').datepicker({
showOn: "button",
maxDate: new Date(single.max_date),
dateFormat: 'dd-mm-yy',
buttonText: response.date_show,
defaultDate: new Date(response.date),
beforeShowDay: disableDays,
onSelect: function (dateText, inst) {
eventer_dynamic_bookings(dateText);
}
});
$('.eventer-loader-form').hide();
$('.eventer-time-slot').val(event_time);
});
}
function eventer_update_date_in_url( response, single, dateText ) {
// Get the current URL
var currentUrl = window.location.href;
// Check if the URL contains "edate" parameter
if (currentUrl.includes("edate")) {
// Extract the value of the "date" parameter from the "edate" parameter
var match = currentUrl.match(/edate\/(\d{4}-\d{2}-\d{2})/);
if (match) {
var currentDate = match[1];
// Replace the current date with a new one (e.g., "2023-12-01")
var newDate = eventer_validate_dateFormat( dateText );
var newUrl = currentUrl.replace("edate/" + currentDate, "edate/" + newDate);
// Push the new URL to the browser history without redirecting
history.pushState(null, null, newUrl);
}
}
}
function eventer_validate_dateFormat(input_D) {
// Extract day, month, and year from the input string
const [day, month, year] = input_D.split('-').map(Number);
// Format the date in the desired output format "yyyy-mm-dd"
const outputDate = `${year.toString().padStart(4, '0')}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
return outputDate;
}
function eventer_action_print_button(elem) {
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
var mywindow = window.open('', 'PRINT', 'height=400,width=600');
mywindow.document.write('<html><head><title>' + document.title + '</title>');
mywindow.document.write('<link rel="stylesheet" href="' + single.eventer_style + '" type="text/css" media="all" />');
mywindow.document.write('</head><body class="eventer eventer-print-window">');
mywindow.document.write('<h1>' + document.title + '</h1>');
mywindow.document.write(document.getElementById(elem).innerHTML);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10*/
mywindow.print();
if (isSafari) {
} else {
mywindow.close();
}
return true;
}
function VALIDATEFORMFIELDS(element, counting) {
var passing = "1";
var total_counting = counting;
var required = element.attr("data-required");
if (required === "1") {
var field_type = element.prop("type");
if (field_type === "text" || field_type === "textarea" || field_type === "email" || field_type === "number") {
if (element.val() === '') {
element.addClass("eventer-required-field");
passing = "0";
total_counting = total_counting + 1;
} else if (field_type === "email" && VALIDATEEMAIL(element) === "0") {
element.addClass("eventer-required-field");
element.closest("form").find(".message").empty();
element.closest("form").find(".message").append(element.attr("name") + ' <p>' + single.email_msg + '</p>');
passing = "0";
total_counting = total_counting + 1;
} else if (field_type === "number" && !$.isNumeric(element.val())) {
element.addClass("eventer-required-field");
element.closest("form").find(".message").empty();
element.closest("form").find(".message").append(element.attr("name") + ' <p>' + single.number_msg + '</p>');
passing = "0";
total_counting = total_counting + 1;
} else {
element.removeClass("eventer-required-field");
passing = "1";
}
} else if (field_type === "checkbox" || field_type === "radio") {
var fname = element.attr("name");
var result = CHECKBOXVALIDATE(fname, element.prop("type"));
if (result === "1") {
element.closest("div").removeClass("eventer-required-field");
passing = "1";
} else {
element.closest("div").addClass("eventer-required-field");
passing = "0";
total_counting = total_counting + 1;
}
} else {
if (element.val() === '') {
element.addClass("eventer-required-field");
passing = "0";
total_counting = total_counting + 1;
} else {
element.removeClass("eventer-required-field");
passing = "1";
}
}
}
if (counting === '') {
return passing;
} else {
return total_counting;
}
}
function update_all_fields_name(index, fields ) {
var customClass = 'registrant-fields';
var html = fields.replace(/name="([^"]+)"/g, function(match, p1) {
if (p1.trim() !== "") {
var updatedName = 'name="' + p1 + index + '"';
// var updatedName = 'name="reg_fields[' + index + ']' + p1 + '"';
var updatedWithClass = match; // Start with the original match
// Check if class attribute exists
if (match.indexOf('class=') !== -1) {
// Append the custom class
updatedWithClass = match.replace(/class="([^"]+)"/, function(matchClass, pClass) {
return 'class="' + pClass + ' ' + customClass + '"';
});
} else {
// Add the new class
updatedWithClass = match.replace(/name="([^"]+)"/, function(matchName) {
return matchName + ' class="' + customClass + '"';
});
}
return updatedName + ' ' + updatedWithClass;
} else {
return match;
}
});
return html;
}
function update_all_fields_class(fields ) {
var customClass = 'registrant-fields';
var html = fields.replace(/name="([^"]+)"/g, function(match, p1) {
if (p1.trim() !== "") {
var updatedWithClass = match; // Start with the original match
// Check if class attribute exists
if (match.indexOf('class=') !== -1) {
// Append the custom class
updatedWithClass = match.replace(/class="([^"]+)"/, function(matchClass, pClass) {
return 'class="' + pClass + ' ' + customClass + '"';
});
} else {
// Add the new class
updatedWithClass = match.replace(/name="([^"]+)"/, function(matchName) {
return matchName + ' class="' + customClass + '"';
});
}
return updatedWithClass;
} else {
return match;
}
});
return html;
}
$(document).ready(function () {
eventer_match_height();
//Code to change booking area on single page while changing time slot
$(document).on('change', '.eventer-time-slot', function () {
eventer_dynamic_bookings($('.eventer-ticket-details').attr('data-date'));
});
$(document).on('change', 'select#eventer-future-bookings', function ( e ) {
var dateText = $(this).val();
eventer_dynamic_bookings( dateText );
});
$('#eventer-future-bookings').datepicker({
showOn: "button",
maxDate: new Date(single.max_date),
buttonText: single.future_date_cal,
dateFormat: 'dd-mm-yy',
beforeShowDay: disableDays,
defaultDate: new Date(single.min_date),
onSelect: function (dateText, inst) {
eventer_dynamic_bookings(dateText);
}
});
$(document).on('click', '.eventer-toggle-area-trigger', function (e) {
var dialog_heading = $(this).attr('data-eventer-dialog-heading');
if (typeof dialog_heading !== 'undefined' && dialog_heading !== '') {
$(this).closest('.eventer-modal').find('.eventer-section-wise-heading').text(dialog_heading);
}
var targetIn = $(this).attr('data-eventer-toggle-in');
var targetOut = $(this).attr('data-eventer-toggle-out');
$(this).parents('.eventer-toggle-area').find(targetOut).slideUp('fast');
$(this).parents('.eventer-toggle-area').find(targetIn).slideDown('slow');
e.preventDefault();
});
if (single.register_status !== "" && typeof single.register_status !== 'undefined') {
$("#eventer-ticket-confirmation").emodal();
}
$(".eventer-get-ticket-modal").click(function (event) {
$.emodal.close();
$("#eventer-ticket-show-now").emodal();
});
$(document).on('mouseenter mouseleave', '.eventer-event-save', function () {
$(this).find('ul').toggle();
});
$('.eventer-print-ticket').click(function () {
eventer_action_print_button('eventer-ticket-show-now');
});
$("form.organizer-contact").on("submit", function (e) {
var form_element = $(this);
var validated = "1";
$(this).closest("form").find(".message").empty();
var all_fields = $(this).serializeArray();
var eventer_id = $(".organizer-details").text();
var eventer_date = $(".eventer-date").text();
$(this).find('.eventer_add_event_field').each(function () {
var passing = VALIDATEFORMFIELDS($(this), '');
if (passing !== "1") {
validated = "0";
}
});
if (validated !== "1") {
return false;
}
var request = $.ajax({
url: single.ajax_url,
type: "post",
async: false,
data: {
action: 'eventer_contact_organizer',
org_data: all_fields,
eventer_id: eventer_id,
eventer_date: eventer_date,
nonce: single.organizer_contact,
},
beforeSend: function (xhr) {
form_element.find("input[type=submit]").prop('disabled', true);
},
});
request.done(function (response) {
form_element.find("input[type=submit]").prop('disabled', false);
form_element.find(".message").html(single.contact_manager_text);
$('#eventer-contact-form').slideUp(1500);
$('.eventer-modal-close').trigger('click');
});
request.fail(function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
});
e.preventDefault();
});
function checkTimeSlot(event) {
var $time = $("select.eventer-time-slot");
if (!$time.length) {
return false;
}
if ($time.val() == "00:00:00" && single.mandatory_timeslot === "on") {
var url = $(event.currentTarget).attr("href");
event.currentTarget.href = "#";
event.stopPropagation();
event.preventDefault();
$time.addClass("eventer-required-field");
}
}
$(document).on('submit', 'form.ticket-reg', function (e) {
var booking_type = $(this).attr('data-booking');
var closest_booking = $('.eventer-front-ticket-area-dynamic');
var booking_nonce = $(this).attr('data-nonce');
$('.eventer-removable-field-bypermission').each(function () {
if ($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none') {
$(this).remove();
}
});
if ($(this).hasClass("eventer-direct-register") || single.mandatory_registrants === 'on') {
var validated = "1";
$(closest_booking).find('form.ticket-reg .eventer-ticket-type-row:not(.eventer-ticket-type-restriction) *').filter(':input').each(function () {
if ($(this).hasClass('eventer-stripe-fields')) {
return true;
}
var passing = VALIDATEFORMFIELDS($(this), '');
if (passing !== "1") {
validated = "0";
}
});
if (validated !== "1") {
return false;
}
}
var form_element = $(this);
var cart_status = $(form_element).find('.eventer-row').attr('data-cart');
var total_price_ticket = $(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice');
var $all_fields = $(this).find(':input:not(.registrant-fields)').serializeArray();
var all_registrants_list = {};
$(closest_booking).find('.eventer-registrants-row').each(function () {
var ticket_name_reg = $(this).attr('data-ticket');
var registrants_list = [];
$(this).find('.eventer-registrants-list').each(function () {
var registrants_field_list = {};
$(this).find(':input').each(function () {
if ( $(this).hasClass('eventer_registrant_name') ) {
registrants_field_list['name'] = $(this).val();
} else if ( $(this).hasClass('eventer_registrant_email') ) {
registrants_field_list['email'] = $(this).val();
} else {
var field_name = $(this).attr('name');
var field_value = $(this).val();
registrants_field_list[field_name] = field_value;
}
});
// Check if there's at least one non-empty field in the registrant list
var isEmpty = Object.values(registrants_field_list).every(value => value === '');
if (!isEmpty) {
registrants_list.push(registrants_field_list);
}
});
all_registrants_list[ticket_name_reg] = registrants_list;
});
console.log($all_fields);
console.log(all_registrants_list);
var registration;
var Tickets = [];
var Ticket_Validation = [];
var service = [];
$(closest_booking).find('.services-section').each(function () {
var pid = $(this).closest('.eventer-ticket-type-row').attr('data-pid');
var cost = $(this).closest('.eventer-ticket-type-row').find('.total-price').attr('data-mprice');
var services = {};
var service_vals = '';
services.name = $(this).closest('.eventer-ticket-type-row').find('.name-ticket').text();
$(this).find('.add_services').each(function () {
if ($(this).is(':checked')) {
service_vals += $(this).val() + ', ';
}
});
services.value = service_vals;
services.pid = pid;
services.cost = cost;
service.push(services);
});
let total_tickets_booking = 0;
$(closest_booking).find(".num-tickets").each(function () {
total_tickets_booking += parseInt($(this).val());
var $crow = $(this).closest(".eventer-ticket-type-row");
var data = {};
var ticket_price = '0';
var ticket_name_new = $crow.find(".name-ticket").text();
if ($(this).val() !== '') {
ticket_price = $crow.find(".price-ticket").attr('data-tprice');
Ticket_Validation.push(data);
}
if (ticket_name_new !== '') {
data.name = $crow.find(".name-ticket").text();
data.number = $crow.find(".num-tickets").val();
data.pid = $crow.find('.eventer-row').attr('data-pid');
data.wpid = $crow.find('.eventer-row').attr('data-wpid');
data.id = $crow.find('.eventer-row').attr('data-ticketid');
data.primary = $crow.find('.eventer-row').attr('data-primary');
data.price = ticket_price;
Tickets.push(data);
}
});
if ($('.eventer-common-tickets-remaining').val() > 0 && total_tickets_booking > $('.eventer-common-tickets-remaining').val()) {
$(closest_booking).find('form.ticket-reg').find(".message").empty();
$(closest_booking).find('form.ticket-reg').find(".message").html('<br/><div class="eventer-ticket-full">'+single.total+ ' ' + $('.eventer-common-tickets-remaining').val() + '</div>');
return false;
}
if (Ticket_Validation.length === 0) {
$(closest_booking).find('form.ticket-reg').find(".message").empty();
$(closest_booking).find('form.ticket-reg').find(".message").html(single.blank_tickets);
e.preventDefault();
return false;
} else if ($(closest_booking).find('input:radio:checked').length <= 0 && total_price_ticket > 0 && booking_type != 'woo') {
$(closest_booking).find('form.ticket-reg').find(".message").empty();
$(closest_booking).find('form.ticket-reg').find(".message").html(single.blank_payment);
e.preventDefault();
return false;
} else {
$(closest_booking).find('form.ticket-reg').find(".message").empty();
if (single.offline_switch !== "1") {
//$(closest_booking).find(".chosen-payment-option").prop("checked", true);
}
}
var paypal_arguments = '';
//var dotpay_arguments = '';
var stripe_arguments = '';
var eventer_cred = {};
if ($(closest_booking).find("form#ticket-reg").attr("action").indexOf("paypal") > -1) {
paypal_arguments = '<input type="hidden" name="business" value="' + single.paypal_email + '">';
paypal_arguments += '<input type="hidden" name="cmd" value="_xclick">';
paypal_arguments += '<input type="hidden" name="on0" value="">';
paypal_arguments += '<input type="hidden" name="on1" value="' + $(closest_booking).find("#reg_email").val() + '">';
paypal_arguments += '<input type="hidden" name="item_name" value="' + $(closest_booking).find("#paypal_itemname").text() + '">';
paypal_arguments += '<input type="hidden" name="item_number" value="' + $(closest_booking).find("#eventer_id").text() + '">';
paypal_arguments += '<input type="hidden" name="amount" value="' + $(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice') + '">';
paypal_arguments += '<input type="hidden" name="currency_code" value="' + single.paypal_curr + '">';
paypal_arguments += '<input type="hidden" name="cancel_return" value="' + $("#paypal_return").text() + '">';
paypal_arguments += '<input type="hidden" name="return" value="' + $(closest_booking).find("#paypal_return").text() + '">';
$(closest_booking).find(".save-registrant").before(paypal_arguments);
} else if ($(closest_booking).find("form#ticket-reg").attr("action").indexOf("dotpay") > -1) {
booking_type = 'dotpay';
}
//return false;
if ($('.eventer_stripe_field').is(':visible')) {
booking_type = 'stripe';
eventer_cred = { 'token': $('.eventer-stripe-token').val() };
}
if ($(closest_booking).find('#register-reg').is(":checked")) {
registration = 1;
}
var amount = parseFloat($(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice'));
var request = $.ajax({
url: single.ajax_url,
type: "post",
dataType: 'json',
//async: false,
data: {
action: 'eventer_registrant_tickets',
reg_data: $all_fields,
eventer_id: $(closest_booking).find("#eventer_id").text(),
amount: amount,
reg_mail: $(closest_booking).find("#reg_email").val(),
reg_name: $(closest_booking).find("#reg_name").val(),
cart_status: cart_status,
reg_event_date: $(closest_booking).find("#reg_event_date").text(),
reg_event_time: $(closest_booking).find("#reg_event_time").text(),
reg_event_slot: $('.eventer-time-slot :selected').text(),
card_cred: eventer_cred,
tickets: Tickets,
registration: registration,
services: service,
registrants: all_registrants_list,
book_type: booking_type,
//nonce: booking_nonce,
},
beforeSend: function (jqXhr) {
$('body').addClass('woocommerce-checkout');
jqXhr.setRequestHeader('X-WP-Nonce', booking_nonce);
form_element.find("input[type=submit]").prop('disabled', true);
form_element.find('.eventer-loader-wrap').show();
},
});
request.done(function (response) {
e.preventDefault();
if (response.reg_invalid == '1') {
form_element.find('.eventer-loader-wrap').hide();
form_element.find("input[type=submit]").prop('disabled', false);
$('.message').empty();
$('.message').html('<br/><div class="eventer-ticket-full">'+ single.already + ' ' + response.ticket_name + '</div>');
return false;
}
if (response.reg) {
var form_action = $(closest_booking).find("form.ticket-reg").attr("action");
if (form_action.indexOf("paypal") <= -1) {
var newformaction = APPENDQUERYURL('reg', response.reg, form_action);
form_action = newformaction;
$(closest_booking).find("form.ticket-reg").attr("action", form_action);
}
var paypal_return = $(closest_booking).find("#paypal_return").text();
var new_paypal_return = APPENDQUERYURL('reg', response.reg, paypal_return);
$(closest_booking).find("input[name=return]").val(new_paypal_return);
$(closest_booking).find("input[name=on0]").val(response.reg);
}
form_element.find("input[type=submit]").prop('disabled', false);
form_element.find('.eventer-loader-wrap').hide();
if (booking_type === 'woo') {
closest_booking.find('.eventer-order-summary-added').remove();
$('<div class="eventer-order-summary-added widget woocommerce widget_shopping_cart">' + response.woo + '</div>').insertBefore(closest_booking.find('.eventer-woo-checkout-section'));
$(closest_booking).find(".eventer-show-order-summary").trigger("click");
jQuery(document.body).trigger("update_checkout");
$(closest_booking).find(".showcoupon").click(function () {
$(closest_booking).find(".checkout_coupon").slideToggle();
return false;
});
$(closest_booking).find(".showlogin").click(function () {
$(closest_booking).find(".woocommerce-form-login").slideToggle();
return false;
});
form_element.find('.eventer_dynamic_checkout_payment').show();
if (single.woo_layout == 'on') {
window.location.href = window.location.pathname + "?" + $.param({ 'checkout_show': '1' })
e.preventDefault();
}
} else {
if (booking_type == 'stripe' && response.secret !== '') {
stripe.handleCardAction(
response.secret
).then(function (result) {
if (result.error) {
document.getElementById("payment-errors").textContent = result.error.message;
} else {
$.ajax({
url: single.ajax_url,
type: "post",
dataType: 'json',
data: {
action: 'eventer_confirm_payment_stripe',
secret: result.paymentIntent.id,
reg_id: response.reg_id
},
success: function (response) {
e.preventDefault();
var form_action = $(closest_booking).find("form.ticket-reg").attr("action");
var newformaction = APPENDQUERYURL('reg', response.reg, form_action);
form_action = newformaction;
$(closest_booking).find("form.ticket-reg").attr("action", form_action);
$(closest_booking).find("form.ticket-reg").addClass("new-ticket-reg");
$(closest_booking).find("form.ticket-reg").removeClass("ticket-reg");
$(closest_booking).find('form.new-ticket-reg').submit();
}
});
}
});
return false;
} else {
e.preventDefault();
$(closest_booking).find("form.ticket-reg").addClass("new-ticket-reg");
$(closest_booking).find("form.ticket-reg").removeClass("ticket-reg");
$(closest_booking).find('form.new-ticket-reg').submit();
}
}
});
request.fail(function (jqXHR, textStatus, errorThrown) {
form_element.find('.eventer-loader-wrap').hide();
form_element.find("input[type=submit]").prop('disabled', false);
$('.message').empty();
$('.message').html('<br/><div class="eventer-ticket-full">'+single.error+ ' </div>');
});
return false;
});
$(document).on("click", ".validate-registrant", function (e) {
e.preventDefault();
var validated = "1";
var closest_booking = $('.eventer-front-ticket-area-dynamic');
$(closest_booking).find('form.ticket-reg *').filter(':input').each(function () {
if ($(this).is(":hidden")) {
return true;
}
var passing = VALIDATEFORMFIELDS($(this), '');
if (passing !== "1") {
validated = "0";
}
});
if (validated !== "1") {
return false;
}
$(closest_booking).find('.restricted-row').each(function () {
var ticket_cookie = $(this).attr('data-booked');
if (ticket_cookie !== "") {
$(this).find('.num-tickets').prop('disabled', true);
$(this).find('.eventer-qtyplus').prop('disabled', true);
$(this).find('.eventer-qtyminus').prop('disabled', true);
$(this).find('.eventer-restricted-msg').show();
} else {
$(this).find('.num-tickets').prop('disabled', false);
$(this).find('.eventer-qtyplus').prop('disabled', false);
$(this).find('.eventer-qtyminus').prop('disabled', false);
$(this).find('.eventer-restricted-msg').hide();
}
});
$(closest_booking).find("#fname").removeClass("eventer-input-error");
$(closest_booking).find("#reg_email").removeClass("eventer-input-error");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
var targetIn = $(this).attr('data-eventer-toggle-in');
var targetOut = $(this).attr('data-eventer-toggle-out');
$(this).parents('.eventer-toggle-area').find(targetOut).slideUp('fast');
$(this).parents('.eventer-toggle-area').find(targetIn).slideDown('slow');
if (single.minimum_ticket != '') {
$('.num-tickets').val(single.minimum_ticket);
$('.num-tickets').trigger('keyup');
}
});
$(document).on('change', ".add_services", function () {
var closest_booking = $('.eventer-front-ticket-area-dynamic');
var have_ticket;
$(closest_booking).find(".num-tickets").each(function () {
if ($(this).val() !== '0') {
have_ticket = 1;
}
});
var $crow = $(this).closest(".eventer-ticket-type-row");
var clist = $(this).closest("li");
var price = clist.attr('data-tprice');
var total_price_services = 0;
var check_status;
var total_price_ticket = 0;
if ($(this).is(':radio')) {
$crow.find(".price-ticket").attr('data-mprice', 0);
}
if ($(this).is(':checked')) {
clist.attr('data-mprice', price);
check_status = "1";
} else {
clist.attr('data-mprice', 0);
check_status = "0";
}
if ($(closest_booking).find(".restrict-service").length && !$(closest_booking).find('.restrict-service-field').is(':checked')) {
check_status = "2";
} else {
check_status = "1";
}
$crow.find(".price-ticket").each(function () {
var service_price = ($(this).attr("data-mprice") !== '') ? $(this).attr("data-mprice") : 0;
total_price_services = total_price_services + parseFloat(service_price);
});
var set_price_individual_service = (single.curr_position === "postfix") ? total_price_services + single.curr : single.curr + total_price_services;
$crow.find(".total-price").text(set_price_individual_service);
$crow.find(".total-price").attr('data-mprice', total_price_services);
$(closest_booking).find(".total-price").each(function () {
var $one_price = ($(this).attr("data-mprice") !== '') ? $(this).attr("data-mprice") : 0;
total_price_ticket = total_price_ticket + parseFloat($one_price);
});
var set_price = (single.curr_position === "postfix") ? total_price_ticket + single.curr : single.curr + total_price_ticket;
$(closest_booking).find(".eventer-ticket-price-total").text(set_price);
$(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice', total_price_ticket);
$(closest_booking).find(".eventer-ticket-price-total").attr('data-aprice', total_price_ticket);
});
$('.add_services_btn').click(function () {
if (single.mandatory_registrants == 'on') {
var validated = "1";
$('form.ticket-reg *').filter(':input').each(function () {
if ($(this).hasClass('eventer-stripe-fields')) {
return true;
}
var passing = VALIDATEFORMFIELDS($(this), '');
if (passing !== "1") {
validated = "0";
}
});
if (validated !== "1") {
return false;
}
}
var closest_booking = $('.eventer-front-ticket-area-dynamic');
if ($(closest_booking).find(".restrict-service").length && !$(closest_booking).find('.restrict-service-field').is(':checked')) {
$(closest_booking).find('.save-registrant').prop('disabled', true);
}
});
$(document).on('keyup mouseup', ".num-tickets, .eventer-qtyminus, .eventer-qtyplus", function () {
var $crow = $(this).closest(".eventer-ticket-type-row");
$('.eventer-coupon-validate').removeClass('eventer-coupon-validated eventer-coupon-invalid');
$('.eventer-coupon-validate').removeAttr('disabled');
var limit_event_count = parseInt(single.event_tickets_set);
if ($crow.attr('data-limit') == "yes") {
limit_event_count = 1;
}
var closest_booking = $('.eventer-front-ticket-area-dynamic');
var remaining_tickets = $crow.find('.remaining-ticket').text();
var set_remaining = (remaining_tickets >= limit_event_count) ? limit_event_count : remaining_tickets;
var price = $crow.find(".price-ticket").attr('data-tprice');
var number = parseInt($crow.find(".num-tickets").val());
var calculation;
var have_ticket;
if ($(this).val() === '-' || $(this).val() === '+') {
if (!isNaN(number)) {
if ( $(this).val() === '-' && number > 0 ) {
calculation = $crow.find('.num-tickets').val(number - 1);
} else if ($(this).val() === '+' ) {
calculation = $crow.find('.num-tickets').val(number + 1);
if (parseInt($crow.find('.num-tickets').val()) > parseInt(set_remaining)) {
$crow.find('.num-tickets').val(set_remaining);
}
}
} else {
calculation = $crow.find('.num-tickets').val(0);
}
}
if (single.optional_tickets === 'optional') {
//Code start for optional tickets feature 2019-07-19
if ($(this).closest('.eventer-q-field').find('input').val() > 0) {
$crow.addClass('eventer-optional-set');
$crow.closest('.eventer-ticket-step2').find('.eventer-ticket-type-row').each(function () {
if ($(this).hasClass('eventer-optional-set')) {
} else {
$(this).addClass('eventer-ticket-type-restriction');
$(this).find('.eventer-q-field').hide();
}
});
} else {
$crow.closest('.eventer-ticket-step2').find('.eventer-ticket-type-row').removeClass('eventer-optional-set');
$crow.closest('.eventer-ticket-step2').find('.eventer-ticket-type-row').removeClass('eventer-ticket-type-restriction');
$crow.closest('.eventer-ticket-step2').find('.eventer-ticket-type-row .eventer-q-field').show();
}
//Code of optional tickets ending here
}
var total_tickets = $crow.find(".num-tickets").val();
if (parseInt(total_tickets) > parseInt(set_remaining)) {
$crow.find(".num-tickets").val(set_remaining);
}
var new_total_tickets = $crow.find(".num-tickets").val();
var registrants_fields_set = '';
var registrants_boxes = $crow.find('.eventer-registrants-row').length;
var registrants_boxes_ind = $crow.find('.eventer-registrants-row').find('.eventer-registrants-list').length;
var registrant1_name = $(closest_booking).find('#reg_name').val();
var registrant1_email = $(closest_booking).find('#reg_email').val();
var checked_row_permission_field = 1;
var eventer_allowed_registrants_details = 1;
for (var i = registrants_boxes_ind; i < new_total_tickets; i++) {
var registrant_fields = '';
if ($crow.find('.default-registrant').length <= 0 && $(closest_booking).find('.default-registrant').length > 0) {
checked_row_permission_field = 0;
}
var permission_switch_added = $crow.find('.eventer-registrants-field-permission').length;
var first_switch = 0;
if (i === checked_row_permission_field && single.mandatory_registrants !== 'on') {
first_switch = 1;
registrant_fields += '<div class="eventer-col10 eventer-registrants-field-permission"><label class="eventer-checkbox"><input class="eventer-permission-add-registrants" checked type="checkbox"> ' + single.individual_label + '</label></div>';
}
var name_Series = (i + 1);
var registrants_field_class = (permission_switch_added > 0 || first_switch !== 0) ? 'eventer-removable-field-bypermission' : '';
registrant_fields += '<div class="eventer-registrants-list ' + registrants_field_class + '"><div class="eventer-col5 eventer-col10-xs"><label>' + single.registrant_label + ' ' + name_Series + '</label><input data-required="1" class="registrant-fields eventer_registrant_name" placeholder="' + single.registrant_name + '" name="' + single.registrant_name_label + i + '" type="text"></div><div class="eventer-col5 eventer-col10-xs"><label> </label><input data-required="1" class="registrant-fields eventer_registrant_email" placeholder="' + single.registrant_email + '" name="' + single.registrant_email_label + i + '" type="email"></div><div class="eventer-col10">';
if (single.user_fields) {
registrant_fields += update_all_fields_class(single.user_fields);
}
registrants_fields_set += registrant_fields;
registrants_fields_set += '</div>';
}
var has_checkbox = $crow.find('.eventer-permission-add-registrants').length;
eventer_allowed_registrants_details = (has_checkbox > 0) ? $crow.find('.eventer-permission-add-registrants:checked').length : eventer_allowed_registrants_details;
if (single.individual_reg === '1') {
if (registrants_boxes > 0 && new_total_tickets >= registrants_boxes_ind) {
$crow.find('.eventer-registrants-row').append(registrants_fields_set);
} else if (registrants_boxes > 0 && new_total_tickets <= registrants_boxes_ind && new_total_tickets !== '0') {
var less_fields = (registrants_boxes_ind - new_total_tickets);
$crow.find('.eventer-registrants-row > .eventer-registrants-list').slice(-less_fields).remove();
} else {
$crow.find('.eventer-registrants-row').remove();
$crow.append('<div class="eventer-row eventer-registrants-row" data-ticket="' + $crow.find('.name-ticket').text() + '">' + registrants_fields_set + '</div>');
}
/*Starting Code to show hide registrant name & email field*/
if (eventer_allowed_registrants_details !== 1) {
$crow.find('.eventer-registrants-row').find('.eventer-removable-field-bypermission').hide();
} else {
$crow.find('.eventer-registrants-row').find('.eventer-removable-field-bypermission').show();
}
/*Ending Code to show hide registrant name & email field*/
var removable_rows = $crow.find('.eventer-removable-field-bypermission').length;
if (removable_rows <= 0) {
$crow.find('.eventer-registrants-field-permission').remove();
}
if ($(closest_booking).find('.default-registrant').length === 0) {
$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_name').addClass('default-registrant');
$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_name').val(registrant1_name);
$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_email').val(registrant1_email);
}
}
number = parseInt($crow.find(".num-tickets").val());
if (($.isNumeric(number) && $.isNumeric(price)) || number === '') {
if (number === '') {
number = 0;
}
var $ticket_counted_price = price * number;
$ticket_counted_price = $ticket_counted_price.toFixed(2);
var set_price_individual = (single.curr_position === "postfix") ? $ticket_counted_price + single.curr : single.curr + $ticket_counted_price;
$crow.find(".total-price").text(set_price_individual);
$crow.find(".total-price").attr('data-mprice', $ticket_counted_price);
}
var total_price_ticket = 0;
$(closest_booking).find(".total-price").each(function () {
var $one_price = ($(this).attr("data-mprice") !== '') ? $(this).attr("data-mprice") : 0;
total_price_ticket = total_price_ticket + parseFloat($one_price);
});
total_price_ticket = total_price_ticket.toFixed(2);
var set_price = (single.curr_position === "postfix") ? total_price_ticket + single.curr : single.curr + total_price_ticket;
$(closest_booking).find(".eventer-ticket-price-total").text(set_price);
$(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice', total_price_ticket);
$(closest_booking).find(".eventer-ticket-price-total").attr('data-aprice', total_price_ticket);
$(closest_booking).find(".num-tickets").each(function () {
if ($(this).val() !== '0') {
have_ticket = 1;
}
});
if (total_price_ticket > 0) {
$(closest_booking).find(".payment-options-area").show();
var payment_options = $('.chosen-payment-option').length;
if (payment_options === 1) {
$('.chosen-payment-option').attr('checked', true);
}
var checked_payment = $('.chosen-payment-option:checked').val();
$(closest_booking).find('.save-registrant').prop('disabled', false);
$(closest_booking).find('.add_services_btn').removeClass('disableClick');
if (checked_payment === '1') {
$(closest_booking).find("form#ticket-reg").attr('action', single.paypal_site);
$(closest_booking).find(".save-registrant").val(single.paypal_proceed);
} else if (checked_payment === '2') {
$(closest_booking).find("form#ticket-reg").attr('action', $("#paypal_return").text());
$(closest_booking).find(".save-registrant").val(single.stripe_proceed);
}
$(closest_booking).find(".save-registrant").attr("data-payment", "1");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
if (single.offline_switch !== "1" && single.woo_payment_switch !== 'on') {
//alert(single.offline_switch);
//$(closest_booking).find(".chosen-payment-option").prop("checked", true);
} else {
//$(closest_booking).find("input[name=chosen-payment-option][value='0']").prop("checked", true);
//$(closest_booking).find(".offline_message").show();
/*$(closest_booking).find(".save-registrant").val(single.proceed_register);
$(closest_booking).find(".save-registrant").attr("data-payment", "");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());*/
}
} else if (have_ticket === 1 && total_price_ticket <= 0) {
$(closest_booking).find('.save-registrant').prop('disabled', false);
$(closest_booking).find('.save-registrant').removeClass('eventer-stripe-trigger');
$(closest_booking).find('.add_services_btn').removeClass('disableClick');
$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
$(closest_booking).find(".payment-options-area").hide();
//$(closest_booking).find(".offline_message").hide();
$(closest_booking).find(".save-registrant").val(single.proceed_register);
$(closest_booking).find(".save-registrant").attr("data-payment", "");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
} else if (have_ticket === 1) {
$(closest_booking).find('.save-registrant').prop('disabled', false);
$(closest_booking).find('.add_services_btn').removeClass('disableClick');
$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
$(closest_booking).find(".payment-options-area").hide();
//$(closest_booking).find(".offline_message").hide();
$(closest_booking).find(".save-registrant").val(single.proceed_register);
$(closest_booking).find(".save-registrant").attr("data-payment", "");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
} else {
$(closest_booking).find('.save-registrant').prop('disabled', true);
$(closest_booking).find('.add_services_btn').addClass('disableClick');
$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
$(closest_booking).find(".payment-options-area").hide();
//$(closest_booking).find(".offline_message").show();
$(closest_booking).find(".save-registrant").val(single.proceed_register);
$(closest_booking).find(".save-registrant").attr("data-payment", "");
$(closest_booking).find('form.ticket-reg').find(".message").empty();
}
});
$(document).on('click', '.remove_from_cart_button', function () {
var product = $(this).attr('data-product_id');
$("input:checkbox[name='" + product + "']:checked").each(function () {
$(this).trigger('change');
});
$("input:radio[name='" + product + "']:checked").each(function () {
$(this).prop('checked', false);
$(this).trigger('change');
});
setTimeout(function () {
jQuery(document.body).trigger("update_checkout");
$(".showcoupon").click(function () {
$(".checkout_coupon").slideToggle();
return false;
});
}, 500);
});
$(document).on('change', '.eventer-permission-add-registrants', function () {
if ($(this).is(':checked')) {
$(this).closest('.eventer-registrants-row').find('.eventer-removable-field-bypermission').show();
} else {
$(this).closest('.eventer-registrants-row').find('.eventer-removable-field-bypermission').hide();
}
});
$(document).on("change", 'input:radio[name="chosen-payment-option"]',
function () {
if (this.checked && this.value === '0') {
$("form#ticket-reg").attr('action', $("#paypal_return").text());
$('.save-registrant').removeClass('eventer-stripe-trigger');
$(".offline_message").show();
$(".eventer_stripe_field").hide();
$(".save-registrant").val(single.proceed_register);
$(".save-registrant").attr("data-payment", "");
$('form.ticket-reg').find(".message").empty();
} else if (this.checked && this.value === '1') {
$("form#ticket-reg").attr('action', single.paypal_site);
$('.save-registrant').removeClass('eventer-stripe-trigger');
$(".offline_message").hide();
$(".eventer_stripe_field").hide();
$(".save-registrant").val(single.paypal_proceed);
$(".save-registrant").attr("data-payment", "1");
$('form.ticket-reg').find(".message").empty();
} else if (this.checked && this.value === '3') {
$("form#ticket-reg").attr('action', single.dotpay_site);
$('.save-registrant').removeClass('eventer-stripe-trigger');
$(".offline_message").hide();
$(".eventer_stripe_field").hide();
$(".save-registrant").val(single.dotpay_proceed);
$(".save-registrant").attr("data-payment", "1");
$('form.ticket-reg').find(".message").empty();
} else if (this.checked && this.value === '2') {
$("form#ticket-reg").attr('action', $("#paypal_return").text());
$('.save-registrant').addClass('eventer-stripe-trigger');
$(".offline_message").hide();
$(".eventer_stripe_field").show();
$(".save-registrant").val(single.stripe_proceed);
$(".save-registrant").attr("data-payment", "1");
$('form.ticket-reg').find(".message").empty();
}
}
);
$(document).on('click', '.eventer-coupon-validate', function () {
var coupon_code = $(this).closest('.eventer-row').find('input.eventer-apply-coupon').val();
var couponField = $(this).closest('.eventer-row').find('input.eventer-apply-coupon');
$(couponField).on('keydown', function () {
$(this).parents('.eventer-coupon-module').find('.eventer-coupon-validate').removeClass('eventer-coupon-invalid eventer-coupon-validated');
$('.eventer-coupon-validate').removeAttr('disabled');
});
$.ajax({
url: single.ajax_url,
type: 'post',
dataType: 'json',
data: {
action: 'eventer_validate_coupon',
coupon: coupon_code,
amount: $('.eventer-ticket-price-total').attr('data-aprice'),
},
success: function (response) {
if (response.validate === '1') {
$('.eventer-ticket-price-total').attr('data-fprice', response.amount);
var set_price = (single.curr_position === "postfix") ? response.amount + single.curr : single.curr + response.amount;
$(".eventer-ticket-price-total").text(set_price);
$('.eventer-coupon-validate').removeClass('eventer-coupon-invalid');
$('.eventer-coupon-validate').addClass('eventer-coupon-validated');
$('.eventer-coupon-validate').attr('disabled', 'disabled');
if (response.amount <= 0) {
$('.eventer-payment-options').hide();
$('.offline_message').hide();
$("form#ticket-reg").attr('action', $("#paypal_return").text());
$('.save-registrant').removeClass('eventer-stripe-trigger');
$(".offline_message").show();
$(".eventer_stripe_field").hide();
$(".save-registrant").val(single.proceed_register);
$(".save-registrant").attr("data-payment", "");
$('form.ticket-reg').find(".message").empty();
}
} else {
$('.eventer-coupon-validate').removeClass('eventer-coupon-validated');
$('.eventer-coupon-validate').addClass('eventer-coupon-invalid');
$('.eventer-coupon-validate').attr('disabled', 'disabled');
}
},
});
return false;
});
});
});