Skip Navigation

[Resolved] Guardar fecha del registro de un usuario

This support ticket is created 5 years, 4 months ago. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 -
- 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 -

Supporter timezone: Europe/London (GMT+00:00)

Tagged: 

This topic contains 8 replies, has 2 voices.

Last updated by Rafael Corts 5 years, 4 months ago.

Assisted by: Nigel.

Author
Posts
#1269443

Hola Nigel, tengo un servicio que los usuarios se deben registrar y necesito que se guarde la fecha del día del registro, para luego utilizar una vista cuando haya pasado un cierto tiempo y les pueda mostrar un contenido.
El primer problema que tengo es que al crear un registro lo estoy haciendo con un formulario de usuario, entonces no se como aplicar una Vista, al no ser un Post Type.
Y el segundo problema no se como guardar la fecha del día del registro, sin que tenga de ser el usuario que haga el la acción de marcar la fecha.
Haber si me puedes aconsejar.
Saludos.
Rafa Corts

#1270289

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+00:00)

Screenshot 2019-06-17 at 07.49.23.png

Hola Rafa

La fecha de registro ya está guardada en el base de datos, lo que pasa es que no se puede filtrar por este fecha sencillamente.

Dime en concreto qué condición quires imponer ("cuando haya pasado un cierto tiempo"). Habrá falta código personalizado y quiero pensar en la mejor implementación.

Mientras tanto, para crear un View de usuarios, solo tienes que seleccionar Usuarios en el "Selección de contenido".

#1270313

Hola Nigel, la condición que necesito es: una vez que el usuario se registre, con un formulario de usuario, se guarde la fecha del día del registro. Entonces crearé dos vistas, una para tener un contenido con un formulario de pago y una segunda vista con mas contenido y el formulario de pago pero con unos preciso diferentes. Entonces el filtro que necesito aplicar es que la primera vista se pueda ver después del registro hasta los 7 días siguientes, una vez haya pasado los 7 días la primera vista se ocultará y aparecerá la segunda vista para mostrarse siempre.
La estrategia es que los usuarios se registren gratuitamente al servicio antes de que lo necesiten, por eso el tema de los 7 días si quieren inmediatez deberán pagar un precio mas elevado.
Ya he visto en donde he de crear las vistas del usuario.
Saludo.
Rafa Corts

#1271309

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+00:00)

Screenshot 2019-06-18 at 07.46.05.png

Bueno

Creo lo mejor sería establecer el valor de un campo de usuario de Types automáticamente al enviar el formulario de registro, y así tendrás el campo disponible para usar en filtros de Views.

El código siguiente es un ejemplo de usar el API para establecer el valor de un campo "registered" con la fecha corriente:

/**
 * Set date/time of registration for new users
 */
add_action('cred_save_data', 'tssupp_user_registration', 10, 2);
function tssupp_user_registration($user_id, $form_data)
{
    $campo = 'registered'; // Editar
    $form_ids = array(143); // Editar

    if (in_array($form_data['id'], $form_ids)) {

        // update field 'registered' with current date
        update_user_meta( $user_id, 'wpcf-'.$campo, time() );
    }
}

Entonces podrás usar el campo en un filtro de Views, como se ve en el pantallazo.

#1271363
Captura de pantalla 2019-06-18 09.36.11.png
Captura de pantalla 2019-06-18 09.35.53.png

Hola Nigel, el código ya lo he colocado y ya me guarda la fecha del registro, pero lo que no acabo de entender es a la hora de crear el filtro.
Primero de todo la fecha se guarda en esta función [wpv-user field="user_registered"]
Si voy a la vista para aplicarel filtro primero marco en el Content Selection "users" y selecciono el rol "Usuari" que es el que se otorga cuando un usuario se registra.
En el momento de crear el filtro de fecha no encuentro la variable "WPCF-registered" para aplicar, no se si estoy haciendo alguna cosa mal, Haber si detectas el problema
Saludos.
Rafa Corts

#1271757

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+00:00)

El campo user_registered no se puede usar en filtros, es una limitación de WordPress (entonces no está disponible en Views).

Entonces, la solución que propongo es que usas un campo personalizado que creas ("registered" en mi ejemplo), y entonces con el código compartido automáticamente se guarda la fecha en este campo, y luego puedes filtrar por este campo.

#1272291

Hola Nigel, no te entiendo, si mi dices que no puedo utilizar el filtro "registered" en una Vista entonces ¿en donde puedo configurar para filtrar por la fecha? Como dices en " y luego puedes filtrar por este campo."
Saludos.
Rafa Corts

#1272383

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+00:00)

Creo que te he confundido por usar el nombre "registered" para un campo personalizado que guarda la fecha de registro en lugar del campo estándar "user_registered" que WordPress no se permite usar en filtros.

Debemos olvidar de usar "user_registered", no nos sirve para nada.

Entonces, creamos un campo personalizado de usuario para guardar la fecha, en el ejemplo he usado "registered" pero puede ser lo que quieres.

El código que te he ofrecido automáticamente establece el valor de este campo personalizado al mandar el formulario de registro.

Luego, puedes usar este mismo campo en filtros de Views.

¿Te hace sentido?

#1272937

Efectivamente, he creado un campo personalizado y con el código que me has pasado se almacena la fecha y luego ya puedo aplicar el filtro en una vista. muchas gracias.
saludos.
Rafa Corts