2012/6/9

WordPressでContact Form 7からのポストをカスタム投稿タイプに下書き保存する

Contact Form 7からのポストをカスタム投稿タイプに下書き保存できるようなバイパスを作ってやる作業で一苦労。

function wpcf7_post($cf7) {
$fname = $cf7->posted_data["fname"];
$ftitle = $cf7->posted_data["ftitle"];
$fdesc = $cf7->posted_data["fdesc"];

こんな感じで、フォームからポストした値は拾えます。

'post_title' => $ftitle,
'post_content' => $fdesc,
'post_status' => 'draft',
'post_type' => 'post_type',
'post_author' => 'user'
);
$id = wp_insert_post($post);

で下書き保存します。この時、$id = ってやっておくと、wp_insert_postして下書き保存した記事IDが拾えます。

$terms = get_terms('taxonomies');
$floor_id = '';
foreach($terms as $term) {
  if(($term->name == 'カテゴリ名') && ($ftax == 'なんか')) {
    $floor_id = $term->term_id;
  }
}
wp_set_post_terms($id, $floor_id, 'events_categories', true);

こんな感じで、カスタム投稿タイプ一覧取得して、フォームから送られた値と照合して、その記事をカスタム分類に登録もできる。

add_post_meta($id, 'fname', $fname, true);

カスタムフィールドに値突っ込むのは結構簡単。

add_action( 'wpcf7_before_send_mail', 'wpcf7_post' );

最後にContact Form 7がメール送信する前に、この関数実行してね、とやっておきます。

あとまだちょっと詰めなきゃいけないところあるんですが、あらかたできてきて、昨晩忘れてた!となって焦ってたのですが、一安心です。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
WordPressデザインレシピ集
狩野 祐東
技術評論社
売り上げランキング: 197,569
WordPress 高速化&スマート運用必携ガイド
こもりまさあき 岡本渉
エムディエヌコーポレーション
売り上げランキング: 435,263