Как изменить роль пользователя в Woocommerce после покупки определенного товара?

Конечно, я могу помочь вам улучшить код для осуществления смены роли после покупки определённого товара.
  • 30 декабря 2023 г. 9:07
Ответы на вопрос 1
Для изменения роли пользователя в Woocommerce после покупки определенного товара, вам понадобится добавить следующий код в файл functions.php вашей активной темы:

```php
// Устанавливаем новую роль пользователя после покупки определенного товара
function change_user_role_after_purchase( $order_id ) {
    // Получаем объект заказа
    $order = wc_get_order( $order_id );
    
    // Проверяем, содержит ли заказ определенный товар
    if ( $order->is_paid() ) {
        // Массив ID товаров, для которых должна измениться роль пользователя
        $target_product_ids = array( 123, 456, 789 ); // Замените на ID ваших товаров
        
        // Получаем все предметы заказа
        $items = $order->get_items();
        
        // Перебираем все предметы заказа
        foreach ( $items as $item ) {
            // Получаем ID товара
            $product_id = $item->get_product_id();
            
            // Проверяем, есть ли ID товара в списке целевых товаров
            if ( in_array( $product_id, $target_product_ids ) ) {
                // Получаем пользователя заказа
                $user = $order->get_user();
                
                // Проверяем, существует ли пользователь
                if ( $user ) {
                    $user_id = $user->ID;
                    
                    // Меняем роль пользователя на новую
                    wp_update_user( array( 'ID' => $user_id, 'role' => 'новая_роль' ) ); // Замените на желаемую новую роль
                }
            }
        }
    }
}
add_action( 'woocommerce_order_status_completed', 'change_user_role_after_purchase' );
```

Не забудьте заменить `$target_product_ids` на ID ваших целевых товаров, и `'новая_роль'` на желаемую новую роль пользователя.

Теперь, после завершения покупки определенного товара, у пользователя будет изменена его роль.
Похожие вопросы