wordpress表单插件,允许在表单操作中提供自定义URL

时间:2017-04-24 07:12:28

标签: php wordpress forms contact-form-7 ninja-forms

我正在搜索wordpress插件,允许管理员创建表单并将该表单提交到自定义网址。我使用了联系表7,但它不允许这种类型的功能。

我找到的唯一解决方案是创建自定义表单或使用联系表单7钩子来获取发布数据并通过curl调用将数据发送到自定义URL。

请问更好的解决方案吗?

使用这个小忍者钩,但没有工作:

function ninja_forms_handler() {
  add_action ( 'ninja_forms_post_process', 'change_ninja_forms_landing_page', 1, 2 );
}
add_action('init', 'ninja_forms_handler');

function change_ninja_forms_landing_page(){
    global $ninja_forms_processing; 

    $form_id = $ninja_forms_processing->get_form_ID(); 

    $ninja_forms_processing->update_form_setting( 'landing_page', 'test.php' ); 
    }     
}

2 个答案:

答案 0 :(得分:2)

在这里,我通过使用联系表格7

给出了两种方法

Way-1 通过联系表单自定义操作网址

  1. 创建" custom_url.php"文件在您的站点根文件夹中 在此文件中,您可以获得联系表单发布数据并编写您的卷曲代码以及您想要的任何内容..

  2. 复制以下代码并粘贴主题function.php文件

     add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
     function wpcf7_custom_form_action_url()
        {
            return 'custom_url.php';
        }
    
  3. 提供此文件" custom_url.php"联系表格行动。复制以下代码并将其粘贴到您的页面中或发布您想要的内容。

    < form class =""行动=" custom_url.php"方法="后"名称="">
        [contact-form-7 id =" 1" title ="联系表格7"]
       < /形式>

  4. Way-2 虽然联系表7钩" wpcf7_before_send_mail"

    add_action('wpcf7_before_send_mail', 'CF7_pre_send');
    
    function CF7_pre_send($cf7) {
        $submission = WPCF7_Submission::get_instance();
    
        if ($submission) {
            $posted_data = $submission->get_posted_data();
            $arrFields = array();
            foreach ($posted_data as $key => $value) {
                //$strKeyVals .= $key.":".$value.", ";
                if ("_wp" != substr($key, 0, 3)) {
                    $arrFields[] = $key . '${$' . $value;
                }
            }
    /* Here you can write curl and whatever you want */
    
        }
    }
    

答案 1 :(得分:0)

这应该可以做到CF7 Docs

仅将代码添加到“联系”页面模板的页脚。

让我知道你是怎么过的。