Add a field in Contact Form 7.
In the form, insert
[favorite_posts post_titles]
In the email content, use
[post_titles]
In functions.php,
add_action( 'wpcf7_init', 'custom_add_form_tag_form_seminars' );
function custom_add_form_tag_form_seminars() {
wpcf7_add_form_tag( 'favorite_posts', 'your_form_shortcode', array('name-attr' => true) ); // "form_seminars" is the type of the form-tag
}
function your_form_shortcode( $tag ) {
if (!is_object($tag)) return '';
$name = $tag->{'name'};
if (empty($name)) return '';
ob_start();
$args = array('post_type' => 'post', 'numberposts' => -1 );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
?>
<table class="table table-bordered">
<?php
while ( $the_query->have_posts() ) { $the_query->the_post();
?>
<tr>
<td style="width:40px;">
<input type="checkbox" id="hoge_<?php the_ID(); ?>" name="<?php echo $name; ?>[]" class="wpcf7-form-control" value="<?php echo esc_attr( get_the_title() ); ?>" >
</td>
<td><label for="hoge_<?php the_ID(); ?>"><?php the_title(); ?></label></td>
</tr>
<?php
}
?>
</table>
<?php
}
$page = ob_get_contents();
ob_end_clean();
return $page;
}
The key is setting array(‘name-attr’ => true ) in your wpcf7_add_form_tag() and set class=”wpcf7-form-control” in your input.