function ktc_sync_ldap_display_name($user_id, $username, $password) { $ldap_server = "ldap://your.ad.server"; // Or IP $ldap_dn = "CN=ServiceAccount,OU=Users,DC=krista,DC=local"; $ldap_pass = "YourPassword"; $base_dn = "OU=Users,DC=krista,DC=local"; $ds = ldap_connect($ldap_server); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); if (ldap_bind($ds, $ldap_dn, $ldap_pass)) { // Search by email (which is the WP username) $filter = "(mail=$username)"; $sr = ldap_search($ds, $base_dn, $filter, array("displayname", "mail")); $info = ldap_get_entries($ds, $sr); if ($info["count"] > 0) { $friendly_name = $info[0]["displayname"][0]; // Update WordPress User wp_update_user(array( 'ID' => $user_id, 'display_name' => $friendly_name, 'nickname' => $friendly_name )); // Force WP to use Display Name publicly update_user_meta($user_id, 'display_name', $friendly_name); } } ldap_unbind($ds); }