* FEATURE: Now tracking payment subscriptions using a new subscriptions table.
* FEATURE: The Multiple Memberships Per User Add On has been merged into the core PMPro plugin.
* FEATURE: The Stripe Billing Limits Add On has been merged into the core PMPro plugin. All gateways now support billing limits.
* FEATURE: The Cancel On Next Payment Date Add On has been merged into the core PMPro plugin.
* FEATURE: Added a new Edit Member page for editing a user's membership information.
* FEATURE: Added a "Admin Membership Access" setting to the toolbar to allow admins to choose whether they want to view the website with full membership access, no membership access, or with their current membership levels.
* FEATURE: Added "content visibility" settings to all core WordPress blocks to allow restricting by membership level.
* FEATURE: Added the Single Membership Level block to display information about a specific membership level.
* ENHANCEMENT: Added a script that will run on upgrade to change all `cancelled` orders to `success` so that we can remove `cancelled` status.
* ENHANCEMENT: Moving the "Require Membership" settings in the block editor to a new block editor panel.
* ENHANCEMENT: Added a setting for customizing the word "Check" when collecting offline payments.
* ENHANCEMENT: Now prefixing the level and discount code URL parameters at checkout.
* ENHANCEMENT: Overhauled UI across administrative screens.
* ENHANCEMENT: Updated front-end pages and pre-headers.
* ENHANCEMENT: Now setting collate when creating database tables.
* ENHANCEMENT: Adding a `$name` parameter to the `pmpro_user_taxonomy_args` filter.
* ENHANCEMENT: Now sending payment descriptions to Stripe when users pay via Stripe Checkout.
* ENHANCEMENT: Added the `pmpro_get_membership_expiration_text()` function to replace the various ways we were getting the expiration text for the Members List table and when showing levels on the account page. Includes a `pmpro_membership_expiration_text` filter that is meant to replace the `pmpro_memberslist_expires_column` and `pmpro_account_membership_expiration_text` filters. The old filters are still applied if in place, but will be deprecated eventually.
* ENHANCEMENT: Now hiding on-PMPro notices on the PMPro dashboard pages.
* ENHANCEMENT: Added Screen Options for the orders and discount code list tables.
* ENHANCEMENT: Now showing links and previews when viewing file fields as read only.
* ENHANCEMENT: Now passing the `$item` object to the `pmpro_manage_memberslist_custom_column` so that custom code knows which specific level is being shown for the user.
* ENHANCEMENT: You can now set block visibility for nested blocks.
* ENHANCEMENT: Added `pmpro_braintree_subscription_create_array` filter.
* ENHANCEMENT: Added subscription transaction ID and next payment date to members list export.
* BUG FIX/ENHANCEMENT: Now storing payment information in individual orders instead of in user meta.
* BUG FIX/ENHANCENENT: Now showing "Credit Card" instead of "Pay With Credit Card" on the Update Billing page when using the Stripe payment request button.
* BUG FIX/ENHANCEMENT: Now preventing multiple user field groups with the same name from being created.
* BUG FIX/ENHANCEMENT: Now only calculating order tax and total when creating a new order.
* BUG FIX/ENHANCEMENT: Defaulting tax on MemberOrders to a float for consistency and to avoid potential edge cases.
* BUG FIX/ENHANCEMENT: Updated our "Lost Password"/"Reset Password" flow to track whether a password reset was initiated by Paid Memberships Pro. If not, some functions related to password reset will be disabled to avoid conflicting with other plugins.
* BUG FIX/ENHANCEMENT: Now using pmpro_cancelMembershipLevel() when processing an expiration.
* BUG FIX/ENHANCEMENT: Now caching the recent members and orders dashboard reports.
* BUG FIX/ENHANCEMENT: Fixed caching of sales reports that were 0 values.
* BUG FIX/ENHANCEMENT: Allowing dynamic properties in gateway and field classes to avoid PHP 8.2+ warnings.
* BUG FIX/ENHANCEMENT: No longer attempting to load our blocks if the register_block_type function is unavailable. (ClassicPress compatibility.)
* BUG FIX/ENHANCEMENT: Adjusted the dashboard UI to hide some elements when the current user doesn't have the proper caps to use them.
* BUG FIX/ENHANCEMENT: No longer making the AJAX call to check for notifications if notifications are turned off.
* BUG FIX/ENHANCEMENT: Adding nonce to email order modal and prefixing params.
* BUG FIX/ENHANCEMENT: Adding nonce to checkout form.
* BUG FIX/ENHANCEMENT: Small fixes for theme compatibility in Kadence, BuddyBoss.
* BUG FIX: Fixed an issue in the WordPress dashboard where the site locale would be loaded instead of the user locale.
* BUG FIX: Fixed an issue where `admin_only` user fields would still show on the frontend profile if the current user was an administrator.
* BUG FIX: Fixed an issue where the annual membership report would not show cancellations.
* BUG FIX: Fixed an incorrect class name in the profile edit fields. #2632 (@patric-boehner)
* BUG FIX: Fixed issue where invalid dates were breaking SQL queries in the members export and sales reports.
* BUG FIX: Fixed issue where clicking outside of a modal popup was not closing the popup.
* BUG FIX: Fixed an issue where reCAPTCHA v3 wouldn't show the badge for offsite gateways.
* BUG FIX: Fixed an issue where reCAPTCHA v3 wouldn't show the badge for gateways that use a custom submit button at checkout.
* BUG FIX: Fixed edge case issues when blocks were set to hide from multiple levels. #2884 (@dparker1005)
* BUG FIX: Fixed "WordPress database error Index column size too large." issues on some MySQL setups. #2876 (@dparker1005)
* REFACTOR: Updated how we enqueue blocks to follow most recent WordPress standards. #2647 (@briansantos10)
* REFACTOR: Removed deprecated and unused code in the Stripe gateway integration code. #2428 (@dparker1005)
* REFACTOR: Changing uses of `pmpro_getOption()` to `get_option()`. #2491, #2493, #2494, #2495 (@JarrydLong, @MaximilianoRicoTabo)
* REFACTOR: The pmpro_edit_memberships capability has been replaced with the pmpro_edit_members capability. This cap is required to edit members in the dashboard or through the API.
* REFACTOR: Replaced deprecated jQuery shorthands with generic handler and trigger. #2859 (@mircobabini)
* DEPRECATED: No longer using `$pmpro_levels` global variable. #2666 (@dparker1005)
* DEPRECATED: Marked the following hooks as deprecated: pmpro_admin_pagesetting_post_type_array (replaced by pmpro_admin_pagesetting_post_type), pmpro_stripe_subscription_deleted, pmpro_subscription_cancelled. #2819 (@dparker1005)
* DEPRECATED: Removed the following functions which were previously marked deprecated: `pmpro_set_pause_mode()`, `pmpro_cron_trial_ending_warnings()`. #2818 (@dparker1005)
* DEPRECATED: No longer showing "billing address" user meta fields in the Members List table or the Members CSV export. #2873 (@dparker1005)
* DEPRECATED: The checkout_levels API endpoint has been marked as deprecated. Please use the checkout_level (no s) endpoint instead. #2879 (@dparker1005)