将提交时的重力形式重定向到刚创建的帖子

ter*_*ing 3 php forms wordpress gravity-forms-plugin

我有一个创建自定义帖子的重力表单,目前,在提交时它会根据表单设置显示确认消息.

我想将页面重定向到表单刚刚创建的帖子,而不是显示确认消息.

Gravity Forms有一个过滤器,gform_confirmation(或gform_confirmation_ [form_id]来定位特定的表单),其工作方式如下:

<?php
add_filter('gform_confirmation', 'reroute_confirmation', 10, 4);
function reroute_confirmation($form, $lead, $confirmation, $ajax) {
    $confirmation = array('redirect' => 'http://target_url.com');
    return $confirmation;
} ?>
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道URL是什么,因为它将由表单创建的自定义帖子的slug决定.

我尝试了$ lead和$ form的var_dump,看它是否告诉我新的帖子ID,但他们似乎没有.

我尝试使用gform_entry_post_save过滤器,但没有任何乐趣.

我猜一些钩子会显示帖子id(或slug),我可以从那里使用gform_confirmation过滤器重定向,我只是找不到合适的.

ter*_*ing 6

钩子"gform_after_submission"有$ entry对象,其中包含新创建的帖子的详细信息,包括post_id.

因此,我可以使用post_id重定向.

<?php
add_action('gform_after_submission', 'redirect_on_post', 10, 2);
function redirect_on_post($entry, $form) {
    $post_id = $entry['post_id'];
    $post_name = get_permalink('$post_id');
    wp_redirect($post_name);
    exit;
}
Run Code Online (Sandbox Code Playgroud)