141 lines
4.4 KiB
JavaScript
141 lines
4.4 KiB
JavaScript
|
/**
|
||
|
* Customer management screen JS
|
||
|
*/
|
||
|
var EDD_Customer = {
|
||
|
|
||
|
vars: {
|
||
|
customer_card_wrap_editable: $( '#edit-customer-info .editable' ),
|
||
|
customer_card_wrap_edit_item: $( '#edit-customer-info .edit-item' ),
|
||
|
user_id: $( 'input[name="customerinfo[user_id]"]' ),
|
||
|
},
|
||
|
init: function() {
|
||
|
this.edit_customer();
|
||
|
this.add_email();
|
||
|
this.user_search();
|
||
|
this.remove_user();
|
||
|
this.cancel_edit();
|
||
|
this.change_country();
|
||
|
this.delete_checked();
|
||
|
},
|
||
|
edit_customer: function() {
|
||
|
$( document.body ).on( 'click', '#edit-customer', function( e ) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
EDD_Customer.vars.customer_card_wrap_editable.hide();
|
||
|
EDD_Customer.vars.customer_card_wrap_edit_item.show().css( 'display', 'block' );
|
||
|
} );
|
||
|
},
|
||
|
add_email: function() {
|
||
|
$( document.body ).on( 'click', '#add-customer-email', function( e ) {
|
||
|
e.preventDefault();
|
||
|
const button = $( this ),
|
||
|
wrapper = button.parent().parent().parent().parent(),
|
||
|
customer_id = wrapper.find( 'input[name="customer-id"]' ).val(),
|
||
|
email = wrapper.find( 'input[name="additional-email"]' ).val(),
|
||
|
primary = wrapper.find( 'input[name="make-additional-primary"]' ).is( ':checked' ),
|
||
|
nonce = wrapper.find( 'input[name="add_email_nonce"]' ).val(),
|
||
|
postData = {
|
||
|
edd_action: 'customer-add-email',
|
||
|
customer_id: customer_id,
|
||
|
email: email,
|
||
|
primary: primary,
|
||
|
_wpnonce: nonce,
|
||
|
};
|
||
|
|
||
|
wrapper.parent().find( '.notice-container' ).remove();
|
||
|
wrapper.find( '.spinner' ).css( 'visibility', 'visible' );
|
||
|
button.attr( 'disabled', true );
|
||
|
|
||
|
$.post( ajaxurl, postData, function( response ) {
|
||
|
setTimeout( function() {
|
||
|
if ( true === response.success ) {
|
||
|
window.location.href = response.redirect;
|
||
|
} else {
|
||
|
button.attr( 'disabled', false );
|
||
|
wrapper.before( '<div class="notice-container"><div class="notice notice-error inline"><p>' + response.message + '</p></div></div>' );
|
||
|
wrapper.find( '.spinner' ).css( 'visibility', 'hidden' );
|
||
|
}
|
||
|
}, 342 );
|
||
|
}, 'json' );
|
||
|
} );
|
||
|
},
|
||
|
user_search: function() {
|
||
|
// Upon selecting a user from the dropdown, we need to update the User ID
|
||
|
$( document.body ).on( 'click.eddSelectUser', '.edd_user_search_results a', function( e ) {
|
||
|
e.preventDefault();
|
||
|
const user_id = $( this ).data( 'userid' );
|
||
|
EDD_Customer.vars.user_id.val( user_id );
|
||
|
} );
|
||
|
},
|
||
|
remove_user: function() {
|
||
|
$( document.body ).on( 'click', '#disconnect-customer', function( e ) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
if ( confirm( edd_vars.disconnect_customer ) ) {
|
||
|
const customer_id = $( 'input[name="customerinfo[id]"]' ).val(),
|
||
|
postData = {
|
||
|
edd_action: 'disconnect-userid',
|
||
|
customer_id: customer_id,
|
||
|
_wpnonce: $( '#edit-customer-info #_wpnonce' ).val(),
|
||
|
};
|
||
|
|
||
|
$.post( ajaxurl, postData, function( response ) {
|
||
|
// Weird
|
||
|
window.location.href = window.location.href;
|
||
|
}, 'json' );
|
||
|
}
|
||
|
} );
|
||
|
},
|
||
|
cancel_edit: function() {
|
||
|
$( document.body ).on( 'click', '#edd-edit-customer-cancel', function( e ) {
|
||
|
e.preventDefault();
|
||
|
EDD_Customer.vars.customer_card_wrap_edit_item.hide();
|
||
|
EDD_Customer.vars.customer_card_wrap_editable.show();
|
||
|
|
||
|
$( '.edd_user_search_results' ).html( '' );
|
||
|
} );
|
||
|
},
|
||
|
change_country: function() {
|
||
|
$( 'select[name="customerinfo[country]"]' ).change( function() {
|
||
|
const select = $( this ),
|
||
|
state_input = $( ':input[name="customerinfo[region]"]' ),
|
||
|
data = {
|
||
|
action: 'edd_get_shop_states',
|
||
|
country: select.val(),
|
||
|
nonce: select.data( 'nonce' ),
|
||
|
field_name: 'customerinfo[region]',
|
||
|
};
|
||
|
|
||
|
$.post( ajaxurl, data, function( response ) {
|
||
|
console.log( response );
|
||
|
if ( 'nostates' === response ) {
|
||
|
state_input.replaceWith( '<input type="text" name="' + data.field_name + '" value="" class="edd-edit-toggles medium-text"/>' );
|
||
|
} else {
|
||
|
state_input.replaceWith( response );
|
||
|
}
|
||
|
} );
|
||
|
|
||
|
return false;
|
||
|
} );
|
||
|
},
|
||
|
delete_checked: function() {
|
||
|
$( '#edd-customer-delete-confirm' ).change( function() {
|
||
|
const records_input = $( '#edd-customer-delete-records' );
|
||
|
const submit_button = $( '#edd-delete-customer' );
|
||
|
|
||
|
if ( $( this ).prop( 'checked' ) ) {
|
||
|
records_input.attr( 'disabled', false );
|
||
|
submit_button.attr( 'disabled', false );
|
||
|
} else {
|
||
|
records_input.attr( 'disabled', true );
|
||
|
records_input.prop( 'checked', false );
|
||
|
submit_button.attr( 'disabled', true );
|
||
|
}
|
||
|
} );
|
||
|
},
|
||
|
};
|
||
|
|
||
|
jQuery( document ).ready( function( $ ) {
|
||
|
EDD_Customer.init();
|
||
|
} );
|