Skip to content

Using Action Hook field

Action Hook Field is a very extensive solution when you are building your form controls. When the built-in custom fields in the plugin aren't helpful, you can render your fields in the form using the Action Hook field.

Action Hook name

Now you can add your functions to this hook.

Step 2: Binding your functions to the hook

Section titled “Step 2: Binding your functions to the hook”

Now that we've got a hook name, we can bind our functions to this action hook

[php] /**
* Add the input field to the form
*
* @param int $form_id
* @param null|int $post_id
* @param array $form_settings
*/
function render_my_awesome_hook( $form_id, $post_id, $form_settings ) {
    $value = ”;

if ( $post_id ) {
        $value = get_post_meta( $post_id, ‘your_meta_key', true );
    }
    ?>

<div class=”wpuf-label”>
        <label>A demo field</label>
    </div>

<div class=”wpuf-fields”>
        <input type=”text” name=”my_custom_field” value=”<?php echo esc_attr( $value ); ?>”>
    </div>
    <?php
}

add_action( ‘my_awesome_hook', ‘render_my_awesome_hook', 10, 3 );
[/php]

Here we are adding a function render_my_awesome_hook to our hook my_awesome_hook. We get 3 parameters with that action

  • $form_id – The form ID of the form
  • $post_id – The post ID. If we are creating a new post, it becomes NULL. If we are editing a post, it gives us the post ID
  • $form_settings – The settings of our current form as an array

So basically we are adding text input field to that form. We can add more complex fields if we want

Now that we've added our form input, it's time to save those data when submitting the form. WP User Frontend gives you two useful action hooks: 1) when a post is submitted, and 2) When a post is updated.

1) When a post is submitted, the wpuf_add_post_after_insert action runs.
2) When a post is updated, the wpuf_edit_post_after_update action runs.

So we bind a function to those hooks and save our input.

[php] /**
 * Update the custom field when the form submits
 *
 * @param type $post_id
 */
function update_my_brand_new_hook( $post_id ) {
    if ( isset( $_POST[‘my_custom_field'] ) ) {
        update_post_meta( $post_id, ‘your_meta_key', $_POST[‘my_custom_field'] );
    }
}

add_action( ‘wpuf_add_post_after_insert', ‘update_my_brand_new_hook' );
add_action( ‘wpuf_edit_post_after_update', ‘update_my_brand_new_hook' );
[/php]

That's it—easy and fun!

OctoberDealsReal Thrills

Up to65%OFF

00DAYS00HRS00MINS00SECS
Get Now