2016-10-17 7 views
1

Я создаю форму бронирования в Wordpress, которая будет отправлять данные на внешний CRM (в этом случае дирижабль), одновременно сохраняя данные внутри Wordpress CMS, которые затем могут быть отправлены по электронной почте автоматически.Wordpress: сохранение данных формы и POST внешних

В настоящее время я пробовал контактную форму 7 и несколько других плагинов, но для этого требуется собственный action="/?page_id=1327&preview=true#wpcf7-f1326-p1327-o1" (так же, как просмотр страницы во время строительства).

Airship CRM также имеет свои собственные action="http://atwbar.com/linkitajax.php", необходимые для представления данных.

Любые предложения/советы будут HUGELY оценен!

ответ

1

, когда я хочу, чтобы сохранить некоторые специальные данные, обрабатывать форму для МЦРА или просто перенаправить все мои формы, я использую Контактную форму 7 крюк: wpcf7_before_send_mail Вот пример, чтобы перенаправить любую форму на страницу (выписка из плагин утилиты, который я сделал, поэтому, не заботьтесь о unset и линиях сеанса, опциях ...).

add_action('wpcf7_before_send_mail', 'mail_send_redirection'); 

function mail_send_redirection($contactform){ 
    $submission = WPCF7_Submission::get_instance(); 

    if($options['_redirect_all_forms'] == 'false' && $contact_form->prop('redirection_settings') == 'false'){ 
     return; 
    } 

     $redirection_form_id = $contact_form->prop('redirection_settings'); 

     $redirection_page_id = (empty($redirection_form_id)) ? $options['_thank_you_url'] : $redirection_form_id; 
     $nonce = wp_create_nonce('redirect-user-action'); 

     if($contact_form->prop('redirection_message') != ''){ 
       $args = array(
        'html' => false, 
        'exclude_blank' => false); 

       $message = wpcf7_mail_replace_tags($contact_form->prop('redirection_message'), $args); 

       unset($_SESSION['bcf7u_nonce']); 
       unset($_SESSION['bcf7u_message']); 
       unset($_SESSION['bcf7u_pageid']); 

       $_SESSION['_nonce'] = $nonce; 
       $_SESSION['_pageid'] = $redirection_page_id; 
       $_SESSION['_message'] = $message; 


     } 

     $contact_form->skip_mail = false; 

     $contact_form->set_properties(
      array(
      'additional_settings' => "on_sent_ok: \"location.replace('" . get_permalink($redirection_page_id) . "/?nonce=" . $nonce . "');\"")); 

} 

Чтобы сохранить поле формы, просто используйте update_post_meta.

Есть другой способ отправить базу запросов на действие wp_ajax_no_priv _ {$ action} и js.

Сообщите мне, если это вам поможет, или вам нужны еще несколько советов!

+0

Спасибо за это! Попробуем попробовать и вернемся с результатом! Thom –