¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Descripción

El filtro wpforms_post_submissions_post_args se utiliza para poblar todos los argumentos de la entrada, como el título, el tipo de entrada, etc., al usar el complemento Post Submissions de WPForms.

Parámetros

$post_args
(array) (Requerido) Argumentos de la entrada del formulario, como ID de categoría, ID de etiqueta, ID de autor, etc.
$form_data
array Configuración/datos del formulario.
$fields
array Valores/propiedades de los campos de entrada saneados.

Origen

wpforms-post-submissions/class-post-submissions.php

Más Información

El filtro wpforms_post_submissions_post_args se activa inmediatamente cuando se procesa la entrada para establecer el título de la entrada, la categoría, etc., dentro de la entrada.

Ejemplos

En el código de ejemplo, verá que primero comprobamos el ID del formulario para asegurarnos de que coincide con el formulario que se está utilizando. Luego, comprobamos un campo específico (por el ID de los campos) para ver si está vacío.

Solo recuerde cambiar el ID del formulario de 1378 para que coincida con su ID de formulario y cambie el '10' para que coincida con su ID de campo.

Si necesita ayuda para encontrar los ID de sus formularios y campos, revise este tutorial.

Vamos a ver si el menú desplegable coincide con FAQ y, si es así, lo cambiaremos del tipo de entrada post a my_faq.

/**
 * Action that fires during form submission.
 *
 * @link   https://wpforms.com/developers/wpforms_post_submissions_post_args/
 *
 * @param  array  $post_args Sanitized entry field. values/properties.
 * @param  array  $form_data Form data and settings.
 * @param  array  $fields    Sanitized entry field values/properties.
 *
 * @return array
 */

function wpf_dev_post_submissions_post_args( $post_args, $form_data, $fields ) {

    // Only run this snippet on the form ID 1378
    if ( absint( $form_data[ 'id' ] ) !== 1378 ) {
        return $fields;
    }
	
    // If the field ID is 10 and the value of that field is equal to FAQ process the snippet
    if ( ! empty( $fields[ '10' ] ) && $fields[ '10' ][ 'value' ] === 'FAQ' ) {
        $post_args[ 'post_type' ] = 'my_faq';
    }

    return $post_args;
}
  
add_filter( 'wpforms_post_submissions_post_args', 'wpf_dev_post_submissions_post_args', 10, 3 );