Всем привет, у меня стоят 3 хука
1. Завершает платеж через woocomerce
2. При завершение платежа меняет роль пользователя
3. Не корректно работает, при изменение вторым хуком роли пользователя не присваевает ему уровень подписки, помогите исправить!
p.s Если изменить роль пользователя на customer в settings/users, то ему присваевается подписка!
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if( $order->has_status( 'processing' ) ) {
$order->update_status( 'completed' );
}
}
function lgbk_add_member( $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 == '12429' ) {
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( 'customer' );
}
}
add_action( 'woocommerce_order_status_completed', 'lgbk_add_member');
function assign_pmpro_level_to_role($user_id, $role, $old_roles)
{
global $current_user;
//checks if the user doesn't have a membership level yet
if(!$current_user->user_id) {
//we found a role related to pmpro level
if($role == "customer")
{
pmpro_changeMembershipLevel(6, $user_id); //gives default customers the level 20 free registration membership
}
}
}
add_action('set_user_role', 'assign_pmpro_level_to_role', 10, 3);