Resumo de IA
Visão geral
Gostaria de reenviar automaticamente os emails de ativação de utilizador se os utilizadores ainda não ativaram as suas contas? Vamos mostrar-lhe como fazer isto com PHP. Com o WPForms User Registration addon, pode ativar o formulário de registo para ter emails de ativação de utilizador enviados. Usando um pequeno trecho de código, pode facilmente configurar uma função que reenvia os links de ativação para estes utilizadores, basta configurar a função e é tudo o que tem de fazer.
Configuração
Primeiro, terá de configurar o seu formulário e ativar a ativação de utilizador no separador User Registration. Se precisar de ajuda para configurar isto, consulte esta documentação.
Depois de ter configurado o seu formulário e adicionado os seus campos, clique no separador User Registration em Settings do formulário. Em seguida, clique na opção para Enable user activation.
Em seguida, adicione este trecho de código ao seu site. Se precisar de alguma assistência sobre como adicionar trechos de código 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 utilizador que se tenha registado através do seu formulário mas ainda não tenha ativado a sua conta recebe o estado de wpforms-pending, pelo que a primeira função procurará esse estado para obter as contas desses utilizadores e a segunda função reenviará automaticamente os emails usando WEEK_IN_SECONDS como tempo agendado.
O WEEK_IN_SECONDS é uma constante do WordPress que pode usar para verificar semanalmente esta tarefa. Se desejar alterar isto para ser em breve (ou mesmo mais tarde), pode alterar esta parte da função para qualquer um dos 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 User Smart Tags para usar noutros formulários? Consulte o nosso tutorial sobre Como Criar Mais User Smart Tags.