重力表单由一个表单生成的多个帖子

时间:2013-06-21 作者:Daniel Foltynek

THE GOAL

示例1:求职者+邮件列表

想知道这是否可能,我有一个简单的表单,包含一些求职者简历的30个字段(自定义职位类型:Job\\u applicator),我想使用表单中的5个字段来自动创建自定义职位类型的新用户(“mailing\\u list”)

示例2:活动+俱乐部列表

另一个示例是使用带有俱乐部位置字段的自定义帖子类型“EVENT”生成表单,然后在后台提交后创建新的自定义帖子类型“club\\u listings”信息。是否很难在后台创建新的自定义帖子类型的俱乐部条目,每个行有3-5个字段?

Purpose

<节省时间,更好地分类

Conclusion

有人能帮我举个例子吗?我只想使用一个表单生成两个不同的自定义帖子类型帖子。我可以创建一个更大的表单,我想知道是否有一些简单的方法可以生成另一个不同的小CPT表单,其中包含3-5个特定字段。我正试图借助GF页面上的文档来理解这个问题:http://www.gravityhelp.com/documentation/page/Gform_after_submission

非常业余的例子如下:

01  <?php
02  add_action("gform_after_submission", "set_post_content", 10, 2);
03  function set_post_content($entry, $form){
04   
05      //creating NEW custom post type entry
06      $post = 
07   
08      //creating custom post type content
09      $post->post_content = "Club Info: "<br/> " . $entry[1] . " <br/>
10   "<br/> " . $entry[2] . " <br/>
11   "<br/> " . $entry[3] . " <br/>
12   "<br/> " . $entry[4] . " <br/>
13   "<br/> " . $entry[5] . " <br/>
14   
15      //updating post
16      wp_update_post($post);
17  }
18  ?>

1 个回复
SO网友:GhostToast

在您提到的示例链接中,它假设您使用的是重力表单中内置的后期生成功能。我想,如果您试图在每个表单提交中创建多个post对象,您可能会想绕过这个问题。在gform_after_submission 胡克,我会这样做。。。

// add the new post EVENT
$event_post_args = array(
    \'comment_status\' => \'closed\', // or open
    \'ping_status\' => \'closed\',
    \'post_author\' => 1, // this represents admin by default.
                        // might need to pull user info if is real user

    \'post_title\' => $entry[1] . \' - \' . $entry[2], // note i have no clue
                                                   // what you want here
    \'post_status\' => \'publish\', 
    \'post_type\' => \'event\',                                 
);

// this returns an integer on success, 0 on failure - creates post!
$post_id = wp_insert_post( $event_post_args );

// add more meta values if you need
$event_meta_values = array(
    \'event_address\'     => $entry[3],
    \'event_phone\'       => $entry[4],
    \'event_something\'   => $entry[5],
);

// as long as wp_insert_post didnt fail...
if($post_id > 0){
    foreach($event_meta_values as $key => $value) {
        // add our post meta
        update_post_meta($post_id, $key, $value);
    }
}

// now we just do the same kind of thing for other Post Type
$club_post_args = array(
    ...
    ...
    \'post_title\' => $entry[6],
);

// etc.
记住你的gform_after_submission 钩子,可能应该为一种特定的形式专门构建。可以在挂钩上添加下划线和表单ID来完成以下操作:gform_after_submission_7, 例如

您可能还需要在代码中使用一些条件,以确保这些值在尝试对其进行post或post meta之前不为空。

如果你需要更多的解释,请告诉我。

结束

相关推荐