Visão geral
Gostaria de reenviar automaticamente os e-mails de ativação dos utilizadores se estes ainda não tiverem ativado as suas contas? Vamos mostrar-lhe como fazer isso com PHP. Com o addon WPForms User Registration, pode ativar o formulário de registo para que sejam enviados e-mails de ativação do utilizador. Usando um pequeno snippet, você pode facilmente configurar uma função que reenvia os links de ativação para esses usuários, basta configurar a função e isso é tudo que você tem que fazer.
Configuração
Em primeiro lugar, tem de configurar o seu formulário e ativar a ativação do utilizador no separador Registo do utilizador. Se precisar de ajuda para configurar isto, consulte esta documentação.
Depois de configurar o formulário e adicionar os campos, clique no separador Registo do utilizador nas Definições do formulário. Em seguida, clique na opção Ativar a ativação do utilizador.
Em seguida, adicione este 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 utilizadores que se registaram através do seu formulário mas ainda não activaram a sua conta têm um estado de wpforms-pending, pelo que a primeira função procurará esse estado para obter essas contas de utilizador e a segunda função reenviará automaticamente as mensagens de correio eletrónico utilizando WEEK_IN_SECONDS como hora programada.
A WEEK_IN_SECONDS é uma constante do WordPress que pode utilizar para verificar semanalmente esta tarefa. Se pretender alterar isto para breve (ou mesmo mais tarde), pode alterar esta parte da função para qualquer uma das seguintes.
- MINUTO_EM_SEGUNDOS
- HORA_EM_SEGUNDOS
- DIA_EM_SEGUNDOS
- MÊS_EM_SEGUNDOS
- ANO_EM_SEGUNDOS
Para mais informações sobre as constantes que o WordPress fornece para períodos de tempo, consulte a sua própria documentação.
E é tudo o que precisa! Gostaria de criar algumas etiquetas inteligentes de utilizador para utilizar noutros formulários? Consulte o nosso tutorial sobre Como criar mais etiquetas inteligentes de utilizador.