Resumen de la IA
Introducción
¿Le gustaría almacenar los valores de las casillas de verificación como matrices para su formulario de envío de publicaciones en un campo meta personalizado creado a partir del complemento Advanced Custom Fields? Con un pequeño fragmento de código PHP, puede almacenar estos valores en una matriz para sus campos personalizados.
Por defecto, cuando los campos personalizados son mapeados en el addon Post Submission, WPForms almacena los datos en el campo personalizado en el mismo formato que WPForms almacena los datos en todos los formularios.
Un ejemplo es para los campos de formulario Checkbox (y cualquier cosa con múltiples valores), WPForms almacenar los valores como una sola cadena, con cada valor en una nueva línea.
Red
Green
Blue
Sin embargo, con un pequeño fragmento de PHP, puede cambiar fácilmente esto para que se almacene como una matriz.
array( 'Red', 'Green', 'Blue')
Creación de campos personalizados
En primer lugar, vamos a crear un campo personalizado para nuestras entradas utilizando el plugin Advanced Custom Fields.
Si necesita más información sobre la configuración de campos personalizados, consulte este artículo.

Creación del formulario
Ahora es el momento de crear tu formulario de envío de post y añadir un campo Checkbox al formulario.

Una vez que haya añadido los campos restantes a su formulario, vaya a la pestaña Configuración y haga clic en Envíos de publicaciones para asegurarse de que su campo personalizado se asigna correctamente.

Añadir el fragmento para almacenar valores como matrices
Para almacenar los valores como una matriz, sólo tendrá que copiar este fragmento en su sitio.
Si necesitas ayuda para añadir snippets a tu sitio, consulta este tutorial.
/**
* Turn checkbox values into an array.
*
* @link https://wpforms.com/developers/how-to-store-checkbox-values-as-arrays-with-post-submissions/
*/
function wpf_dev_post_submission_process_meta( $field_value, $meta_key, $field_id, $fields, $form_data ) {
// Only run on my form with ID = 443
if ( absint( $form_data[ 'id' ] ) !== 443 ) {
return;
}
// The $meta_key name is the same name that shows in the Field Name on Advanced Custom Fields
if ( $meta_key === 'have_visited' ) {
$field_value = explode( "\n", $field_value );
}
return $field_value;
}
add_filter( 'wpforms_post_submissions_process_meta', 'wpf_dev_post_submission_process_meta', 10, 5 );
NotaEs importante señalar aquí que en la pantalla de entradas de WPForms y en el campo meta al editar la publicación, seguirá viendo una casilla de verificación. Solo cuando repita los valores se mostrará como una matriz (en una sola línea) y se lo mostraremos en el siguiente paso. Recuerde también actualizar el ID del formulario desde 443 para que coincida con su propio ID de formulario. Si necesita ayuda para encontrar su ID de formulario, consulte esta útil documentación.
Mostrar los valores
Ahora es el momento de mostrar esos valores en su plantilla de entrada única. WPForms nunca recomienda hacer cambios en vivo a su tema así que es mejor usar un tema hijo o una función personalizada para hacer eco de esto en su plantilla.
Para más información sobre cómo crear un tema hijo, echa un vistazo a este excelente artículo de nuestros amigos de WPBeginner.

<div class="states_wrapper">
<?php if( get_field('have_visited') ): ?>
<p>I've already visited these states in the last 5 years: <?php the_field('have_visited'); ?></p>
<?php endif; ?>
</div>
Para el propósito de este tutorial, hemos creado nuestro tema hijo y en single. php hemos añadido esta línea de código para asegurarnos primero de que los valores están ahí y si lo están para mostrarlos.
Cuando se muestre tu entrada, verás que los estados aparecen en un formato de párrafo en lugar de línea por línea.

¡Y eso es todo! Ha cambiado correctamente cómo se almacenan estos valores en su base de datos de WordPress. ¿Le gustaría utilizar también imágenes en lugar de texto para las etiquetas de los campos de formulario de casillas de verificación? Eche un vistazo a nuestro artículo sobre Cómo aplicar imágenes a las etiquetas de casillas de verificación utilizando CSS.
Relacionado
Filtro de Referencia: wpforms_post_submissions_process_meta
PREGUNTAS FRECUENTES
R: ¿Puedo utilizarlo también en otros addons?
R: ¡Por supuesto! Por ejemplo, si tomas el mismo escenario que se menciona en este tutorial, podrías añadir esto al complemento de registro de usuario para que se guarde automáticamente en la página de perfil de usuario mientras utilizas ACF para añadir más información al perfil de usuario de WordPress.
En la versión 2.8.0 y posteriores del complemento User Registration, el filtro para almacenar valores meta personalizados es:
wpforms_user_registration_process_base_custom_meta_value
Nota: En versiones anteriores (antes de User Registration 2.8.0), este filtro se llamaba:
wpforms_user_registration_process_registration_custom_meta_value
Si mantienes un sitio heredado, puedes conservar ambos ganchos para garantizar la compatibilidad con versiones anteriores.
/**
* Turn checkbox values into an array with the User Registration addon.
*
* @link https://wpforms.com/developers/how-to-store-checkbox-values-as-arrays-with-post-submissions/
*/
function wpf_dev_user_submission_process_meta( $field_value, $meta_key = '', $field_id = 0, $field = array(), $form_data = array() ) {
// The $meta_key name is the same name that shows in the Field Name on Advanced Custom Fields.
if ( $meta_key === 'have_visited' ) {
$field_value = explode( "\n", $field_value );
}
return $field_value;
}
// User Registration addon 2.8.0+.
add_filter( 'wpforms_user_registration_process_base_custom_meta_value', 'wpf_dev_user_submission_process_meta', 10, 5 );
// Backward compatibility for older versions (before 2.8.0).
add_filter( 'wpforms_user_registration_process_registration_custom_meta_value', 'wpf_dev_user_submission_process_meta', 10, 5 );
¡Eso es todo! Ahora los valores de las casillas de verificación que hayas enviado se guardarán como una matriz cuando WPForms los asigne a tu campo meta de publicación personalizado.
¿Te gustaría obtener más información sobre cómo configurar las publicaciones, incluyendo la asignación de campos meta personalizados, en nuestra guía del complemento Publicaciones?