get_option( 'jn_admin_tailor_login_logo_id' ), 'jn_admin_tailor_login_color' => get_option( 'jn_admin_tailor_login_color' ), 'jn_admin_tailor_login_footer_color' => get_option( 'jn_admin_tailor_login_footer_color' ), 'jn_admin_tailor_login_pattern_url' => get_option( 'jn_admin_tailor_login_pattern_url' ), 'jn_admin_tailor_bg_image_id' => get_option( 'jn_admin_tailor_bg_image_id' ), 'jn_admin_tailor_custom_css' => get_option( 'jn_admin_tailor_custom_css' ), 'jn_admin_tailor_form_border_radius' => get_option( 'jn_admin_tailor_form_border_radius' ), 'jn_admin_tailor_form_box_shadow' => get_option( 'jn_admin_tailor_form_box_shadow' ), 'jn_admin_tailor_form_transparency' => get_option( 'jn_admin_tailor_form_transparency' ), 'jn_admin_tailor_logo_border_radius' => get_option( 'jn_admin_tailor_logo_border_radius' ), 'jn_admin_tailor_admin_bar_color' => get_option( 'jn_admin_tailor_admin_bar_color' ), 'jn_admin_tailor_menu_highlight_color' => get_option( 'jn_admin_tailor_menu_highlight_color' ), 'jn_admin_tailor_hide_wp_logo' => get_option( 'jn_admin_tailor_hide_wp_logo' ), 'jn_admin_tailor_hide_welcome_panel' => get_option( 'jn_admin_tailor_hide_welcome_panel' ), 'jn_admin_tailor_admin_footer_text' => get_option( 'jn_admin_tailor_admin_footer_text' ), 'jn_admin_tailor_custom_login_error' => get_option( 'jn_admin_tailor_custom_login_error' ) ); $filename = 'admin-tailor-settings-' . date( 'Y-m-d-H-i-s' ) . '.json'; header( 'Content-Type: application/json' ); header( 'Content-Disposition: attachment; filename="' . $filename . '"' ); echo json_encode( $settings, JSON_PRETTY_PRINT ); exit; } // Handle import functionality if ( isset( $_POST['import_settings'] ) ) { // Check if file was uploaded if ( ! isset( $_FILES['import_file'] ) || empty( $_FILES['import_file']['name'] ) ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=no_file' ); wp_redirect( $redirect_url ); exit; } $file = $_FILES['import_file']; // Check for upload errors if ( $file['error'] !== UPLOAD_ERR_OK ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=upload_error' ); wp_redirect( $redirect_url ); exit; } // Check file size (max 1MB) if ( $file['size'] > 1024 * 1024 ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=file_too_large' ); wp_redirect( $redirect_url ); exit; } // Check file extension $file_extension = strtolower( pathinfo( $file['name'], PATHINFO_EXTENSION ) ); if ( $file_extension !== 'json' ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=invalid_file_type' ); wp_redirect( $redirect_url ); exit; } // Read and validate file content $import_data = file_get_contents( $file['tmp_name'] ); if ( empty( $import_data ) ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=empty_file' ); wp_redirect( $redirect_url ); exit; } // Parse JSON $settings = json_decode( $import_data, true ); if ( json_last_error() !== JSON_ERROR_NONE || ! is_array( $settings ) ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=invalid_json' ); wp_redirect( $redirect_url ); exit; } // Validate that it contains Admin Tailor settings $valid_settings = false; foreach ( $settings as $key => $value ) { if ( strpos( $key, 'jn_admin_tailor_' ) === 0 ) { $valid_settings = true; break; } } if ( ! $valid_settings ) { $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=error&reason=no_valid_settings' ); wp_redirect( $redirect_url ); exit; } // Import the settings foreach ( $settings as $key => $value ) { if ( strpos( $key, 'jn_admin_tailor_' ) === 0 ) { update_option( $key, $value ); } } $redirect_url = admin_url( 'options-general.php?page=admin-tailor&import=success' ); wp_redirect( $redirect_url ); exit; } // Save the options. update_option( 'jn_admin_tailor_login_logo_id', $logo_id ); update_option( 'jn_admin_tailor_login_color', $login_color_palette ); update_option( 'jn_admin_tailor_login_footer_color', $login_footer_color ); update_option( 'jn_admin_tailor_login_pattern_url', $login_pattern_url ); update_option( 'jn_admin_tailor_bg_image_id', $bg_image_id ); update_option( 'jn_admin_tailor_custom_css', $custom_css ); update_option( 'jn_admin_tailor_form_border_radius', $form_border_radius ); update_option( 'jn_admin_tailor_form_box_shadow', $form_box_shadow ); update_option( 'jn_admin_tailor_form_transparency', $form_transparency ); update_option( 'jn_admin_tailor_logo_border_radius', $logo_border_radius ); update_option( 'jn_admin_tailor_admin_bar_color', $admin_bar_color ); update_option( 'jn_admin_tailor_menu_highlight_color', $menu_highlight_color ); update_option( 'jn_admin_tailor_hide_wp_logo', $hide_wp_logo ); update_option( 'jn_admin_tailor_hide_welcome_panel', $hide_welcome_panel ); update_option( 'jn_admin_tailor_admin_footer_text', $admin_footer_text ); update_option( 'jn_admin_tailor_custom_login_error', $custom_login_error ); // Show success notice. add_action( 'admin_notices', function() { echo '
Settings saved successfully.
All settings have been reset to defaults.
Settings imported successfully!
Import Error: ' . esc_html( $error_message ) . '