【问题标题】:Wordpress: Saving Form Data and POST externalWordpress:保存表单数据和 POST 外部
【发布时间】:2017-02-26 07:32:13
【问题描述】:

我正在 Wordpress 中创建一个预订表单,它将数据发送到外部 CRM(在本例中为 Airship),同时还将数据存储在 Wordpress CMS 中,然后可以自动通过电子邮件发送。

目前我已经尝试过 Contact Form 7 和其他一些插件,但这需要它自己的 action="/?page_id=1327&preview=true#wpcf7-f1326-p1327-o1"(就像构建时的页面预览一样)。

Airship CRM 也有它自己的 action="http://atwbar.com/linkitajax.php" 来提交数据。

任何建议/建议将不胜感激!

【问题讨论】:

    标签: php wordpress forms content-management-system crm


    【解决方案1】:

    当我想保存一些特殊数据、将表单处理到 crm 或只是重定向我的所有表单时,我使用 Contact form 7 挂钩:wpcf7_before_send_mail 这是一个将任何表单重定向到页面的示例(从我完成的实用程序插件中提取,因此,不要关心未设置和会话行、选项...)。

    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 发送请求。

    告诉我它是否对您有帮助,或者您是否需要更多提示!

    【讨论】:

    • 谢谢!即将尝试一下,结果会直接回来!汤姆
    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 2017-04-08
    • 2013-08-09
    相关资源
    最近更新 更多