• Resolved friendofdog

    (@friendofdog)


    I’d like to set a custom field, “current-status”, to “Order received” in all instances. This can be done easily by using a CF7 shortcode [text meta_current-status "Order received"]. But seeing as how the value is the same for every user, I’d rather set this on the back end.

    So I thought I’d add a filter into functions.php:

    function form_to_post_set_values($post) {
        $post['meta_order-status'] = 'Order received';
        return $post;
    }
    add_filter('form_to_post_before_create_post', 'form_to_post_set_values')

    Obviously, this did not work but I think you can see what I’m trying to do here. Any suggestions?

    https://www.ads-software.com/plugins/form-to-post/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Michael Simpson

    (@msimpson)

    I see that this is an oversight in the code. This hook allows you to change the inputs to the
    wp_insert_post call but the meta fields are not there. The meta fields are handled in a subsequent update_post_meta call after the post is created.

    So I added a new hook. Update to version 0.9 (should be available soon) then use this code:

    function form_to_post_set_meta($post) {
        $post['order-status'] = 'Order received';
        return $post;
    }
    add_filter('form_to_post_before_update_post_meta', 'form_to_post_set_meta');
    Thread Starter friendofdog

    (@friendofdog)

    That did it! Many thanks.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Server-side filter for custom fields’ is closed to new replies.