#wordpress #woocommerce #hook-woocommerce
Вопрос:
Мне нужно позволить менеджерам магазинов моей электронной коммерции создавать пользователей с пользовательской ролью, созданной мной.
С помощью этого кода я могу добавить возможность для shop_manager добавлять пользователей, но проблема в том, что менеджер магазина может создать только пользователя с «клиентом», вместо этого я хотел бы позволить менеджеру магазина добавить пользовательскую роль, которую я ранее создал.
function shop_manager_add_users() {
$role = get_role( 'shop_manager' );
$role->add_cap('create_users' );
}
add_action( 'admin_init', 'shop_manager_add_users');
Как я могу это решить?
Комментарии:
1. Просто обратите внимание, что Пользователю назначена Роль в Настройках > Общие >> Новая роль пользователя по умолчанию. Если это включает вашу роль по умолчанию, то ваш код работает для этого (но не для пользовательской роли и клиента). Очевидно, что будут некоторые соображения безопасности, иначе менеджер магазина мог бы создать администратора
2. Похоже, что вам нужна такая возможность
promote_users
, но, опять же, у вас будут соображения безопасности. Этот ответ может помочь; wordpress.stackexchange.com/questions/4479/…
Ответ №1:
register_activation_hook( __FILE__, 'wpse42003_activation' );
function wpse42003_activation()
{
foreach( array( 'editor', 'shop_manager' ) as $r )
{
$role = get_role( $r );
if( $role )
$role->add_cap( 'create_users' );
}
}
Вы можете попробовать этот, который хорошо работал на моем сайте, но несколько лет назад
Комментарии:
1. спасибо, но этот код делает то же самое, что и я. Добавьте возможность создавать пользователей, но у меня возникает та же проблема, что и у меня: я могу создавать только клиентов
2. Прочтите вопрос!