4.0.0
What's Changed
- Feature: add campaigns menu item and initial empty page by @glaubersilva in #7511
- Create campaign tables by @alaca in #7519
- Feature: Add Campaign model and repository by @alaca in #7520
- Feature: Add migration to create initial campaigns from existing donation forms by @kjohnson in #7507
- Feature: Add campaign pages by @kjohnson in #7510
- Feature: add list table for campaigns by @glaubersilva in #7524
- Feature: Relate Campaigns to Donation Forms with one-to-many relationship by @kjohnson in #7526
- Feature: add campaign details page by @glaubersilva in #7531
- Refactor: Exclude P2P Campaigns from core query by @kjohnson in #7534
- Refactor: Update Forms to Campaigns migration by @kjohnson in #7532
- Feature: Add query builder for Campaign Donations by @kjohnson in #7544
- Feature: add campaign details page header with tabs, save buttons, and form with sample input by @glaubersilva in #7536
- Feature: Add endpoint for Campaign Overview Statistics by @kjohnson in #7545
- Feature: add create new campaign flow by @glaubersilva in #7543
- Feature: Campaign Settings tab by @alaca in #7547
- Feature: add Forms tab to the campaign details page by @glaubersilva in #7555
- Feature: Add campaign overview statistics by @kjohnson in #7559
- Refactor: add new styles for list table views by @glaubersilva in #7558
- Feature: Archive campaigns by @alaca in #7565
- Feature: add campaign goal types for recurring donations by @glaubersilva in #7567
- Chore: Replace test data from Campaign Stats by @kjohnson in #7574
- Feature: Form inherits campaign goal by @alaca in #7569
- Feature: add Option-Based Form Editor feature flag by @glaubersilva in #7571
- Feature: add update default form method and missing tests for new methods from campaign repository by @glaubersilva in #7585
- Refactor: Update goal progress widget styles by @kjohnson in #7591
- Feature: Add campaign default form widget by @kjohnson in #7584
- Fix: Check for campaign goal before calculating percentage by @kjohnson in #7596
- Feature: Associate upgraded form to a campaign by @alaca in #7592
- Feature: add merge campaigns methods by @glaubersilva in #7597
- Feature: add merge campaigns endpoint by @glaubersilva in #7605
- Fix: remove unnecessary error message when selecting the initial goal while creating a new campaign by @glaubersilva in #7610
- Fix: goal creation modal should not highlight previous button by @glaubersilva in #7611
- Feature: add "Make as default" action to the forms list view by @glaubersilva in #7606
- Feature: add merge campaigns UI by @glaubersilva in #7612
- Update campaign design implementation by @kjohnson in #7613
- Fix: Prevent page refresh when opening the Create Campaign Modal by @kjohnson in #7608
- Feature: add campaign page settings by @glaubersilva in #7624
- Feature: Add revenue data to Campaign Overview by @kjohnson in #7588
- Feature: Default form tooltip by @alaca in #7590
- Fix: Update styles for archive campaign modal UI by @jdghinson in #7618
- Refactor: Update goal progress with campaign entity by @kjohnson in #7628
- Refactor: Default form by @alaca in #7616
- Feature: Update Campaign Donation Query by @alaca in #7630
- Refactor: Campaign status changes by @alaca in #7639
- Refactor: Default form functionality by @alaca in #7640
- Feature: Add deferred resolution to model factory definitions by @kjohnson in #7626
- Refactor: use DonationForm model to create default campaign form by @JoshuaHungDinh in #7638
- Fix: make entity prop optional by @alaca in #7644
- Fix: adjust Campaign overview tab styles by @JoshuaHungDinh in #7636
- Refactor: change font-size for modal input descriptions by @glaubersilva in #7650
- Refactor: migrate v2 forms to campaigns and add upgraded forms as campaign not-default forms by @glaubersilva in #7645
- Refactor: adjust Campaign settings page styles by @JoshuaHungDinh in #7646
- Refactor: update list table confirmation modals by @JoshuaHungDinh in #7649
- Refactor: Improve Campaign Overview page styling and structure by @JoshuaHungDinh in #7666
- Feature: Add campaign title block by @pauloiankoski in #7648
- Feature: add Campaign Cover Block by @JoshuaHungDinh in #7701
- Feature: ListTable configuration by @alaca in #7678
- Feature: Campaign Donate Button block by @alaca in #7687
- Feature: Add Campaign Donors block by @pauloiankoski in #7700
- Feature: Add Campaign Donations block by @pauloiankoski in #7703
- Fix: prevent donation details page fatal error by @jonwaldstein in #7711
- Fix: Prevent NaN error in Campaign Overview Stat Widget by @kjohnson in #7698
- Feature: Register campaign theme color settings by @pauloiankoski in #7707
- Refactor: Remove Edit button from default form widget by @pauloiankoski in #7728
- Fix: View Campaign Button by @alaca in #7721
- Refactor: update Campaign details to remove hardcoded USD and locale values in favor of give settings by @jonwaldstein in #7725
- Feature: add campaign stats block by @JoshuaHungDinh in #7726
- Feature: Campaign Goal Block by @alaca in #7702
- Fix: remove font weight hover styles on campaign tabs by @JoshuaHungDinh in #7742
- Fix: ensure campaign goal progress percentage is an integer and does not exceed 100 by @jonwaldstein in #7740
- Feature: Campaign List Block by @alaca in #7708
- Fix: Force campaign save on initial publish by @kjohnson in #7715
- Fix: Campaign pages support titles by @kjohnson in #7713
- Fix: Duplicated forms are assigned to the campaign of the original form by @kjohnson in #7712
- Refactor: remove option to delete a campaign by @jonwaldstein in #7739
- Refactor: replace "Donation Form" with "Campaign Form" in the onboarding wizard by @glaubersilva in #7730
- Refactor: remove "Add Form" options by @glaubersilva in #7722
- Fix: Set a minimum for the y-axis of the Campaign revenue chart by @kjohnson in #7717
- Refactor: hide trash option for campaign default form by @jonwaldstein in #7738
- Fix: conditionally update campaign end date by @jonwaldstein in #7747
- Feature: add campaign comments block by @JoshuaHungDinh in #7724
- Refactor: Replace Campaign Short Description editor with textarea by @pauloiankoski in #7745
- Feature: Campaign Page Default Layout by @kjohnson in #7746
- Refactor: ensure campaign cover block does not render unless an image is selected by @JoshuaHungDinh in #7732
- Fix: Campaign status change - archive by @alaca in #7749
- Refactor: Remove cover video support by @pauloiankoski in #7751
- Feature: Campaign Block by @alaca in #7727
- Fix: Customize editor back button for Campaign Page post type by @kjohnson in #7714
- Fix: Maintain aspect ratio for the Campaign Cover Image block by @kjohnson in #7718
- Fix: Return 404 for campaign pages when disabled on the campaign by @kjohnson in #7716
- Fix: corrects license handler notice dismissibility and UI by @JasonTheAdams in #7741
- Refactor: Add donate button, story blocks to Campaign Page by @kjohnson in #7759
- Fix: merge campaigns modal reopening constantly after the first open by @glaubersilva in #7752
- Fix: Campaign page preview by @alaca in #7756
- Fix: Donor name in top donations and top donors blocks by @alaca in #7764
- Feature: Campaign Page template by @alaca in #7761
- Fix: redirect user to the campaign form list after migrate data from v2 to v3 forms by @glaubersilva in #7766
- Fix: donation amounts are not displayed in the proper order on the top donations block by @glaubersilva in #7768
- Refactor: Replace Form with Campaign in step 1 of Setup Guide by @pauloiankoski in #7770
- Fix: Prevent trashing a campaign default form through bulk actions by @pauloiankoski in #7765
- Fix: missing Landing Page for the campaign created during the onboarding wizard by @glaubersilva in #7769
- Refactor: simplify campaign cover block by @jonwaldstein in #7774
- Fix: Campaign page should not be visible if campaign is not active by @alaca in #7773
- Fix: register campaign comments block in landing page by @JoshuaHungDinh in #7775
- Refactor: update webhook handler to create renewal from subscription model by @jonwaldstein in #7695
- Fix: replace currency field in Campaign Goal with form-builder-library component by @JoshuaHungDinh in #7771
- Fix: assign missing campaign start date by @jonwaldstein in #7776
- Fix: campaign revenue graph height by @jdghinson in #7784
- Feature: add "NEW" menu badge to GiveWP admin menu by @jonwaldstein in #7782
- Feature: add examples in block.json by @JoshuaHungDinh in #7754
- Fix: correct archived campaign filtering and status query by @JoshuaHungDinh in #7781
- FIx: update campaign page visibility by @jonwaldstein in #7777
- Feature: add campaignId to Donation model by @jonwaldstein in #7785
- Refactor: improve campaign revenue graph formatting and request data by @jonwaldstein in #7783
- Fix: Prevent Enter key from triggering Previous instead of Continue in Create Campaign modal by @pauloiankoski in #7787
- Feature: Support Multiple Goal Types in Campaign Goal Progress Chart by @pauloiankoski in #7786
- Fix: hide trash button on campaign page by @alaca in #7790
- Fix: campaign migration dates by @jonwaldstein in #7793
- Fix: php 8.4 warnings by @jonwaldstein in #7791
- Refactor: improve Campaign overview stats styling and loading by @jonwaldstein in #7797
- Feature: add new routes for donations and donors by @glaubersilva in #7699
- Refactor: update campaigns list table blank slate icon by @JoshuaHungDinh in #7798
- Fix: Merged campaigns donation count by @alaca in #7796
- Feature: add Campaigns Welcome Banner by @JoshuaHungDinh in #7788
- Fix: content of Button should be contained in a span for z-index setting by @pulsovi in #7795
- Return to the checkout form when the payment intent is created by @Genevieve-K in #7753
- Fix/date validation by @pulsovi in #7689
- Refactor: migrate Laravel mix to @wordpress/scripts by @jonwaldstein in #7778
- Refactor: Convert Anonymous Default Export Functions to Named Functions by @pauloiankoski in #7800
- Fix/Remove campaign page wireframe from campaign settings by @jdghinson in #7805
- Refactor: Change Campaign Donations block sort by attribute to "Recent Donations" by @pauloiankoski in #7807
- Fix: Prevent the “More” button from triggering form submission by @pauloiankoski in #7816
- Fix: Render mocked button in Campaign blocks only in the editor by @pauloiankoski in #7812
- Refactor: Set Donation Form and Campaign Page as published on Campaign creation by @pauloiankoski in #7806
- Refactor: Goal setting labels to update dynamically when Goal Type changes by @pauloiankoski in #7815
- Refactor: Replace campaign blocks icons with Give icon by @pauloiankoski in #7810
- Fix: hide donate button from campaign page if form is not published by @JoshuaHungDinh in #7803
- Fix: Campaigns list shouldn't break when P2P campaigns exist by @alaca in #7817
- Fix: create the campaign landing page during forms to campaigns migration and set it disabled by default by @glaubersilva in #7789
- Feature: add existing user campaign intro modal by @JoshuaHungDinh in #7792
- Refactor: Campaign page slug to Campaigns plural by @jonwaldstein in #7825
- Epic: GiveWP Campaigns by @kjohnson in #7506
- Fix: update headerimage styles by @JoshuaHungDinh in #7820
- Fix: migrated forms to campaigns allows goal amount to be 0 by @jonwaldstein in #7826
- Fix: Improve Campaign Page Disabled State Styling by @pauloiankoski in #7813
- Refactor: Update PayPal Commerce to capture order within the Gateway API by @jonwaldstein in #7809
- Feature: Add campaign tooltips by @alaca in #7818
- Refactor: replace donations table form filter with campaigns by @JoshuaHungDinh in #7823
- Feature: introduce useFormData hook with helpful donation form state values by @jonwaldstein in #7600
- fix: prevent parent page scroll on initial step of multi-step forms by @JoshuaHungDinh in #7828
- Refactor: Enable GiftAid Form download immediately in V3 Confirmation Page by @pauloiankoski in #7827
- Feature: updated form modal with loading state UI by @jonwaldstein in #7838
- Refactor: replace campaign custom post type with page by @jonwaldstein in #7830
- Fix: prevent checkbox template from switch to controlled by @jonwaldstein in #7760
- fix/update create campaignPage button and tooltip styles by @jdghinson in #7840
- Fix: Prevent the Donate Button from rendering in blocks for unpublished forms by @pauloiankoski in #7836
- Refactor: campaign page layout by @jonwaldstein in #7841
- Feature: Improve campaigns list table performance by @alaca in #7819
- Feature: Add support for running migration in batches by @alaca in #7755
- Fix: campaign list table when empty by @jonwaldstein in #7846
- Fix: Edit Donation Form should not open campaign creation modal by @alaca in #7843
- Fix: campaigns list table links by @glaubersilva in #7847
- Fix: remove target attribute from form title anchor tag by @JoshuaHungDinh in #7839
- Refactor: Improve Campaign Image upload setting to enforce aspect ratio by @pauloiankoski in #7844
- Refactor: Improve ModalDialog component to be scrollable by @pauloiankoski in #7845
- Fix: tooltips delaying closing and missing external links by @glaubersilva in #7837
- Fix: displays missing switch buttons and hides "All Forms" menu item when using the legacy list table by @glaubersilva in #7834
- fix: update add campaign form styles by @jdghinson in #7848
- Chore: update to phpunit 9 and make unit tests compatible by @jonwaldstein in #7824
Full Changelog: 3.22.2...4.0.0