33 lines
1.2 KiB
PHP
Executable File
33 lines
1.2 KiB
PHP
Executable File
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);
|
|
}
|