Запуск перехвата WordPress при обновлении роли пользователя в коде

#php #wordpress

#php #wordpress

Вопрос:

Я пытаюсь запускать событие каждый раз, когда меняется роль пользователя. Пока я получил это:

 add_action( 'set_user_role', function( $user_id, $role, $old_roles )
  {
    error_log("usu fired2!");

    $user_info = get_userdata($user_id);
    $email = $user_info->user_email;

    error_log($email);
    error_log(print_r($old_roles, true));
    error_log($role);

    if ($role == "subscriber") {
      MC_user_tag_l2s($email, "klubmedlem", "active");
    } else {
      MC_user_tag_l2s($email, "klubmedlem", "inactive");
    }

  }, 10, 3 );
 

Это работает очень хорошо, когда я обновляю роль пользователя вручную на странице редактирования профиля. Однако он не работает, когда роль пользователя обновляется с помощью кода. Т.Е. Когда пользователь создает подписку с подписками WooCommerce.

Есть идеи относительно того, какой хук я должен использовать вместо этого?

Ответ №1:

Похоже, вы хотите использовать действие woocommerce_subscriptions_updated_users_role

Описание: Когда подписка активирована, приостановлена, отменена или истек срок действия, роль пользователя также будет изменена, что запускает хук ‘woocommerce_subscriptions_updated_users_role’.

Источник: https://docs .woocommerce.com/document/subscriptions/develop/action-reference /

Комментарии:

1. Похоже, это именно то, что я искал долгое время.. Спасибо!