Wordpress:Ninja Forms将表单数据传递给弹出窗体

时间:2018-03-14 13:35:43

标签: javascript php wordpress ninja-forms

我有一个Ninja Forms表单,要求提供电子邮件地址和一个optin复选框。在用户提交后,它会打开一个带有后续表单的弹出窗口(使用插件弹出式制作器),要求用户输入更多(可选)详细信息。由于后续表单有自己的提交表,我想将第一个表单的电子邮件地址传递给弹出式后续表单,以便用户不必再次输入。 理想情况下,它将所有这些信息保存到一个提交表中,但我猜Ninja Forms不是这样构造的(?)。

使用提交处理挂钩(http://developer.ninjaforms.com/codex/submission-processing-hooks/),我将以下代码添加到主题functions.php

add_action( 'ninja_forms_after_submission', 'ninja_forms_save_email_to_cookie' );

function ninja_forms_save_email_to_cookie( $form_data ){
    $cookie_name = "nl_email";
    $cookie_value = $form_data;
    setcookie($cookie_name, $cookie_value); // Session cookie.
}

但没有保存cookie。

对于后续表单,我在主题的functions.php中有这个,它应该在执行任何其他处理之前用cookie的值填充隐藏的表单字段(字段键为email_1519816442526)跟进表格:

add_filter( 'ninja_forms_submit_data', 'ninja_forms_submit_followup' );

function ninja_forms_submit_followup( $form_data ) {
    $cookie_name = "nl_email";
    if(!isset($_COOKIE[$cookie_name]) && $form_data['id'] == 2) {
        $form_data['fields']['email_1519816442526']['value'] = $_COOKIE[$cookie_name]; // Update the submitted field value.
    }

    return $form_data;
}

提交挂钩是否正确集成此功能?或者通过自定义操作更好地完成?自定义操作是在functions.php还是在其他地方定义的?我在Ninja Forms文档中找不到相关信息。

0 个答案:

没有答案