From d8bc060e7af073c6c9cb82450a6684de233b7db9 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 26 Nov 2024 15:40:26 -0500 Subject: [PATCH] Process merge tags in redirect URLs inside the lightbox (#2220) --- .../class-gravityview-lightbox-entry.php | 17 ++++++++++++++--- readme.txt | 3 +++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/includes/extensions/lightbox-entry/class-gravityview-lightbox-entry.php b/includes/extensions/lightbox-entry/class-gravityview-lightbox-entry.php index 03767f9b1b..64ea428fbd 100644 --- a/includes/extensions/lightbox-entry/class-gravityview-lightbox-entry.php +++ b/includes/extensions/lightbox-entry/class-gravityview-lightbox-entry.php @@ -127,7 +127,7 @@ public function process_rest_request( $request ) { gravityview()->request = new GravityView_Lightbox_Entry_Request( $view, $entry ); if ( $delete_nonce ) { - return $this->process_delete_entry( $view ); + return $this->process_delete_entry( $view, $entry, $form ); } if ( $duplicate_nonce ) { @@ -341,6 +341,10 @@ private function process_edit_entry( $nonce, $view, $entry, $form ) { $reload_page = 1 === (int) $view->settings->get( 'edit_redirect' ) ? 'true' : 'false'; $redirect_to_url = 2 === (int) $view->settings->get( 'edit_redirect' ) ? esc_url( $view->settings->get( 'edit_redirect_url', '' ) ) : ''; + if ( $redirect_to_url ) { + $redirect_to_url = esc_url( GravityView_API::replace_variables( $redirect_to_url ), $form, $entry ); + } + add_filter( 'gravityview/edit_entry/success', function ( $message ) use ( $view, $reload_page, $redirect_to_url ) { return <<.gv-notice { display: none; } @@ -359,12 +363,15 @@ private function process_edit_entry( $nonce, $view, $entry, $form ) { * Processes the delete entry action. * * @since 2.29.0 + * @since TBD Added $entry and $form parameters. * - * @param View $view The View object. + * @param View $view The View object. + * @param GF_Entry $entry The entry object. + * @param array $form The form data. * * @return WP_REST_Response */ - private function process_delete_entry( $view ) { + private function process_delete_entry( $view, $entry, $form ) { global $wp; add_filter( 'wp_redirect', '__return_false' ); // Prevent redirection after the entry is deleted. @@ -374,6 +381,10 @@ private function process_delete_entry( $view ) { $reload_page = GravityView_Delete_Entry::REDIRECT_TO_MULTIPLE_ENTRIES_VALUE === (int) $view->settings->get( 'delete_redirect' ) ? 'true' : 'false'; $redirect_to_url = GravityView_Delete_Entry::REDIRECT_TO_URL_VALUE === (int) $view->settings->get( 'delete_redirect' ) ? esc_url( $view->settings->get( 'delete_redirect_url', '' ) ) : ''; + if ( $redirect_to_url ) { + $redirect_to_url = esc_url( GravityView_API::replace_variables( $redirect_to_url ), $form, $entry ); + } + ob_start(); echo <<