Post My CF7 Form
by Aurovrata Venet 4.8 (48 reviews)

Post My CF7 Form

This plugin enables the mapping of your CF7 forms to custom posts, including featured images, files, meta-fields and taxonomies

Compatible with WP 7
v7.0.0 Current Version v7.0.0
Updated 6 days ago Last Update on 19 Jul, 2026
Refreshed 6 hours ago Last Refreshed on
View on WordPress.org
Rank
#4,737
No change
Active Installs
2K+
No change
KW Avg Position
25.3
-0.5 better
Downloads
95.1K
+16 today
Support Resolved
0%
No change
Rating
96%
Review 4.8 out of 5
4.8 (48 reviews)

Next Milestone 3K

Total Progress 88%
2K+ 3K+
470
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 120 more installs to reach 3K+

Rank Changes

4,732 4,737 4,743 4,748 4,753 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
4,716 4,725 4,735 4,744 4,753 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
4,697 4,712 4,726 4,740 4,755 25-06-2026 26-06-2026 27-06-2026 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
4,564 4,616 4,668 4,720 4,772 26-04-2026 27-04-2026 28-04-2026 29-04-2026 30-04-2026 01-05-2026 02-05-2026 03-05-2026 04-05-2026 05-05-2026 06-05-2026 07-05-2026 08-05-2026 09-05-2026 10-05-2026 11-05-2026 12-05-2026 13-05-2026 14-05-2026 15-05-2026 16-05-2026 17-05-2026 18-05-2026 19-05-2026 20-05-2026 21-05-2026 22-05-2026 23-05-2026 24-05-2026 25-05-2026 26-05-2026 27-05-2026 28-05-2026 29-05-2026 30-05-2026 31-05-2026 01-06-2026 02-06-2026 03-06-2026 04-06-2026 05-06-2026 06-06-2026 07-06-2026 08-06-2026 09-06-2026 10-06-2026 11-06-2026 12-06-2026 13-06-2026 14-06-2026 15-06-2026 16-06-2026 17-06-2026 18-06-2026 19-06-2026 20-06-2026 21-06-2026 22-06-2026 23-06-2026 24-06-2026 25-06-2026 26-06-2026 27-06-2026 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
Current #4,737
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 100 200 300 400 500 600 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
0 100 200 300 400 500 600 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
0 100 200 300 400 500 600 25-06-2026 26-06-2026 27-06-2026 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026
0 100 200 300 400 500 600 26-04-2026 29-04-2026 02-05-2026 05-05-2026 08-05-2026 11-05-2026 14-05-2026 17-05-2026 20-05-2026 23-05-2026 26-05-2026 29-05-2026 01-06-2026 04-06-2026 07-06-2026 10-06-2026 13-06-2026 16-06-2026 19-06-2026 22-06-2026 25-06-2026 28-06-2026 01-07-2026 04-07-2026 07-07-2026 10-07-2026 13-07-2026 16-07-2026 19-07-2026 22-07-2026 25-07-2026
0 100 200 300 400 500 600 25-07-2025 06-08-2025 18-08-2025 30-08-2025 11-09-2025 23-09-2025 05-10-2025 17-10-2025 29-10-2025 10-11-2025 22-11-2025 04-12-2025 16-12-2025 28-12-2025 09-01-2026 21-01-2026 02-02-2026 14-02-2026 26-02-2026 10-03-2026 22-03-2026 03-04-2026 15-04-2026 27-04-2026 09-05-2026 21-05-2026 02-06-2026 14-06-2026 26-06-2026 08-07-2026 20-07-2026 25-07-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.8
48 reviews
Overall 96%
5
45 (94%)
4
0 (0%)
3
2 (4%)
2
0 (0%)
1
1 (2%)

Tracked Keywords

Showing 4 of 4
Keyword Position Change Type Updated
contact form 7 module 9 Tag 20 hours ago
contact form 7 extension 10 Tag 20 hours ago
form to post 20 Tag 20 hours ago
contact form 7 62 Tag 20 hours ago

Unlock Keyword Analytics

Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.

  • Full keyword position tracking
  • Historical ranking data
  • Competitor keyword analysis
Upgrade to Pro

Support Threads Overview

Resolved
Unresolved
1
Total Threads
0
Resolved
1
Unresolved
0%
Resolution Rate

Track This Plugin

Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.

Start Tracking Free

Plugin Details

Version
7.0.0
Last Updated
Jul 19, 2026
Requires WP
6.0+
Tested Up To
7
PHP Version
7.4 or higher

Support & Rating

Rating
★ ★ ★ ★ ★ 4.8
Reviews
48
Support Threads
1
Resolved
0%

Keywords

Upgrade to Pro

Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.

Upgrade Now

Frequently Asked Questions

Common questions about Post My CF7 Form

