File "mailchimp-woocommerce-admin.js"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/.wp-cli/wp-content/plugins/mailchimp-for-woocommerce_bk/admin/js/mailchimp-woocommerce-admin.js
File size: 21.61 KB
MIME-type: text/plain
Charset: utf-8
(function( $ ) {
'use strict';
$(window).on('load', function() {
// show/hide optional settings
var optionalSettings = false;
$('.optional-settings-button').click(function () {
if (optionalSettings) {
$('.optional-settings-content').slideUp();
$(this).find('span').removeClass('active');
optionalSettings = false;
} else {
$('.optional-settings-content').slideDown();
$(this).find('span').addClass('active');
optionalSettings = true;
}
});
// re-enable disable select input on audience settings submit
$('#mailchimp_woocommerce_options').on('submit', function() {
$('select[name="mailchimp-woocommerce[mailchimp_list]"]').prop('disabled', false);
});
// load new log file on log select change
$('#log_file').change(function (e) {
e.preventDefault();
// prevents Log Deleted notification to show up
removeLogDeletedParamFromFormHttpRef();
var data = {
action:'mailchimp_woocommerce_load_log_file',
log_file: $('#log_file').val()
};
$('#log-viewer #log-content').css("visibility", "hidden");
$('#log-viewer .spinner').show().css("visibility", "visible");
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#log-content').html(response.data)
}
else {
$('#log-content').html('Error: ' + response.data)
}
$('#log-viewer .spinner').hide().css("visibility", "hidden");
$('#log-viewer #log-content').css("visibility", "visible");
});
});
$('#mailchimp-log-pref').change(function (e) {
e.preventDefault();
// prevents Log Deleted notification to show up
removeLogDeletedParamFromFormHttpRef();
$('#mailchimp_woocommerce_options').submit();
});
// Remove log_deleted param from _wp_http_referer hidden input
function removeLogDeletedParamFromFormHttpRef() {
var currentFormRefererUrl = $('input[name="_wp_http_referer"]').val();
$('input[name="_wp_http_referer"]').val(currentFormRefererUrl.replace('&log_removed=1', ''))
}
// copy log button
$('.mc-woocommerce-copy-log-button').click(function (e) {
e.preventDefault();
var copyText = $('#log-content');
var $temp = $("<textarea>");
$("body").append($temp);
$temp.val($(copyText).text()).select();
/* Copy the text inside the text field */
document.execCommand("copy");
$temp.remove();
$('.mc-woocommerce-copy-log-button span.clipboard').hide();
$('.mc-woocommerce-copy-log-button span.yes').show();
});
$('.mc-woocommerce-copy-log-button').mouseleave(function (e) {
$('.mc-woocommerce-copy-log-button span.clipboard').show();
$('.mc-woocommerce-copy-log-button span.yes').hide();
});
// delete log button
$('.delete-log-button').click(function (e) {
e.preventDefault();
Swal.fire({
title: phpVars.l10n.are_you_sure,
text: phpVars.l10n.log_delete_subtitle,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: phpVars.l10n.log_delete_confirm,
cancelButtonText: phpVars.l10n.no_cancel,
customClass: {
confirmButton: 'button button-primary tab-content-submit disconnect-button',
cancelButton: 'button button-default mc-woocommerce-resync-button disconnect-button'
},
buttonsStyling: false,
reverseButtons: true,
}).then((result) => {
if (result.value) {
var data = {
action:'mailchimp_woocommerce_delete_log_file',
log_file: $('#log_file').val()
};
$('#log-viewer #log-content').css("visibility", "hidden");
$('#log-viewer .spinner').show().css("visibility", "visible");
$.post(ajaxurl, data, function(response) {
console.log('deleted log file', data.log_file);
if (response.success) {
window.location.reload();
}
$('#log-viewer .spinner').hide().css("visibility", "hidden");
$('#log-viewer #log-content').css("visibility", "visible");
});
}
})
});
$('.mc-woocommerce-resync-button').click(function(e) {
e.preventDefault();
Swal.fire({
title: phpVars.l10n.resync_in_progress,
onBeforeOpen: () => {
Swal.showLoading()
}
});
var form = $('#mailchimp_woocommerce_options');
var data = form.serialize();
data+="&mailchimp_woocommerce_resync=1"
return $.ajax({type: "POST", url: form.attr('action'), data: data}).done(function(data) {
window.location.reload();
}).fail(function(xhr) {
Swal.hideLoading();
Swal.showValidationMessage(phpVars.l10n.resync_failed);
});
});
/*
* Shows dialog on store disconnect
* Change wp_http_referer URL in case of store disconnect
*/
var mailchimp_woocommerce_disconnect_done = false;
$('#mailchimp_woocommerce_disconnect').click(function (e){
var me = $(this);
// this is to trigger the event even after preventDefault() is issued.
if (mailchimp_woocommerce_disconnect_done) {
mailchimp_woocommerce_disconnect_done = false; // reset flag
return; // let the event bubble away
}
e.preventDefault();
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'button button-primary tab-content-submit disconnect-confirm',
cancelButton: 'button button-default mc-woocommerce-resync-button disconnect-button'
},
buttonsStyling: false,
})
swalWithBootstrapButtons.fire({
title: phpVars.l10n.are_you_sure,
text: phpVars.l10n.store_disconnect_subtitle,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: phpVars.l10n.store_disconnect_confirm,
cancelButtonText: phpVars.l10n.no_cancel,
reverseButtons: true,
}).then((result) => {
if (result.value) {
var query = window.location.href.match(/^(.*)\&/);
if (query){
history.replaceState({}, "", query[1]);
$('input[name=_wp_http_referer]').val(query[1]);
}
try {
mailchimp_woocommerce_disconnect_done = true;
var form = $('#mailchimp_woocommerce_options');
var data = form.serialize();
data+="&mailchimp_woocommerce_disconnect_store=1"
Swal.fire({
title: phpVars.l10n.store_disconnect_in_progress,
onBeforeOpen: () => {
Swal.showLoading()
}
});
return $.ajax({type: "POST", url: form.attr('action'), data: data }).done(function(data) {
window.location.reload();
}).fail(function(xhr) {
Swal.hideLoading();
Swal.showValidationMessage("Could not delete store.");
});
} catch (e) {
console.error('clicking event for disconnect failed', e);
}
}
})
});
/*
* Change wp_http_referer URL in case of in-wizard tab change
*/
var mailchimp_woocommerce_submit_done = false;
$('#mailchimp_woocommerce_options .tab-content-submit:not(.oauth-connect):not(#mc-woocommerce-support-form-submit)').click(function(e){
// this is to trigger the event even after preventDefault() is issued.
if (mailchimp_woocommerce_submit_done) {
mailchimp_woocommerce_submit_done = false; // reset flag
return; // let the event bubble away
}
e.preventDefault();
if ($('input[name=mailchimp_woocommerce_wizard_on]').val() == 1) {
var query = window.location.href.match(/^(.*)\&/);
if (query){
history.replaceState({}, "", query[1]);
$('input[name=_wp_http_referer]').val(query[1]);
}
}
mailchimp_woocommerce_submit_done = true;
e.target.click();
});
// Mailchimp OAuth connection (tab "connect")
$('#mailchimp_woocommerce_options #mailchimp-oauth-connect').click(function(e){
var token = '';
var startData = {action:'mailchimp_woocommerce_oauth_start'};
$('#mailchimp-oauth-api-key-valid').hide();
$('#mailchimp-oauth-error').hide();
$('#mailchimp-oauth-waiting').show();
$.post(ajaxurl, startData, function(startResponse) {
if (startResponse.success) {
token = JSON.parse(startResponse.data.body).token;
openOAuthPopup(token);
}
else {
console.log("Error: start response:",startResponse);
}
});
});
function openOAuthPopup(token) {
var domain = 'https://woocommerce.mailchimpapp.com';
var options = {
path: domain+'/auth/start/'+token,
windowName: 'Mailchimp For WooCommerce OAuth',
height: 800,
width: 1035,
};
var left = (screen.width - options.width) / 2;
var top = (screen.height - options.height) / 4;
var window_options = 'toolbar=no, location=no, directories=no, ' +
'status=no, menubar=no, scrollbars=no, resizable=no, ' +
'copyhistory=no, width=' + options.width +
', height=' + options.height + ', top=' + top + ', left=' + left +
', domain='+domain.replace('https://', '');
// open Mailchimp OAuth popup
var popup = window.open(options.path, options.windowName, window_options);
if (popup == null) {
window.clearInterval(oauthInterval);
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'button button-primary tab-content-submit disconnect-button',
cancelButton: 'button button-default mc-woocommerce-resync-button disconnect-button'
},
buttonsStyling: false,
})
swalWithBootstrapButtons.fire({
type : 'error',
title: phpVars.l10n.login_popup_blocked,
text: phpVars.l10n.login_popup_blocked_desc,
footer: '<a href="https://mailchimp.com/help/enable-pop-ups-in-your-browser/">How to Enable Pop-ups in Your Browser</a>',
showCancelButton: true,
cancelButtonColor: '#d33',
confirmButtonColor: '#7fad45',
cancelButtonText: phpVars.l10n.no_cancel,
confirmButtonText: phpVars.l10n.try_again,
reverseButtons: true
}).then((result) => {
if (result.value) {
openOAuthPopup(token);
}
});
}
else {
var oauthInterval = window.setInterval(function(){
if (popup.closed) {
// clear interval
window.clearInterval(oauthInterval);
// hide/show messages
$('#mailchimp-oauth-error').hide();
$('#mailchimp-oauth-waiting').hide();
$('#mailchimp-oauth-connecting').show();
var checkData = {
action:'mailchimp_woocommerce_oauth_status',
url: domain + '/api/status/' + token,
};
// ping status to check if auth was accepted
$.post(ajaxurl, checkData).done(function(statusData) {
if (statusData.data.status == "accepted") {
// call for finish endpoint to retrieve access_token
var finishData = {
action: 'mailchimp_woocommerce_oauth_finish',
token: token
}
$.post(ajaxurl, finishData, function(finishResponse) {
if (finishResponse.success) {
// hide/show messages
$('#mailchimp-oauth-error').hide();
$('#mailchimp-oauth-connecting').hide();
$('#mailchimp-oauth-connected').show();
// get access_token from finishResponse and fill api-key field value including data_center
var accessToken = JSON.parse(finishResponse.data.body).access_token + '-' + JSON.parse(finishResponse.data.body).data_center
$('#mailchimp-woocommerce-mailchimp-api-key').val(accessToken);
// always go to next step on success, so change url of wp_http_referer
if ($('input[name=mailchimp_woocommerce_wizard_on]').val() == 1) {
var query = window.location.href.match(/^(.*)\&/);
if (query){
history.replaceState({}, "", query[1]);
$('input[name=_wp_http_referer]').val(query[1]);
}
}
// submit api_key/access_token form
$('#mailchimp_woocommerce_options').submit();
}
else {
console.log('Error calling OAuth finish endpoint. Data:', finishResponse);
}
});
}
else {
$('#mailchimp-oauth-connecting').hide();
$('#mailchimp-oauth-error').show();
console.log('Error calling OAuth status endpoint. No credentials provided at login popup? Data:', statusData);
}
});
}
}, 250);
}
// While the popup is open, wait. when closed, try to get status=accepted
}
// Remove Initial Sync Banner oon dismiss
$('#setting-error-mailchimp-woocommerce-initial-sync-end .notice-dismiss').click(function(e){
$.get(phpVars.removeReviewBannerRestUrl, [], function(response){
console.log(response);
});
});
$('#tower_box_switch').change(function (e){
var switch_button = this;
var opt = this.checked ? 1 : 0;
var data = {
action: 'mailchimp_woocommerce_tower_status',
opt: opt
}
$('.tower_box_status').hide();
$('#tower_box_status_' + opt).show();
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#mc-tower-save').html(response.data);
$('#mc-tower-save').css('color', '#628735').show().fadeOut(3000);
switch_button.checked = opt;
}
else {
$('#mc-tower-save').html(response.data.error);
$('#mc-tower-save').css('color', 'red').show().fadeOut(3000);
switch_button.checked = 1 - opt;
$('.tower_box_status').hide();
$('#tower_box_status_' + (1 - opt)).show();
}
});
});
$('#comm_box_switch').change(function (e){
var switch_button = this;
var opt = this.checked ? 1 : 0;
var data = {
action: 'mailchimp_woocommerce_communication_status',
opt: opt
}
$('.comm_box_status').hide();
$('#comm_box_status_' + opt).show();
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#mc-comm-save').html(response.data);
$('#mc-comm-save').css('color', '#628735').show().fadeOut(3000);
switch_button.checked = opt;
}
else {
$('#mc-comm-save').html(response.data.error);
$('#mc-comm-save').css('color', 'red').show().fadeOut(3000);
switch_button.checked = 1 - opt;
$('.comm_box_status').hide();
$('#comm_box_status_' + (1 - opt)).show();
}
});
});
// communications box radio ajax call
$('input.comm-box-input').change(function(e){
var data = {
action: 'mailchimp_woocommerce_communication_status',
opt: this.value
}
var opt = this.value;
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#mc-comm-save-'+opt).html(response.data);
$('#mc-comm-save-'+opt).css('color', '#628735').show().fadeOut(5000);
$('#swi').checked = true;
}
else {
$('#mc-comm-save-'+opt).html(response.data.error);
$('#mc-comm-save-'+opt).css('color', 'red').show().fadeOut(5000);
$('#mc-comm-input-'+response.data.opt).prop('checked', true);
$('#swi').checked = false;
}
});
});
// Account create functionality
$('#mc-woocommerce-create-account-next').unbind().click(function (e) {
var next_button = $(this);
var spinner = $(this).next('.spinner');
spinner.css('visibility', 'visible')
$('.mc-woocommerce-create-account-step-error > p').hide();
$('#username_suggestion').css('visibility', 'hidden');
var email = $('input#email');
var username = $('input#username');
var isValid= true;
if (! email[0].checkValidity()) {
$('#email_error').show();
isValid= false;
}
else {
$('#email_error').hide();
}
if (! username[0].checkValidity()) {
$('#username_invalid_error').show();
spinner.css('visibility', 'hidden');
}
else {
$('#username_invalid_error').hide();
var data = {
action:'mailchimp_woocommerce_create_account_check_username',
username: username.val(),
};
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#username_exists_error').hide();
if ( isValid == true) {
spinner.css('visibility', 'hidden');
$('.mc-woocommerce-settings').css('height', '900px');
$('#mc-woocommerce-create-account-step-1').hide();
$('#mc-woocommerce-create-account-step-2').show();
$('#step_count').html('2');
}
}
else {
$('#username_exists_error').show();
$('#username_suggestion').css('visibility', 'visible');
$('#username_suggestion span').html(response.data.suggestion);
spinner.css('visibility', 'hidden');
}
});
}
});
$('#mc-woocommerce-create-account-prev').click(function () {
$('#mc-woocommerce-create-account-step-1').show();
$('#mc-woocommerce-create-account-step-2').hide();
$('#step_count').html('1');
});
$('#mc-woocommerce-create-account-go').unbind().click(function () {
var email = $('input#email');
var firstName = $('input#first_name');
var lastName = $('input#last_name');
var org = $('input#org');
var timezone = $('select#timezone');
var username = $('input#username');
var address = $('input#address');
var address2 = $('input#address2');
var city = $('input#city');
var state = $('input#state');
var zip = $('input#zip');
var country = $('select#country');
var phone = $('input#phone');
var isValid = true;
var spinner = $(this).next('.spinner');
spinner.css('visibility', 'visible');
if (! address[0].checkValidity() || ! address2[0].checkValidity()) {
$('#address_error').show();
isValid= false;
}
else {
$('#address_error').hide();
}
if (! city[0].checkValidity()) {
$('#city_error').show();
isValid= false;
}
else {
$('#city_error').hide();
}
if (! state[0].checkValidity()) {
$('#state_error').show();
isValid= false;
}
else {
$('#state_error').hide();
}
if (! zip[0].checkValidity()) {
$('#zip_error').show();
isValid= false;
}
else {
$('#zip_error').hide();
}
if (! country[0].checkValidity()) {
$('#country_error').show();
isValid= false;
}
else {
$('#country_error').hide();
}
if (! phone[0].checkValidity()) {
$('#phone_error').show();
isValid= false;
}
else {
$('#phone_error').hide();
}
if (! timezone[0].checkValidity()) {
$('#timezone_error').show();
isValid= false;
}
else {
$('#timezone_error').hide();
}
if (isValid) {
var data = {
action:'mailchimp_woocommerce_create_account_signup',
data: {
email: email.val(),
first_name: firstName.val(),
last_name: lastName.val(),
org: org.val(),
timezone: timezone.val(),
username: username.val(),
address: {
address1: address.val(),
city: city.val(),
state: state.val(),
zip: zip.val(),
country: country.val()
}
},
};
// add optional address 2 only if it's filled out
if (address2.val() != '') {
data.data.address.address2 = address2.val();
}
$.post(ajaxurl, data, function(response) {
if (response.success) {
$('#connecting').show();
spinner.css('visibility', 'hidden');
// get access_token and fill api-key field value including data_center
var accessToken = response.data.data.oauth_token + '-' + response.data.data.dc
$('#mailchimp-woocommerce-mailchimp-api-key').val(accessToken);
// always go to next step on success, so change url of wp_http_referer
if ($('input[name=mailchimp_woocommerce_wizard_on]').val() == 1) {
var query = window.location.href.match(/^(.*)\&/);
if (query){
history.replaceState({}, "", query[1]);
$('input[name=_wp_http_referer]').val(query[1]);
}
}
// submit api_key/access_token form
$('#mailchimp_woocommerce_options').submit();
}
}).fail(function (err) {
console.log('FAIL:' , err);
});
}
else {
spinner.css('visibility', 'hidden')
}
});
$('#username_suggestion span').click(function (){
$('input#username').val($(this).html());
});
$('#mc-woocommerce-create-account-step-1').keypress(function(event){
event.stopPropagation();
var keycode = (event.keyCode ? event.keyCode : event.which);
if ( keycode == '13' ){
$("#mc-woocommerce-create-account-next").click();
}
});
$('#mc-woocommerce-create-account-step-2').keypress(function(event){
event.stopPropagation();
var keycode = (event.keyCode ? event.keyCode : event.which);
if ( keycode == '13' ){
$("#mc-woocommerce-create-account-go").click();
}
});
var checkbox_label = phpVars.l10n.subscribe_newsletter;
var label = checkbox_label;
$('#mailchimp-woocommerce-newsletter-checkbox-label').keyup(function(event){
event.stopPropagation();
if ($('#mailchimp-woocommerce-newsletter-checkbox-label').val() == "") {
label = checkbox_label;
}
else label = $('#mailchimp-woocommerce-newsletter-checkbox-label').val();
$('#preview-label').html(label);
});
switchPreviewCheckbox(phpVars.current_optin_state)
$('input[type="radio"]').change(function(event){
event.stopPropagation();
switchPreviewCheckbox(event.currentTarget.value);
});
function switchPreviewCheckbox(currentState) {
switch (currentState) {
case 'check':
$('.mailchimp-newsletter').show();
$('.mailchimp-newsletter input').prop( "checked", true );
break;
case 'uncheck':
$('.mailchimp-newsletter').show();
$('.mailchimp-newsletter input').prop( "checked", false );
break;
case 'hide':
$('.mailchimp-newsletter').hide();
break;
default:
break;
}
}
var ongoing_subscribed = $('#ongoing_sync_subscribed');
var ongoing_all = $('#ongoing_sync_all');
var cart_track_all = $('#cart_track_all');
if (ongoing_subscribed.prop('checked')) {
cart_track_all.attr('disabled', true);
cart_track_all.parent().css({opacity: '.5'});
}
ongoing_subscribed.click(function() {
$('#cart_track_subscribed').prop('checked', true).trigger('click');
cart_track_all.attr('disabled', true);
cart_track_all.parent().css({opacity: '.5'});
});
ongoing_all.click(function() {
cart_track_all.attr('disabled', false);
cart_track_all.parent().css({opacity: '1'});
});
});
})( jQuery );