Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: donation confirmation page redirect #7439

Merged
merged 15 commits into from
Aug 23, 2024

Conversation

jonwaldstein
Copy link
Contributor

@jonwaldstein jonwaldstein commented Jul 10, 2024

Resolves GIVE-704

Description

This adds the ability for a donation form to redirect to the success page defined in GiveWP global settings.

In addition to the form builder settings, more flexibility can be applied using the filters below:

Global

add_filter( 'givewp_donation_confirmation_page_redirect_enabled', '__return_true' );

Per-form enable

add_filter('givewp_donation_confirmation_page_redirect_enabled', function ($shouldRedirect, $formId) {
    if ($formId === 1) {
        $shouldRedirect = true;
    }
    
    return $shouldRedirect;
}, 10, 2);

Per-form permalink

add_filter('givewp_donation_confirmation_page_redirect_permalink', function ($page, $formId) {
    if ($pageId = give()->form_meta->get_meta($formId, 'donation_confirmation_page_redirect_id', true)) {
        $page = get_permalink($pageId);
    }

    return $page;
}, 10, 2);

Affects

This affects the donation confirmation page rendering of the give_receipt shortcode. Since this is a shared page and shortcode with v2 and v3 forms, we'll want to make sure v2 forms are still working as expected along the way.

The approach taken was to add carefully placed actions and filters in the existing v2 logic so we can hook into them for the purposes of v3 forms. These include:

  • give_donation_confirmation_page_enqueue_scripts
  • give_receipt_shortcode_output
  • give_donation_confirmation_success_page_shortcode_view

Visuals

Demo Video:
https://www.loom.com/share/eed72b9765a44301afa5956178badfbd?sid=535e20ea-4417-4609-8fe9-e92f41b36aa1

Screenshot 2024-08-02 at 1 57 13 PM Screenshot 2024-07-10 at 10 38 24 AM

Testing Instructions

ZIP: https://github.com/impress-org/givewp/actions/runs/10219452643

Form settings

  • Create a v3 form
  • Open form settings and enable confirmation page redirect setting
  • Make sure you have a confirmation page defined in give settings
  • Donate to the form and make sure it redirects to that confirmation page 🎉

Test the filters

  • Add filter add_filter( 'givewp_donation_confirmation_page_redirect', '__return_true' );
  • Make sure a success page exists in GiveWP settings with give_receipt shortcode
  • Donate using a v3 form

Pre-review Checklist

  • Acceptance criteria satisfied and marked in related issue
  • Relevant @unreleased tags included in DocBlocks
  • Includes unit tests
  • Reviewed by the designer (if follows a design)
  • Self Review of code and UX completed

@jonwaldstein jonwaldstein changed the title Spike: donation confirmation page redirect Feature: donation confirmation page redirect Jul 12, 2024
@jonwaldstein jonwaldstein marked this pull request as ready for review August 2, 2024 18:58
@JasonTheAdams
Copy link
Contributor

Yeahhh! I've been wanting this feature for years! 😭 🙌

Copy link
Member

@alaca alaca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome stuff! Nice job, @jonwaldstein

Copy link
Member

@rickalday rickalday left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Passed manual QA tests.

@jonwaldstein jonwaldstein merged commit d19b894 into develop Aug 23, 2024
20 checks passed
@jonwaldstein jonwaldstein deleted the spike/confirmation-page-redirect branch August 23, 2024 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants