gform_pre_submission_filter

gform_pre_submission_filter

DescriptionUsageParametersExamplesPlacementSource Code

Description
This filter is executed after form validation, but before any notifications are sent and the entry is stored. This filter can be used to manipulate the Form Object prior to sending notifications.
Usage
The following would apply the function to all forms.
1add_filter( 'gform_pre_submission_filter', 'pre_submission_filter' );
To target a specific form append the form id to the hook name. (format: gform_pre_submission_filter_FORMID)
1add_filter( 'gform_pre_submission_filter_5', 'pre_submission_filter' );

Parameters

$form Form Object
The form currently being processed.

Examples
The following example dynamically populates a checkbox field with a list of published posts
12345678910111213141516171819202122232425262728293031323334353637383940//NOTE: update the '221' to the ID of your formadd_filter( 'gform_pre_render_221', 'populate_checkbox' );add_filter( 'gform_pre_validation_221', 'populate_checkbox' );add_filter( 'gform_pre_submission_filter_221', 'populate_checkbox' );add_filter( 'gform_admin_pre_render_221', 'populate_checkbox' );function populate_checkbox( $form ) {     foreach( $form['fields'] as &$field )  {         //NOTE: replace 3 with your checkbox field id        $field_id = 3;        if ( $field->id != $field_id ) {            continue;        }         // you can add additional parameters here to alter the posts that are retrieved        // more info: [http://codex.wordpress.org/Template_Tags/get_posts](http://codex.wordpress.org/Template_Tags/get_posts)        $posts = get_posts( 'numberposts=-1&post_status=publish' );         $input_id = 1;        foreach( $posts as $post ) {             //skipping index that are multiples of 10 (multiples of 10 create problems as the input IDs)            if ( $input_id % 10 == 0 ) {                $input_id++;            }             $choices[] = array( 'text' => $post->post_title, 'value' => $post->post_title );            $inputs[] = array( 'label' => $post->post_title, 'id' => "{$field_id}.{$input_id}" );             $input_id++;        }         $field->choices = $choices;        $field->inputs = $inputs;     }     return $form;}
Placement
This code should be placed in the functions.php file of your active theme.
Source Code
This filter is located in GFFormDisplay::process_form() in form_display.php

發表回覆

您的郵箱地址不會被公開。 必填項已用 * 標註