Я использую пару плагинов для интеграции с нашим сервером LDAP/AD - этот плагин добавляет немного метафайлов пользователя, когда он успешно выполняет авторизацию/создание пользователя wp. Я также использую плагин Ultimate Members для управления ролями и т. Д.Wordpress get user meta function
Что мне нужно сделать, так это обеспечить, чтобы каждому, кто подписывает свои ldap-Creds, назначается роль ldap UM. Итак, вот PHP, который я получил до сих пор.
global $ultimatemember;
global $user_ID;
$key = 'ad_integration_account_suffix';
$single = true;
$ldap_user=get_user_meta($user_ID, $key, $single); // core WP coe to get a users meta info - we are assigning it a variable
echo '<p>The '. $key . ' value for user id ' . $user_ID . ' is: ' . $ldap_user . '</p>'; // some debug stuff - take this out
um_fetch_user($user_ID); // set UM user id to retrieve
if($ldap_user !== '') { // if the ldap user key is not null then its populated and thus this user is a member of AD
$ultimatemember->user->set_role('ldap_user'); // so set the UM user to be a member of the ldap_user role/group.
}
Теперь, я думаю, что есть некоторые проблемы с выше, т.е. я предполагаю, что он также должен быть обернут в функции? Где я прикрепляю этот фрагмент php, чтобы он вызывал вход? Я также, вероятно, должен сначала проверить, находится ли пользователь уже в группе ldap_user, и если это нам не нужно продолжать с остальными чеками/установками и т. Д.
Спасибо - с этим нужно будет возиться! - похоже, wp_login устарел? и вместо этого использовать wp_signon? https://developer.wordpress.org/reference/functions/wp_signon/ – Tony
NVM «Крючок действия wp_login запускается, когда пользователь входит в систему функцией wp_signon(). Это последнее действие, предпринятое в функции, сразу после вызов wp_set_auth_cookie(). – Tony
Да, это функция, которая устарела - крюк по-прежнему действителен. – vard