Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Como Reenviar Automaticamente E-mails de Link de Ativação do Usuário

Visão geral

Você gostaria de reenviar automaticamente os e-mails de ativação de usuário se os usuários ainda não tiverem ativado suas contas? Mostraremos como fazer isso com PHP. Com o WPForms User Registration addon, você pode ativar o formulário de registro para ter e-mails de ativação de usuário enviados. Usando um pequeno trecho, você pode configurar facilmente uma função que reenvia os links de ativação para esses usuários, basta configurar a função e é tudo o que você precisa fazer.

Configuração

Primeiro, você precisará configurar seu formulário e ativar a ativação do usuário na aba User Registration. Se precisar de ajuda para configurar isso, consulte esta documentação.

ativar a configuração de ativação de usuário na aba User Registration das configurações do formulário.

Depois de configurar seu formulário e adicionar seus campos, clique na aba User Registration em Settings do formulário. Em seguida, clique na opção para Enable user activation.

Em seguida, adicione este trecho ao seu site. Se precisar de alguma assistência sobre como adicionar trechos 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 );

Qualquer usuário que se registrou através do seu formulário, mas ainda não ativou sua conta, recebe um status de wpforms-pending, então a primeira função procurará por esse status para buscar essas contas de usuário e a segunda função reenviará automaticamente os e-mails usando WEEK_IN_SECONDS como o tempo agendado.

WEEK_IN_SECONDS é uma constante do WordPress que você pode usar para verificar semanalmente essa tarefa. Se você quiser mudar isso para ser em breve (ou até mais tarde), você pode mudar esta parte da função para qualquer um dos seguintes.

  • MINUTE_IN_SECONDS
  • HOUR_IN_SECONDS
  • DAY_IN_SECONDS
  • MONTH_IN_SECONDS
  • YEAR_IN_SECONDS

Para mais informações sobre as constantes que o WordPress fornece para períodos de tempo, consulte a documentação deles.

E é tudo o que você precisa! Gostaria de criar algumas User Smart Tags para usar em outros formulários? Confira nosso tutorial sobre Como Criar Mais User Smart Tags.