jQuery( function( $ ) { 'use strict'; /** * Object to handle Paystack admin functions. */ var wc_paystack_admin = { /** * Initialize. */ init: function() { // Toggle api key settings. $( document.body ).on( 'change', '#woocommerce_paystack_testmode', function() { var test_secret_key = $( '#woocommerce_paystack_test_secret_key' ).parents( 'tr' ).eq( 0 ), test_public_key = $( '#woocommerce_paystack_test_public_key' ).parents( 'tr' ).eq( 0 ), live_secret_key = $( '#woocommerce_paystack_live_secret_key' ).parents( 'tr' ).eq( 0 ), live_public_key = $( '#woocommerce_paystack_live_public_key' ).parents( 'tr' ).eq( 0 ); if ( $( this ).is( ':checked' ) ) { test_secret_key.show(); test_public_key.show(); live_secret_key.hide(); live_public_key.hide(); } else { test_secret_key.hide(); test_public_key.hide(); live_secret_key.show(); live_public_key.show(); } } ); $( '#woocommerce_paystack_testmode' ).change(); $( document.body ).on( 'change', '.woocommerce_paystack_split_payment', function() { var subaccount_code = $( '.woocommerce_paystack_subaccount_code' ).parents( 'tr' ).eq( 0 ), subaccount_charge = $( '.woocommerce_paystack_split_payment_charge_account' ).parents( 'tr' ).eq( 0 ), transaction_charge = $( '.woocommerce_paystack_split_payment_transaction_charge' ).parents( 'tr' ).eq( 0 ); if ( $( this ).is( ':checked' ) ) { subaccount_code.show(); subaccount_charge.show(); transaction_charge.show(); } else { subaccount_code.hide(); subaccount_charge.hide(); transaction_charge.hide(); } } ); $( '#woocommerce_paystack_split_payment' ).change(); // Toggle Custom Metadata settings. $( '.wc-paystack-metadata' ).change( function() { if ( $( this ).is( ':checked' ) ) { $( '.wc-paystack-meta-order-id, .wc-paystack-meta-name, .wc-paystack-meta-email, .wc-paystack-meta-phone, .wc-paystack-meta-billing-address, .wc-paystack-meta-shipping-address, .wc-paystack-meta-products' ).closest( 'tr' ).show(); } else { $( '.wc-paystack-meta-order-id, .wc-paystack-meta-name, .wc-paystack-meta-email, .wc-paystack-meta-phone, .wc-paystack-meta-billing-address, .wc-paystack-meta-shipping-address, .wc-paystack-meta-products' ).closest( 'tr' ).hide(); } } ).change(); // Toggle Bank filters settings. $( '.wc-paystack-payment-channels' ).on( 'change', function() { var channels = $( ".wc-paystack-payment-channels" ).val(); if ( $.inArray( 'card', channels ) != '-1' ) { $( '.wc-paystack-cards-allowed' ).closest( 'tr' ).show(); $( '.wc-paystack-banks-allowed' ).closest( 'tr' ).show(); } else { $( '.wc-paystack-cards-allowed' ).closest( 'tr' ).hide(); $( '.wc-paystack-banks-allowed' ).closest( 'tr' ).hide(); } } ).change(); $( ".wc-paystack-payment-icons" ).select2( { templateResult: formatPaystackPaymentIcons, templateSelection: formatPaystackPaymentIconDisplay } ); $( '#woocommerce_paystack_test_secret_key, #woocommerce_paystack_live_secret_key' ).after( '<button class="wc-paystack-toggle-secret" style="height: 30px; margin-left: 2px; cursor: pointer"><span class="dashicons dashicons-visibility"></span></button>' ); $( '.wc-paystack-toggle-secret' ).on( 'click', function( event ) { event.preventDefault(); let $dashicon = $( this ).closest( 'button' ).find( '.dashicons' ); let $input = $( this ).closest( 'tr' ).find( '.input-text' ); let inputType = $input.attr( 'type' ); if ( 'text' == inputType ) { $input.attr( 'type', 'password' ); $dashicon.removeClass( 'dashicons-hidden' ); $dashicon.addClass( 'dashicons-visibility' ); } else { $input.attr( 'type', 'text' ); $dashicon.removeClass( 'dashicons-visibility' ); $dashicon.addClass( 'dashicons-hidden' ); } } ); } }; function formatPaystackPaymentIcons( payment_method ) { if ( !payment_method.id ) { return payment_method.text; } var $payment_method = $( '<span><img src=" ' + wc_paystack_admin_params.plugin_url + '/assets/images/' + payment_method.element.value.toLowerCase() + '.png" class="img-flag" style="height: 15px; weight:18px;" /> ' + payment_method.text + '</span>' ); return $payment_method; }; function formatPaystackPaymentIconDisplay( payment_method ) { return payment_method.text; }; wc_paystack_admin.init(); } );