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 );