Получилось изменить роль только в usersmeta, но тоже успех
function s1_change_role( $order_id ) {
$order = new WC_Order( $order_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 ( $order->user_id > 0 && $product_id == '522' ) {
update_user_meta( $order->user_id, 'paying_customer', 1 );
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'subscriber' );
// Add role
$user->add_role( 'Любитель' );
}
if ( $order->user_id > 0 && $product_id == '527' ) {
update_user_meta( $order->user_id, 'paying_customer', 1 );
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'subscriber' );
// Add role
$user->add_role( 'Клиент' );
}
if ( $order->user_id > 0 && $product_id == '528' ) {
update_user_meta( $order->user_id, 'paying_customer', 1 );
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'subscriber' );
// Add role
$user->add_role( 'VIP-Клиент' );
}
}
}
Всё понятно и просто, только вывод кривоват, как мне кажется, главное - работает)
$current_user_id = get_current_user_id();
$user_info = get_userdata($current_user_id);
$massiv = $user_info->caps;
foreach($massiv as $key => $value)
{
if($key == 'Любитель'){
echo 'Роль пользователя: ';
echo substr($key, 3);
}
if($key == 'Клиент'){
echo 'Роль пользователя: ';
echo substr($key, 3);
}
if($key == 'VIP-Клиент'){
echo 'Роль пользователя: ';
echo substr($key, 3);
}
}