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
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".
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
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.
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
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.
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
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.
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