'Unauthorized' ] ); } $uid = get_current_user_id(); $map = [ 'name' => 'admin_hero_info_name', 'company_url' => 'admin_hero_info_company_url', 'email' => 'admin_hero_info_email', 'phone' => 'admin_hero_info_phone', 'address' => 'admin_hero_info_address', 'preferred_contact' => 'admin_hero_info_preferred_contact', ]; foreach ( $map as $field => $meta_key ) { if ( isset( $_POST[ $field ] ) ) { update_user_meta( $uid, $meta_key, sanitize_text_field( wp_unslash( $_POST[ $field ] ) ) ); } } wp_send_json_success( [ 'message' => 'Info updated' ] ); } ); /** * 2) Enqueue Info panel JS + CSS (on all admin pages so panel assets always load). */ add_action( 'admin_enqueue_scripts', function() { $assets_dir = ADMIN_HERO_DIR . 'panels/info/assets/'; $assets_url = ADMIN_HERO_URL . 'panels/info/assets/'; // ——— JS + localized data ——— $js_files = glob( $assets_dir . 'info*.js' ); $js_file = ! empty( $js_files ) ? basename( $js_files[0] ) : 'info.js'; wp_enqueue_script( 'admin-hero-info-js', $assets_url . $js_file, [ 'admin-hero-js' ], ADMIN_HERO_VERSION, true ); wp_localize_script( 'admin-hero-info-js', 'AH_INFO', [ 'ajax_url' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'admin_hero_info_action' ), ] ); // ——— CSS ——— $css_files = glob( $assets_dir . 'info*.css' ); $css_file = ! empty( $css_files ) ? basename( $css_files[0] ) : 'info.css'; wp_enqueue_style( 'admin-hero-info-css', $assets_url . $css_file, [ 'admin-hero-css' ], ADMIN_HERO_VERSION ); } );