Здравствуйте! Извините, что сразу не ответил.
Не все клиенты регистрируются, не всем секретарям охота вводить ИНН, но хотя бы способ оплаты им не составляет труда выбрать. У нас разные скидки для частных лиц и для юр лиц. У юриков с первого заказа уже идет скидка. У физиков накопительная. Поэтому в зависимости от ого кто покупает хочу, чтобы применялась скидка, но для этого нужна роль. Выбор метода оплаты через Юкасса. При большом потоке заказов каждому ручками добавлять роль - не вариант. Это отвлекает от других дел.
Тут надо понимать, что понятия Роль/права/возможности применимы только к зарегистрированному пользователю. И если "клиент не регистрируется", роли никакой вы ему не назначите. И если секретарю лень вводить, значит он тоже еще не зарегистрированный. Очевидно у вас сейчас происходит регистрация пользователя при оформлении заказа так? И ему присваивается по умолчанию роль customer (клиент). А вы хотите по каким-то признакам разделить этих новых пользователей и присваивать (не создавать) им разные роли для применения в дальнейшем разных правил скидок. Так?
Общий подход по назначению роли примерно такой
Код:
function my_customer_change_role( $order_id ) {
// Получае объект заказ
$order = new WC_Order($order_id);
//Поучаем пользователя из заказа
$user = $order->get_user();
// Если это клиент и не админ
if( false != $user && !user_can($user, 'administrator') ){
/// Тут должны быть всякие условия по которым надо выбрать новую роль для покупателя
// То есть можно из заказа получить всю инфу, в том числе и метод оплаты и на ее основании выбрать роль, которую надо присвоить
$role = 'other_role_customer';
//Присваиваем роль пользователю
$user->set_role($role);
}
}
//Хук на который вешаем нашу функцию в данном случае woocommerce_thankyou при выводе страницы Спасибо за заказ .
//Хуков много, надо подобрать подходящий, например woocommerce_order_status_changed срабатывает всегда при смене статуса заказа и тд
add_action( 'woocommerce_thankyou', 'my_customer_change_role', 100, 1 );
Роли можно создавать/настраивать плагином User Role Editor
Поля заказа (в том числе и скидки) в зависимости от роли можно настраивать плагином Checkout Field Editor for WooCommerce
Ценообразование по разным условиям плагины WooCommerce Dynamic Pricing & Discounts , WooCommerce Prices By User Role
PS В работу плагина Юкассы вмешиваться нет необходимости. Достаточно просто анализировать метод оплаты. Если выбор способов оплаты в настройках Юкассы выбран на стороне сервиса, то метод , если не ошибаюсь будет всегда один yookassa_epl. Если на стороне сайта, то там варианты