WooCommerce: добавление пользователей в группы на основе одноразового купона - PullRequest
0 голосов
/ 19 марта 2020

У меня есть сайт WooCommerce, который продает товары народного потребления. У нас есть реферальная программа, в которой врачи в США получают компенсационную прибыль, полученную теми, кто использует код реферала / скидку для врачей.

Все в порядке, однако код равен 1 для каждого клиента, так как мы хотим, чтобы клиенты сначала заказывали скидку.

Вот в чем проблема: врачам по-прежнему необходимо компенсировать всю прибыль, полученную от людей, которые использовали их код при первой покупке.

Моя идея - использовать Группы ( DOCS ). Затем ежемесячно используйте групповой фильтр в заказах для вывода заказов на каждого врача.

Итак, я пытаюсь создать небольшой скрипт, который добавляет клиента в группу на основе код купона, который они используют. Я вручную создаю код группы и купона одновременно (они всегда будут одинаковыми). Я также только что взял group_id из раздела плагинов groups. интересно, можем ли мы также извлечь идентификатор группы из имени.

Вот то, что у меня сейчас есть, это не работает. Любая помощь приветствуется.

add_action('woocommerce_thankyou', 'coupon_group', 10, 1);
function coupon_group( $order_id ){
    $order = wc_get_order( $order_id );
    $coupon_codes = $order->get_coupon_codes();
    $coupon_name = 'dr_x';
    $group_id = 2;

    foreach($coupon_codes as $coupon_code ){
        if ($coupon_code->get_name() == $coupon_name) {
            $user_id = $order->get_user_id(); 

            if ($user_id) { 
                $group = Groups_Group::read_by_name($coupon_name);
                $is_a_member = Groups_User_Group::read( $user_id , $group_id ->group_id );

                if (!$is_a_member) {
                   Groups_User_Group::create( array( 'user_id' => $user_id, 'group_id' => $group ) );
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 20 марта 2020

Что ж, в итоге я пошел по пути ролей по группам, так как не смог правильно его обновить.

Я использовал User Role Editor для создания новых ролей.

add_action('woocommerce_thankyou', 'coupon_group', 10, 1);

function coupon_group( $order_id ){
    $order = wc_get_order( $order_id );
    $coupon_codes = $order->get_coupon_codes();
    $coupon_name = 'CouponCode'; //manually created coupon code

    foreach($coupon_codes as $coupon_code ){
        $user_id = $order->get_user_id(); 

        if ($coupon_code == $coupon_name) {
            if ($user_id) {
                $user = new WP_User( $user_id );
                $user->remove_role('customer'); 
                $user->add_role($coupon_name);
            }
        } 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...