• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Роль клиента от способа оплаты

Здравствуйте! Ищу платное / бесплатное решение для автоматического создания ролей исходя из способа оплаты. Например: покупатель выбирает безналичный расчет, после этого ему присваивается определенная роль. Выбирает наличные/ карта/ другие способы оплаты, присваивается другая роль.

P.S. жду советов для решений оплаты через Woocommerce, но также интересно кто сталкивался с подобным при работе с Юкасса. На сайтах оплата через нее, поэтому, как я понимаю, нужно будет плагин ролей или код еще как-то соединить с плагином Юкасса.
 

marr

Специалист
Местный
автоматического создания ролей исходя из способа оплаты
Назначение роли возможно при регистрации пользователя (например, после после подтверждения заказа).
Что вы будете делать, если ранее зарегистрированный с одной ролью захочет потом оплатить другим способом?
 
Последнее редактирование:

joy66

Опытный
Здравствуйте! Ищу платное / бесплатное решение для автоматического создания ролей исходя из способа оплаты. Например: покупатель выбирает безналичный расчет, после этого ему присваивается определенная роль. Выбирает наличные/ карта/ другие способы оплаты, присваивается другая роль.

P.S. жду советов для решений оплаты через Woocommerce, но также интересно кто сталкивался с подобным при работе с Юкасса. На сайтах оплата через нее, поэтому, как я понимаю, нужно будет плагин ролей или код еще как-то соединить с плагином Юкасса.
Ежели не секрет, для чего все это нужно? Просто буквально сделать то, что вы хотите, большого труда не составит. Но все зависит от контекста и что дальше с эти делать.
Роль в WP это набор "возможностей". При этом юзеру можно добавить/заблокировать возможность, не меняя роли.
 
Здравствуйте! Извините, что сразу не ответил.
Не все клиенты регистрируются, не всем секретарям охота вводить ИНН, но хотя бы способ оплаты им не составляет труда выбрать. У нас разные скидки для частных лиц и для юр лиц. У юриков с первого заказа уже идет скидка. У физиков накопительная. Поэтому в зависимости от ого кто покупает хочу, чтобы применялась скидка, но для этого нужна роль. Выбор метода оплаты через Юкасса. При большом потоке заказов каждому ручками добавлять роль - не вариант. Это отвлекает от других дел.
 

MacKor

Форумчанин
Может быть проще на странице оформления заказа сделать опцию физик / юрик - и уже в зависимости от этого применять те или иные скидки.
 

joy66

Опытный
Здравствуйте! Извините, что сразу не ответил.
Не все клиенты регистрируются, не всем секретарям охота вводить ИНН, но хотя бы способ оплаты им не составляет труда выбрать. У нас разные скидки для частных лиц и для юр лиц. У юриков с первого заказа уже идет скидка. У физиков накопительная. Поэтому в зависимости от ого кто покупает хочу, чтобы применялась скидка, но для этого нужна роль. Выбор метода оплаты через Юкасса. При большом потоке заказов каждому ручками добавлять роль - не вариант. Это отвлекает от других дел.
Тут надо понимать, что понятия Роль/права/возможности применимы только к зарегистрированному пользователю. И если "клиент не регистрируется", роли никакой вы ему не назначите. И если секретарю лень вводить, значит он тоже еще не зарегистрированный. Очевидно у вас сейчас происходит регистрация пользователя при оформлении заказа так? И ему присваивается по умолчанию роль 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. Если на стороне сайта, то там варианты
 
Последнее редактирование:
Сверху Снизу