Я работаю с WordPress и плагином под названием WPL. По сути, система настроена так, что мои пользователи WP, при регистрации, автоматически активируются как пользователи WPL. Тем не менее, мне нужно дифференцировать это на основе ролей пользователей. Итак, у меня есть четыре разные роли WP и четыре соответствующие роли WPL. Я думаю, что я нашел код, где WPL извлекает информацию о коде.
public static function get_wpl_roles()
{
$roles = array();
$roles['superadmin'] = 'superadmin';
$roles['admin'] = 'administrator';
$roles['editor'] = 'editor';
$roles['agent'] = 'author';
$roles['Contributor'] = 'Contributor';
$roles['subscriber'] = 'subscriber';
$roles['guest'] = 'guest';
$roles['ten'] = 'ten';
$roles['trio'] = 'trio';
$roles['single'] = 'single';
$roles['unlimited'] = 'unlimited';
return $roles;
}
/**
@input {role}
@return role point
@author Howard
**/
public static function get_role_point($role)
{
/** get all roles **/
$roles = self::get_wpl_roles();
/** role validation **/
if(!in_array($role, $roles)) $role = 'guest';
$roles_point = array();
$roles_point['superadmin'] = 6;
$roles_point['administrator'] = 5;
$roles_point['editor'] = 4;
$roles_point['author'] = 3;
$roles_point['Contributor'] = 2;
$roles_point['subscriber'] = 1;
$roles_point['guest'] = 0;
return $roles_point[$role];
}
Последние четыре роли в верхнем разделе (десять, трио, одиночная и неограниченная) — мои роли в WP. Когда кто-то подписывается под одной из этих ролей, я хочу, чтобы он автоматически устанавливался под теми же заголовками ролей (которые уже были созданы) в WPL.
Сейчас все пользователи WP автоматически устанавливаются как пользователи WPL под ролью по умолчанию. Я предполагаю, что из-за этой строки:
if(!in_array($role, $roles)) $role = 'guest';
Но я не могу найти, где определяется «гость». Роль WPL по умолчанию называется просто «По умолчанию», а не «Гость». Итак, я запутался там.
Вторая часть кода включает в себя числа — так что я не уверен, как добавить мои остальные четыре роли. И я предполагаю, что мне нужно четыре новых раздела под другим оператором if.
Задача ещё не решена.
Других решений пока нет …