Я работаю над сайтом для школьной программы. Во время регистрации студентов попросят выбрать год выпуска из выпадающего списка. Я хочу, чтобы система проверяла это значение по отношению к текущему времени при каждом входе в систему и меняла свои роли, если дата выпуска превышает текущее время. Код, который я написал ниже, однако я не получаю ошибок ни в журналах, ни в WP_DEBUG
/* Check if Student Has Graduated and Change Role */
add_action('wp_login', 'check_graduated', 10, 2);
function check_graduated($user_login, $user) {
/* Ger User Id */
$user_id = $user -> $id;
/* Check if Graduation Date exists in DB */
if($grad_year = get_user_meta($user_id, 'user_registration_user_graduation_date', true)) {
$current_date = time();
/* Convert Grad Year to Time */
$grad_date_str = "07/01/" . $grad_year;
$grad_date = stringtotime($grad_date_str);
/* Change User Role if Today is Past The Graduation Date */
if($current_date > $grad_date) {
change_user_role($user_id, 'former_student', 'student');
}
}
}
function change_user_role($id, $new_role, $old_role) {
$user = new WP_User( $id );
$user -> remove_role( $old_role );
$user -> add_role ( $new_role );
}
В таблице Usermeta базы данных существует следующее:
|----------------------------------------------------------------------------------|
| UMETA_ID | USER_ID | META_KEY | META_VALUE |
|----------------------------------------------------------------------------------|
| 36 | 2 | user_registration_user_graduation_date | 2016 |
|----------------------------------------------------------------------------------|
Like I сказал, что при входе в систему с идентификатором пользователя не отображаются ошибки. Я что-то упустил или просто тупой?