2017-02-06 6 views
2

Я хотел бы обработать контактную форму из контактной формы 7 в пользовательский тип сообщения.Контактный формуляр 7 в пользовательский почтовый тип

В настоящее время, это то, что у меня есть:

<?php 

if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) &&  $_POST['action'] == "front_post") { 

//store our post vars into variables for later use 
//now would be a good time to run some basic error checking/validation 
//to ensure that data for these values have been set 
$title  = $_POST['title']; 
$content = $_POST['content']; 
$Interest = $_POST['Interest']; 
$post_type = 'purchase'; 


//the array of arguements to be inserted with wp_insert_post 
$new_post = array(
'post_title' => $title, 
'post_content' => $content, 
'tags_input' => $tags, 
'posted_data' => $Interest, 
'post_status' => 'publish', 
'post_category' => array('0',$_POST['cat']),   
'post_type'  => $post_type 
); 

//insert the the post into database by passing $new_post to wp_insert_post 
//store our post ID in a variable $pid 
//we now use $pid (post id) to help add out post meta data 
$pid=wp_insert_post($new_post); 

//we now use $pid (post id) to help add out post meta data 
add_post_meta($pid, 'cust_key', $custom_field); 


} 
?> 

Вот ссылка к фактической форме: http://stage.icardpromotions.com/create-purchase-order/

мне нужно быть в состоянии тянуть всю информацию формируют эту форму в таможенный пост типа «покупка»

Как вы можете видеть, я в настоящее время тянет в POST_CONTENT, POST_TITLE и т.д.

Я также пытался тянуть содержимое из формы контента по имени ввода «Интерес», но доза не работает.

Кто-нибудь знает, как это сделать?

ответ

0

для этого есть плагин, Post My CF7 Form.

+0

Спасибо за ваш ответ @Aurovrata, я пробовал опубликовать свою форму CF7, но есть некоторые ограничения, а также я хотел бы подключить форму к существующему настраиваемому пост-типу –

+0

, который находится в плагине, в конечном итоге это позволит вам отправлять сообщения в существующие пост-типы. – Aurovrata

+0

@KylePoyser плагин v2.0, выпущенный на прошлой неделе, теперь включает возможность сопоставления форм существующим типам сообщений – Aurovrata

1

здесь быстрый наконечник о том, как идти о достижении выше, используя свой собственный код, первый register your custom post

add_action('init', 'my_custom_post'); 
    function(){ 
     $args = array(
     /*post type registration parameters*/ 
    ); 
     register_post_type('my_custom_post', $args); 
    } 

дальше, вы хотите, чтобы захватить ваши отправленные данные и create a new post

add_filter('wpcf7_posted_data', 'save_posted_data'); 
    function save_posted_data($posted_data) { 
     $args = array(
     'post_type' => 'my_custom_post', 
     /*other default parameters you want to set*/ 
    ); 
     $post_id = wp_insert_post($args); 
     if(!is_wp_error($post_id)){ 
     if(isset($posted_data['form-field-name'])){ 
      update_post_meta($post_id, 'form-field-name', $posted_data['form-field-name']); 
     } 
     //and so on ... 
     return $posted_data; 
    } 
1
function save_posted_data($posted_data) { 


     $args = array(
     'post_type' => 'post', 
     'post_status'=>'draft', 
     'post_title'=>$posted_data['your-name'], 
      'post_content'=>$posted_data['your-message'], 
     ); 
     $post_id = wp_insert_post($args); 

     if(!is_wp_error($post_id)){ 
     if(isset($posted_data['your-name'])){ 
      update_post_meta($post_id, 'your-name', $posted_data['your-name']); 
     } 
     // if(isset($posted_data['your-email'])){ 
     // update_post_meta($post_id, 'your-email', $posted_data['your-email']); 
     // } 
     // if(isset($posted_data['your-subject'])){ 
     // update_post_meta($post_id, 'your-subject', $posted_data['your-subject']); 
     // } 
     if(isset($posted_data['your-message'])){ 
      update_post_meta($post_id, 'your-message', $posted_data['your-message']); 
     } 
     //and so on ... 
     return $posted_data; 
    } 
} 

add_filter('wpcf7_posted_data', 'save_posted_data'); 

-------------------- Объяснение этого -------------------------

Сначала сделайте функцию и добавить крюк wpcf7_posted_data к нему

--- первый шаг ---

function save_posted_data($posted_data) { 

} 
add_filter('wpcf7_posted_data', 'save_posted_data'); 

--- второй этап ---

и теперь и нужно добавить некоторые аргументы к сообщению, которое должно быть заполнено с помощью wp_insert_post();

$args = array(
     'post_type' => 'post', 
     'post_status'=>'draft', 
     'post_title'=>$posted_data['your-name'], 
      'post_content'=>$posted_data['your-message'], 
     ); 
$post_id = wp_insert_post($args); 

--- третьего шага ---

проверьте, что населённые пункты ошибка или нет

if(!is_wp_error($post_id)){ //do ur stuffs } 

--- Четвертый шаг ---

Теперь проверка Исеть поле или нет, и обновление METAS например, после

if(isset($posted_data['your-name'])){ 
    update_post_meta($post_id, 'your-name', $posted_data['your-name']); 
} 

и в последнем возврате значение

return $posted_data; 

Полный код выше.

+0

Вы должны объяснить свой ответ! – Mazz

Смежные вопросы