¿Quiere añadir automáticamente un año a la fecha de entrada de sus formularios? En este tutorial, le guiaremos a través del proceso de configuración de un formulario para voluntarios, con una fecha de inicio. Además, le mostraremos cómo generar dinámicamente una fecha de caducidad que esté un año por delante de su fecha de inscripción utilizando PHP. Esto implica la creación de campos ocultos para almacenar tanto la fecha de inicio del voluntario como la fecha de caducidad calculada. ¡A trabajar!
Creación del formulario
Vamos a empezar creando un nuevo formulario. Si necesitas ayuda sobre cómo crear un nuevo formulario, consulta esta documentación.
Para el propósito de este tutorial, vamos a crear un formulario de inscripción de voluntarios. Este formulario capturará la diversa información necesaria para los voluntarios, así como dos campos ocultos que almacenarán la fecha de inicio, que es la fecha de entrada de la presentación, así como una fecha de caducidad para el voluntario, ya que querremos que el voluntario se inscriba de nuevo cada año.
Definición de los campos ocultos
Dentro de nuestro formulario, tenemos dos campos ocultos. Uno es para almacenar la información de la fecha exacta de entrada y el segundo es donde vamos a tomar la fecha de entrada, añadir un año, y luego almacenar los datos dentro del segundo campo oculto que será una fecha de caducidad.
Añadir un año a la fecha de entrada en WPForms
Ahora es el momento de añadir el snippet a su sitio. Si necesitas ayuda sobre cómo y dónde añadir snippets a tu sitio, consulta nuestro tutorial sobre este tema.
/** * Add one year to the entry date and store this date inside a hidden field * * @link https://wpforms.com/developers/how-to-add-a-year-to-the-wpforms-entry-date/ */ function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #2189. if ( absint( $form_data[ 'id' ] ) !== 2189 ) { return; } // Get the full entry object $entry = wpforms()->entry->get( $entry_id ); // Fields are in JSON, so we decode to an array $entry_fields = json_decode( $entry->fields, true ); // Checking to make sure Name field (ID 2) is not empty if (isset( $fields[2][ 'value' ] )) { // Set the date to today's date so the Entry Date is recorded // on the first hidden field in the form // Remember to update the 30 to match the field ID of your form for your first hidden field $entry_fields[30][ 'value' ] = date('m/d/Y'); // Set the date format and store the current date in a variable $setDate = date('m/d/Y'); $date = strtotime($setDate); // Get the date set above and add 1 year to this date $new_date = strtotime('+ 1 year', $date); // Store this new date inside the hidden field ID // Remember to update the 33 to match the field ID of your form for your second hidden field $entry_fields[33][ 'value' ] = date('m/d/Y', $new_date); } // Convert back to json $entry_fields = json_encode( $entry_fields ); // Save changes wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) ); } add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );
En el fragmento anterior, es importante observar que hay una referencia de ID de formulario(2189), así como algunas referencias de ID de campo(2, 30 y 33). Tendrá que actualizar cada uno de estos números de ID para que coincidan con sus propios ID de formulario y de campo. Si necesita ayuda para encontrar sus números de identificación, consulte este tutorial.
En el fragmento anterior, nuestra función comienza asegurándose de que el ID del formulario coincide con 2189
si no lo hace, este fragmento no se ejecutará.
En la siguiente parte del fragmento, estamos comprobando sólo para asegurarse de que el Nombre (es el ID del campo 2
) no está vacío. Dado que hemos configurado nuestro formulario para que el campo Nombre un campo obligatorio, sabemos que nunca estará vacío, pero aun así lo hemos colocado como comprobación de validación.
Una vez que continuamos a través de nuestro fragmento, vamos a establecer el primer campo oculto (ID de campo 30
) a la fecha actual, que coincide con la fecha de entrada del envío.
Por último, tomaremos la fecha actual, le añadiremos un año y colocaremos la nueva fecha en el segundo campo oculto (campo ID 33
).
Y ahora, cuando vea la entrada, podrá ver claramente la fecha original del envío del formulario, así como la nueva fecha que será la fecha de caducidad del envío.
Incluso puede seguir la guía de esta documentación para cambiar la vista por defecto de la pantalla de entradas, de modo que pueda ver fácilmente estas fechas cuando vea todas las entradas.
Y ya está. Ha añadido y almacenado con éxito una nueva fecha dentro de sus entradas que es exactamente un año a partir de la fecha de entrada. ¿Le gustaría también almacenar valores de campo en sus entradas? Revise nuestro tutorial sobre Cómo Almacenar Valores de Campo en la Entrada de WPForms.