Visão geral
Gostaria de reenviar e-mails de ativação de usuários automaticamente se os usuários ainda não tiverem ativado suas contas? Mostraremos a você como fazer isso com PHP. Com o complemento WPForms User Registration, você pode habilitar o formulário de registro para que sejam enviados e-mails de ativação do usuário. Usando um pequeno snippet, você pode configurar facilmente uma função que reenvia os links de ativação para esses usuários, basta configurar a função e isso é tudo o que você precisa fazer.
Configuração
Primeiro, você precisará configurar o formulário e ativar a ativação do usuário na guia Registro do usuário. Se precisar de ajuda para configurar isso, consulte esta documentação.
Depois de configurar o formulário e adicionar os campos, clique na guia User Registration (Registro do usuário ) nas Settings (Configurações) do formulário. Em seguida, clique na opção Enable user activation (Ativar ativação do usuário).
Em seguida, adicione esse snippet ao seu site. Se precisar de ajuda sobre como adicionar snippets ao seu site, consulte este tutorial.
/** * Grab the users who have registered but not activated their account * * @link https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/ */ function user_registration_resend_activation() { $unapproved_users = get_users( [ 'meta_key' => 'wpforms-pending', 'meta_value' => true, ] ); foreach ( $unapproved_users as $user ) { \WPFormsUserRegistration\SmartTags\Helpers\Helper::set_user( $user ); wpforms_user_registration()->get( 'email_notifications' )->resend_activation( $user->ID ); } } add_action( 'user_registration_resend_activation_action', 'user_registration_resend_activation', 10 ); /** * Automatically resend any emails to users who haven't activated their account * * @link https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/ */ function user_registration_resend_activation_as_task() { if ( ! function_exists( 'as_schedule_recurring_action' ) ) { return null; } if ( as_next_scheduled_action( 'user_registration_resend_activation_action' ) ) { return null; } as_schedule_recurring_action( strtotime( 'midnight tonight' ), WEEK_IN_SECONDS, 'user_registration_resend_activation_action' ); } add_action( 'admin_init', 'user_registration_resend_activation_as_task', 10 );
Todos os usuários que se registraram por meio do formulário, mas ainda não ativaram a conta, recebem o status de wpforms-pending, portanto, a primeira função procurará esse status para buscar essas contas de usuário e a segunda função reenviará automaticamente os e-mails usando WEEK_IN_SECONDS como a hora programada.
O WEEK_IN_SECONDS é uma constante do WordPress que você pode usar para verificar semanalmente essa tarefa. Se quiser mudar isso para logo (ou até mais tarde), você pode mudar essa parte da função para qualquer uma das seguintes opções.
- MINUTO_EM_SEGUNDOS
- HOUR_IN_SECONDS
- DAY_IN_SECONDS
- MONTH_IN_SECONDS
- YEAR_IN_SECONDS
Para obter mais informações sobre as constantes que o WordPress fornece para períodos de tempo, consulte sua própria documentação.
E isso é tudo o que você precisa! Gostaria de criar algumas Smart Tags de usuário para usar em outros formulários? Confira nosso tutorial sobre Como criar mais Smart Tags de usuário.