Visión general
¿Le gustaría reenviar correos electrónicos de activación de usuario automáticamente si los usuarios aún no han activado sus cuentas? Le mostraremos cómo hacerlo con PHP. Con el complemento WPForms User Registration, puede habilitar el formulario de registro para que se envíen correos electrónicos de activación de usuario. Usando un pequeño snippet, puedes fácilmente configurar una función que reenvíe los enlaces de activación a estos usuarios, solo configura la función y eso es todo lo que tienes que hacer.
Configurar
En primer lugar, tendrá que configurar su formulario y activar la activación de usuarios en la pestaña Registro de usuarios. Si necesitas ayuda para configurar esto, consulta esta documentación.
Una vez que haya configurado el formulario y añadido los campos, haga clic en la pestaña Registro de usuarios en Configuración del formulario. A continuación, haga clic en la opción Activar activación de usuario.
A continuación, añada este fragmento a su sitio. Si necesita ayuda sobre cómo añadir fragmentos a su sitio, 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 );
Cualquier usuario que se haya registrado a través de su formulario pero que aún no haya activado su cuenta tiene un estado de wpforms-pending, por lo que la primera función buscará ese estado para obtener las cuentas de esos usuarios y la segunda función reenviará automáticamente los correos electrónicos utilizando WEEK_IN_SECONDS como hora programada.
WEEK_IN_SECONDS es una constante de WordPress que puede utilizar para comprobar semanalmente esta tarea. Si desea cambiar esto para que sea pronto (o incluso más tarde) podría cambiar esta parte de la función por cualquiera de las siguientes.
- MINUTO_EN_SEGUNDOS
- HORA_EN_SEGUNDOS
- DÍA_EN_SECUNDOS
- MES_EN_SEGUNDOS
- AÑO_EN_SEGUNDOS
Para más información sobre las constantes que WordPress proporciona para los periodos de tiempo, consulte su propia documentación.
¡Y eso es todo lo que necesita! ¿Te gustaría crear algunas Etiquetas Inteligentes de usuario para usar en otros formularios? Echa un vistazo a nuestro tutorial sobre Cómo crear más etiquetas inteligentes de usuario.