- Added an option to export customer data as a CSV file in the customer list admin page
- Added the `wu_add_product_setup_fee_line_item` filter to the cart Setup Fee line item
- Added a new suite of Cypress tests to cover creating new sites from within the admin panel
- Replace the PHP Unit task runner with Pest
- Replace Cypress parallelization services with our self-hosted instance
- CI actions to validate PR titles
- Pull Request template with CI action to verify if checklists were properly followed
- Removed the id `server-size-0-description-0` from the price description element of the order-bump/simple field template
- Added dependabot settings for npm, composer, and GitHub actions alerts
- Added a `display_product_description` field to the Order Bump field
- Added `wu_after_switch_template` action (present in v1)
- Added Github Action to test PHP 7.4 compatibility after Rector runs
- Added the necessary adjustments to the samba.yml files to make the repository compatible with the new samba images for PHP 8.1
- Added new ESLint rules from our shared library
- Added new build tasks using the gulper library file
- Added (initial) CHANGELOG.md file
- Added the WP Ultimo plugin version as a const on the class `\WP_Ultimo`, allowing for access without the need for an instance - which might not yet exist
- Improved compatibility with the last Rank Math release, avoiding plugin auto-activation during the site creation process when active on the main site
- Added generation of a new .pot file containing countries, states, and cities using the new text-domain wp-ultimo-locations
- Added user license data to System Info
- Added NOBLOREDIRECT constant to System Info
- Added a "catch-all" error handler around problematic hooks on the template previewer to prevent minor errors from breaking it
- Added a filter to allow developers to change the "Unlock to Upgrade" URL
- Allows overriding checkout template elements
- Added capability verification to delete form handler on Admin Edit Pages to allow this action for Support Agents addon
- Added filter `wu_list_row_actions` to row actions on Admin List Pages
- Added a filter to the featured site image cropping size
- Added the Add-ons link to the main plugin menu
- Redirect to the current payment page on the Paypal confirmation process instead of the main register page
- Reduced the amount of data sent to create a new order in checkout to prevent PHP warnings
- Improved PayPal confirmation values and trial message
- Deprecated the use of the property `$version` on the class `\WP_Ultimo` in favor of a class const
- Improved checkout error handler to display actual field names from the current checkout form
- Removed Cloudflare integration alert as it's no longer required (<
https://blog.cloudflare.com/wildcard-proxy-for-everyone/>)
- Redirect the user to update the page when clicking to unlock a plugin or theme not allowed for the current membership
- Remove the X-Frame-Options header while in the template previewer
- Add a new logger class to better track errors
- Event visualization not showing Payload
- Breakage in limitation merging for sites, memberships, and products
- Performance issues with the Freemius SDK, especially on larger networks
- Incompatibility with UI Press Lite causing fatal errors on the login page
- PayPal auto-renewal toggle not activating after IPN recurring profile created message
- Fixed handling Checkout Forms with no fields
- Replaced deprecated `wpmu_new_blog` used on our Rank Math compatibility code
- Additional offset checks when trying to access Form fields
- Remove the current site "Admin Panel" link from the Account page when the "show_admin_link" is set to false
- Error when renewing a membership manually created by an admin
- Products with "Contact Us" pricing type of "Contact Us" changing to free on save
- Membership issues with activation on PayPal profile creation
- Visits counter script is always loaded, ignoring the status of the actual setting controlling it
- Ensure array value when searching for user email errors for multiple account features to avoid PHP warnings
- Enforce site ownership before applying a new domain mapping via the frontend form
- Prevent globally-scoped callables from being used as form field attributes
- Replaced deprecated `wpmu_new_blog` used by WP E-Signature, which prevents sub-site creation from completing properly
- Fixed the URL returned to register and other wp ultimo pages
- Fixed checkout triggered by a shortcode template page not skipping the template selection step
- Fixed checkout triggered by a shortcode pricing table page not preselecting the desired plan
- Clears session for the sign-up process after the registration is successfully over
- Add URLs as an exception to the white-labeling feature to avoid breakage with WordPress URL passes through the `sprintf` function
- Fixed incompatibility with WP CLI when the `--skip-plugins` is present and the context is a customer sub-site
- Improved the get method of items displayed in model selectors, to avoid not loading all available items
- Fixed critical error while rendering pricing table without an active product
- Domain Mapping and SSO inconsistencies in PHP 8.0 environments
- Allow `wu_get_*` functions to be used as form field attributes callback
- Fixed the display of tooltips on checkout form fields
- Added an extra check to make sure product variations exist before replacing the cart product with it
- Filters already defined default pages from selection in settings
- Remove `height: 100%` from the legacy-shortcode.css file
- Ensures that inactive sites are not included in the template previewer list
- Ensures that inactive sites are not included in the template selector
- Ensures the main site is always added to the My Sites list for super admins
- Fix Stripe scripts being loaded even with the payment method disabled
- Renewal invoices from Stripe webhooks without tax and discount
- Ensure the cart is correctly built on checkout in cases where payment gateway webhooks complete the payment before we finish the process
- Ensures that we only show the migration pending notice to networks there were not migrated yet
- Fix template overrides
- Changed the response code when subsite maintenance mode is on to 503, instead of 500
- Fix email broadcast to target products
- Use the default WordPress session on Checkout Form Editor to avoid errors with cookie sizes
- Fixed stripe refund amount received in the webhook call
- Fixed gateway confirmation redirection used on Stripe Checkout and PayPal for update form
- Fixed Stripe Checkout billing cycle anchor on downgrades
- Added the customer data to the payment renewal event payload so we can send customer emails
- Added the customer data to the mapped domain creation event payload so we can send customer emails
- Ensures that we only show the migration pending notice to networks there were not migrated yet
- Fixed template overrides not being correctly loaded
- Changed the response code when subsite maintenance mode is on to 503, instead of 500
- Avoid pending site duplicates after creating an account
- Set membership as trialing when creating without a payment method and user verification
- Remove membership internal data from events
- Remove the customer from sites different from the customer-owned type.
- Fixed the test to create a new contact us product plan
- Fixed product description unexpected backslashes being added when apostrophe, backslash, single and double quotes were used
- Fixed limits and quotas widget to show limits only if limitations are enabled