Я создал шорткод для отображения контента на основе роли текущего пользователя, используя в качестве параметра значение role = 'administrator'. Однако сейчас она принимает только значение роли, но не принимает имя. Например:
[mcat_hide_content role = "administrator"] работает, но [mcat_hide_content role = "Administrator"] - нет.
Не имеет большого значения для ролей по умолчанию, состоящих из одного слова, но для ролей, созданных другими плагинами, значение отличается от имени роли. Например, роль SEO-менеджера использует role = "wpseo_manager", и обычный пользователь не знает, что его можно использовать в шорткоде, поэтому было бы предпочтительно, если бы role = "SEO Manager" прошел.
Мой код:
function check_user_role( $atts, $content = null ) {
extract( shortcode_atts( array(
'role' => 'role' ), $atts ) );
$user = wp_get_current_user();
$allowed_roles = explode(',', $role);
if( array_intersect($allowed_roles, $user->roles ) ) {
return $content;
}
}
add_shortcode( 'mcat_hide_content', 'check_user_role' );
Есть ли способ изменить это, чтобы я мог использовать фактическое имя роли пользователя, а не только его значение?