2026-02-05 17:08:59 +03:00

210 lines
6.7 KiB
JavaScript

(function ($) {
$(document).ready(function () {
$('#oc-restart-tour').click(function () {
console.info('Restart tour')
})
$('.gv-notice-close.restart-tour').click(function () {
const el = $(this);
$.post(oc_home_ajax_obj.ajax_url, {
_ajax_nonce: oc_home_ajax_obj.nonce,
action: "oc_home_silence_tour",
title: this.value
}, function (data) {
if (data.status === 'success') {
el.parents('.gv-notice').fadeOut()
}
}
);
})
$("#oc-start-tour, #oc_login_masking_overlay_wrap .oc_welcome_modal_close").on('click', function (e) {
e.preventDefault();
$("#oc_login_masking_overlay").hide();
$(".loading-overlay.fullscreen-loader").removeClass('show');
let redirect = true;
console.log($(this));
if($(this).hasClass('oc_welcome_modal_close')){
redirect = false;
}
const nonce = 'asdsadsad';
$.post(oc_home_ajax_obj.ajax_url, {
'action': 'oc_close_welcome_modal',
'nonce': nonce
})
.done(function (response) {
if (response && redirect) {
window.location.href = oc_home_ajax_obj.home_url;
}else{
console.log('modal closed');
}
})
.fail(function () {
console.error("Failed to close the welcome modal.");
});
});
// Show data consent modal
$(".oc_consent_modal_show").on('click', function (e) {
e.preventDefault();
$("#oc_data_consent_overlay").show();
});
// Hide data consent modal
$("#oc-consent-modal-close, #oc_data_consent_overlay .oc_welcome_modal_close").on('click', function (e) {
e.preventDefault();
$("#oc_data_consent_overlay").hide();
$(".loading-overlay.fullscreen-loader").removeClass('show');
});
// Update data consent status based on actions
function ocUpdateConsentStatus(status) {
const data = {
action: 'oc_update_consent_status',
consent_status: status
};
fetch(oc_home_ajax_obj.ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams(data),
})
.then(response => response.json())
.then(result => {
if (result.success) {
$(".oc-consent-toast-container").show();
$('#oc-consent-toast-success .gv-toast').addClass('gv-visible');
setTimeout(function() {
$('#oc-consent-toast-success .gv-toast').removeClass('gv-visible');
}, 5000);
$("#oc-data-consent-banner").hide();
if (status === 1) {
$('#oc-data-consent-toggle').prop('checked', true);
}
// Store consent status in localStorage for cross-page communication
localStorage.setItem('onecom_data_consent_status', result.data.consent_status ? '1' : '0');
//Dispatch custom event for other scripts to listen to (same page)
//Dispatching to marketplace service to track consent status change
const event = new CustomEvent('onConsentStatusChanged', { detail: { data_consent_status: result.data.consent_status } });
window.dispatchEvent(event);
} else {
$(".oc-consent-toast-container").show();
$('#oc-consent-toast-failure .gv-toast').addClass('gv-visible');
setTimeout(function() {
$('#oc-consent-toast-failure .gv-toast').removeClass('gv-visible');
}, 5000);
}
})
.catch(error => {
$(".oc-consent-toast-container").show();
$('#oc-consent-toast-failure .gv-toast').addClass('gv-visible');
setTimeout(function() {
$('#oc-consent-toast-failure .gv-toast').removeClass('gv-visible');
}, 5000);
});
}
$("#oc-consent-settings input[type='checkbox']").on('click', function () {
const status = $(this).is(':checked') ? 1 : 0;
ocUpdateConsentStatus(status);
});
$('.oc-data-consent-decline').on('click', function () {
ocUpdateConsentStatus(0);
});
$('.oc-data-consent-accept').on('click', function () {
ocUpdateConsentStatus(1);
});
$('.oc-consent-toast-container .gv-toast-close').on('click', function () {
$('.oc-consent-toast-container .gv-toast').removeClass('gv-visible');
});
// Show premium WP care form
$(".oc_premium_care_modal_show").on('click', function (e) {
e.preventDefault();
$("#oc_premium_care_overlay").show();
});
// Open premium WP care modal with direct URL, and remove hash to load modal once
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('page') === "onecom-home" && urlParams.get('request-premium-wp-care') === "1") {
$("#oc_premium_care_overlay").show();
history.replaceState(null, null, window.location.pathname + "?page=onecom-home");
}
// Hide premium WP care modal
$("#oc-premium-care-modal-close, #oc_premium_care_overlay .oc_welcome_modal_close").on('click', function (e) {
e.preventDefault();
$("#oc_premium_care_overlay").hide();
$(".loading-overlay.fullscreen-loader").removeClass('show');
$("#premium-care-request-error").hide();
});
$(".oc-premium-care-box .gv-notice-close").on('click', function (e) {
$.post(oc_home_ajax_obj.ajax_url, {
_ajax_nonce: oc_home_ajax_obj.nonce,
action: "oc_home_premium_care_dismiss"
}, function (data) {
if (data.status === 'success') {
$(".oc-premium-care-box").hide();
} else {
console.error( 'Error: Failed to dismiss premium wp care tile.' );
}
}
);
});
$("#oc-premium-care-request-notice .gv-notice-close").on('click', function (e) {
$("#oc-premium-care-request-notice").hide();
});
$('#oc-premium-care-request-action').on('click', function () {
ocRequestPremiumCareRequest();
});
// Request premium wp care
function ocRequestPremiumCareRequest() {
let text = $("#oc-premium-care-description").val();
const data = {
action: 'oc_request_premium_care',
premium_wp_request: 1,
text: text
};
$('#modal-loader-overlay').css('display', 'flex');
fetch(oc_home_ajax_obj.ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams(data),
})
.then(response => response.json())
.then(result => {
$('#modal-loader-overlay').hide();
if (result.success) {
$(".gv-notice-premium-care").hide();
$(".gv-notice-premium-care-requested").removeClass('gv-hidden');
$("#oc-premium-care-request-notice").removeClass('gv-hidden');
$("#oc_premium_care_overlay").hide();
$(".loading-overlay.fullscreen-loader").removeClass('show');
$('html, body').animate({
scrollTop: $('.inner-wrapper').offset().top
}, 500);
} else {
$('#modal-loader-overlay').hide();
$("#premium-care-request-error").css('display', 'flex');
}
})
.catch(error => {
$('#modal-loader-overlay').hide();
$("#premium-care-request-error").css('display', 'flex');
});
}
});
})(jQuery)