/** * 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( '

' + response.message + '

' ); 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( '' ); } 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(); } );