Javascript 将变量从Wordpress联系人表单7提交发送到成功页面

Javascript 将变量从Wordpress联系人表单7提交发送到成功页面,javascript,wordpress,contact-form-7,Javascript,Wordpress,Contact Form 7,我正在使用Wordpress 3.5的联系方式7 当前,当用户提交消息时,会使用“其他设置”字段中的以下内容将其重定向到成功页面: 我希望能够通过使用字段的输入来定制成功页面的输出,例如: on_sent_ok: 'location.replace("http://www.example.org/success-page?name=yourname");' 我希望通过将通常的联系人表单7短代码放到附加设置中,它可能已经发送了字段值,但事实并非如此 有谁能建议我如何将联系人表单7中的字段值输入u

我正在使用Wordpress 3.5的联系方式7

当前,当用户提交消息时,会使用“其他设置”字段中的以下内容将其重定向到成功页面:

我希望能够通过使用字段的输入来定制成功页面的输出,例如:

on_sent_ok: 'location.replace("http://www.example.org/success-page?name=yourname");'
我希望通过将通常的联系人表单7短代码放到附加设置中,它可能已经发送了字段值,但事实并非如此


有谁能建议我如何将联系人表单7中的字段值输入url,或者作为$\u POST参数发送?我想这可能需要一些javascript来完成。

我认为您应该使用$\u REQUEST['name'];用于在成功页面上获取post变量。

这是可能的,但您需要将已发布的数据从联系人表单保存到会话并在会话中显示

将其添加到functions.php中

add_action('wpcf7_mail_sent', 'save_cf7_data');


function save_cf7_data($cf) 
{

    if(session_id() == '') {
       session_start();
    }

    $current_submission = WPCF7_Submission::get_instance();

    $_SESSION['cf7_submission'] = $current_submission->get_posted_data();


}
您的成功页面只需打印会话变量,如:

echo $_SESSION['cf7_submission']['name'];

仅此而已。

另一个选项是使用jQuery或Javascript并在提交时捕获表单。 捕获表单后,可以序列化参数并将其传递到自定义页面以捕获它们并使用它们执行操作

jQuery的示例:

jQuery(document).ready(function($) {
    $('.wpcf7-form').each(function () {
        $(this).on('submit', function (e) {
            e.preventDefault();

            $.ajax({
                type: 'POST',    // Can also choose GET instead
                url: 'forms/getParams',
                data: $(this).serialize(),
                dataType: "json",
                success: function (data) {
                    $(this)[0].reset();    // Optional in case you want to clear the form on success
                },
                error: function (data, errorThrown) {
                    console.log(errorThrown);
                }
            });

        });
    });
});

“附加设置”代码是javascript,因此在浏览器上下文中运行。这意味着您可以使用普通javascript代码轻松访问表单数据


e、 g.
on_sent_ok:'位置。替换('http://www.example.org/success-page?name=“+jQuery(“输入[name=name]”.val());”

Wordpress似乎不喜欢带有编码查询字符串的URL,所以这些可能需要在$u POST varsi尝试您的解决方案时进行,但对我来说不起作用(最新的WP&CF7)。我收到错误消息:注意:未定义变量:_SESSION,我已经发送了_ok:“location='form page/thank-you/”;“Hi@danielcavanagh-不知道如何使用答案的“name=name”部分,例如,如果我的表单字段看起来像这样:
[dynamichidden表单会话id“form SESSION\u id”id:fid]
谢谢:)
jQuery(document).ready(function($) {
    $('.wpcf7-form').each(function () {
        $(this).on('submit', function (e) {
            e.preventDefault();

            $.ajax({
                type: 'POST',    // Can also choose GET instead
                url: 'forms/getParams',
                data: $(this).serialize(),
                dataType: "json",
                success: function (data) {
                    $(this)[0].reset();    // Optional in case you want to clear the form on success
                },
                error: function (data, errorThrown) {
                    console.log(errorThrown);
                }
            });

        });
    });
});