Place the following in your functions.php file, add_filter('cf7_2_post_form_append_output', 'redirect_on_submit', 10, 3); function redirect_on_submit($script, $attr, $nonce){ //$attr cf7 shortcode attributes to check if this is the correct form. $url = site_url('/submitted'); //page slug to redirect to. $url = add_query_arg( array('cf72post' => $nonce,), $url); $url = esc_url($url); $script .= '<script>'.PHP_EOL; $script .= 'document.addEventListener( "wpcf7mailsent", function( event ) {'.PHP_EOL; $script .= ' var save = document.getElementsByClassName("cf7_2_post_draft");'.PHP_EOL; $script .= ' if(save.length == 0 || "false" === save[0].value){'.PHP_EOL; $script .= ' location = "'.$url.'";'.PHP_EOL; $script .= ' }'.PHP_EOL; $script .= '}, false );'.PHP_EOL; $script .= '</script>'.PHP_EOL; return $script; }
Now the submitted form is saved to a post and its ID is stored in a transient field by the plugin. You can access this transient field with the following code in your page template, if(isset($_GET['cf72post'])){ $post_id = get_transient($_GET['cf72post']); echo 'form submission saved to post:'.$post_id; } If you wish to redirect to the newly saved post (assuming it is published, see FAQ #16), if(isset($_GET['cf72post'])){ $post_id = get_transient($_GET['cf72post']); //get the link to the new post, $url = get_permalink($post_id); if ( wp_redirect( $url, 200 ) ) { exit; } echo 'unable to redirect, maybe the post wasn't published'; }
In the Contact Form 7 table list you will notice a new column has been added which allows you to create a new custom post mapping. This will take you to a new screen where you will see your existing fields listed in select dropdowns. Map your form fields to either a default field (eg title, content, excerpt, or author), or create a custom (meta) field, or even create a new taxonomy for your post. Once you have mapped your form you can toggle its status from on to off. In the off position, the plugin will no longer capture form submissions and save them to the mapped post.
You can simply modify the mapping at any given time, however if a mapping has been live and saving submissions to your post, then it is not recommended to make changes. Unless you have a fair understanding of WordPress posts and meta-fields structures and how these are saved in the database, I highly recommend that you delete any existing posts that may have been saved from form submissions that used the previous mappings. Failing to do this without a proper understanding of the changes you are making to an existing mapping with previously saved post submissions could lead to difficult errors to debug and fix once you start creating post submissions that have a different mapping. Consider yourself warned!
Simply toggle the status to off.
You create a new taxonomy and map your field to it. Note however that only select/checkbox/radio type of fields can be mapped to taxonomies. Once mapped and published you will see your taxonomy appear in your custom post menu. You can add terms to your taxonomy and these will be made pre-filled into your mapped field. Users can select a term and when the form is submitted, the post will be created with those terms assigned to it. (see screenshot 9 for more details.)
You need to use a special filter for this, 'cf7_2_post_filter_taxonomy_registration-{$taxonomy_slug}', see the Filter & Actions section for more details.
You may have noticed that in addition to mapping a post field or taxonomy to one of your form fields, you can also use a filter to hook your own custom values. In the case of taxonomies, you can actually map a form submission to a specific set of terms depending on the submission of other fields.
This is a little more complex. You will need to create an input field in your form in which users can submit a new term. You will then need to hook the action cf7_2_post_form_mapped_to_{$post_type} which is fired right at the end of the saving process. The hook parses the newly created $post_ID as well as the submitted $cf7_form_data form data array. You can then check if your user has submitted a new value and include it in taxonomy and assign the new term to the post.
There are are 2 filters provided to achieve this. In both cases, these filters are fired if the form is mapped to a post type only. The default behaviour is for the plugin to seek any draft saved form values for teh current user. A form is saved (draft) if the save button tag is used which allows a user to save a partially filled form and to submit it at a later stage. If a draft form is found for the current user, then the first filter will not be fired, the cf7_2_post_filter_cf7_field_value is fired for each field, and a helper code is available in the mapping edit admin page (see the Screenshot #8), filter #7. cf7_2_post_form_values is fired at the end of values pre-fill process, and allows all the values to be filtered, including those that may have been loaded if the current user as a draft form saved. add_filter('cf7_2_post_form_values', 'simple_cf7_form_values' ,10,4); function simple_cf7_form_values($field_values, $cf7_id, $post_type, $ck7_key){ if( 'my-form'!=$ck7_key ) return $field_values; //check this is the correct form. $field_values['your-name'] = 'prefilled name'; return $field_values; } If you have a WordPress page template that contains a CF7 form and want to change the field values from one page request to another, this can be done using the cf7_2_post_form_values filter (see Filter & Actions for more details). You will need to create an anonymous function on this filter and pass the CF7 id form your shortcode which you can automatically scan for form your page content. In the example below I assume that the page contains the default 'Contact Me' CF7 form which I want to pre-fill if a user is logged in, $content = get_the_content(); //let's find our shortcode preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches ); $args = array(); if( isset( $matches[2] ) ){ foreach( (array) $matches[2] as $key => $shortcode ){ if( 'contact-form-7' === $shortcode ) $args[] = shortcode_parse_atts( $matches[3][$key] ); } } //here I am assuming there is a single form on the page, if you have multiple, you will need to loop though each one if(!empty($args) && isset($args[0]['id'])){ $short_id = $args[0]['id']; $values = array(); if(is_user_logged_in()){ $user = wp_get_current_user(); $values['your-name']= $user->display_name; $values['your-email'] = $user->user_email; if(!empty($subject)){ $term = get_term_by('id', $subject, 'project-type'); $values['your-message'] = 'Dear Hexagon,'.PHP_EOL.'I request you to create a new '.rtrim($term->name,'s') ; } //now lets filter the values add_filter('cf7_2_post_form_values', function($field_values, $cf7_id) use ($short_id, $values){ if($short_id == $cf7_id ){ return $values; } }, 10,2); } }

Sign In / Register

You need to sign in or register to use this feature.