I was posed with problem: make BuddyPress forum topics from a Gravity Forms form submission. Turning Gravity Form submissions into posts isn’t a big party trick– that is built in. What doesn’t work, is the linkage to a particular forum as a new topic. So: I did some hacking (see the code below).
- I made a gravity form
- I have it posting to the post_type for topics
- I put in a hidden value with the label of “forum_id” and the number for that forum id as the default value for the hidden value
- I had an existing plugin that was mine. I added the code below to listen for Gravity Form events and then act on the submission.
- WordPress will do the submission, save the post, then go to this function to act and create linkage between the form submission and a forum.
// publish and associate the form
function sboxr_application_submission( $entry, $form ) {
if (function_exists('bbp_update_forum')) {
//getting post
$post = get_post( $entry['post_id'] );
//changing post content
foreach ($form['fields'] as $key => $values) {
if ($values['label'] == 'forum_id') {
$post->post_parent = $values['defaultValue'];
break;
}
}
$forum_meta = array(
'forum_id' => $post->post_parent,
'topic_id' => $post->ID,
'comment_status' => 'open'
);
$post->comment_status = 'open';
$post->post_status = 'publish';
bbp_update_forum(array('forum_id' => $post->post_parent));
//updating post
wp_update_post($post);
foreach ( $forum_meta as $meta_key => $meta_value ) {
update_post_meta( $post->ID, '_bbp_' . $meta_key, $meta_value );
}
}
}
// Hook to make the gravity form submission to connect to forum post creation
add_action( 'gform_after_submission_2', 'sboxr_application_submission', 10, 2 );