Задать вопрос

Автоматическая смена ролей пользователя в Wordpress после оплаты в Woocommerce?

Всем привет, задача такова:
Необходимо, чтобы после оплаты через шлюз Яндекс Денег, роль пользователя предположим с подписчика менялась на роль заданную мной. Среди плагинов я бесплатных не нашел, а вот то что в коде это можно сделать прочитал на этом же сайте. Не могли бы вы подробнее обьяснить, как через консоль и в каких документах ( я так понял они еще называются хэши) можно ввести такие функции.
Интересует именно оплата с яндекса и перевод клиента со старой на новую роль.
( Перевод необходим для получения пользователем информации со страниц с ограниченным доступом).
Если где то был не точен прошу простить, так как по образованию инженер а не программист.
  • Вопрос задан
  • 1220 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
@petrmish
add_action('woocommerce_thankyou', 'change_user_role_on_order_success');
function change_user_role_on_order_success($order_id ) {
$order = new WC_Order( $order_id );
$user_id = $order->user_id;
$wp_user_object = new WP_User($user_id);
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}
if ( $product_id == '999' && $wp_user_object->roles[0] != "administrator"){ // Не исправлять админа!
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "my-role" ) );
} else
if ( $product_id == '777' && $wp_user_object->roles[0] != "administrator"){ // Не исправлять админа!
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "my-role2" ) );
}
}


Как вы можете видеть в коде, пользователи получат роль my-role, если они покупают продукт id 999, и они получают роль пользователя my-role2, когда они покупают продукт id 777. Заменяйте на нужный. У меня данный код функционирует. Разместить в function.php вашей темы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте, я бы рекомедовал вам обратиться во фриланс биржу и поставить задачу на реализацию подобного функционала.
А так быстрый поиск в гугл дал следующие результаты (без владения рнр, кодекса ВП и API Woocommerce, вы вряд ли сможете реализовать это):
- https://nicola.blog/2016/03/07/changing-user-role-... (нужно вставить в functions.php)
- https://gist.github.com/troydean/9322593
- https://wordpress.stackexchange.com/questions/1206...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы