WP Ultimo

See the latest changes, updates, and fixes

Version 2.1.5

Released on 2023-09-12


  • Fixed: Error preventing bulk delete popup and pending payment popup from loading

Version 2.1.4

Released on 2023-08-29


  • New webhooks for Payment, Costumer and Membership
  • Select templates by categories in templates selection field on forms
  • Added option to show all or owned sites on My Sites block
  • Divi Builder compatibility in page edit screen
  • Added filter wu_bulk_action_function_prefix on process_bulk_action() method
  • Better messages for membership downgrade via PayPal
  • Remove jQuery from legacy-signup, template-previewer, thank-you.js, visit-counter.js, wubox.js and vue-apps.js files
  • Fixed domain mapping allowing uppercase
  • Eliminates the fake email loophole and enables users to register on different subsites using the same email
  • Fixes the resetting password process
  • Allow user verification on wp-activate.php page
  • Fixed PayPal renew payments not showing line items
  • Change the status in membership and payment schemas for rest api validation
  • Fix the detection of pre-selected products in the checkout form
  • Fixed urlencode on my sites widget URL
  • Fixed plan frequencies and duration on migration from v1 to v2
  • Add the username in login error handler message

Version 2.1.3

Released on 2023-08-09


  • Added WordPress 6.3 compatibility.
  • Implemented periodic cleanup for possible forgotten pending sites from memberships.
  • Enabled membership addon products cancellation.
  • Synchronized membership products and prices with gateway subscriptions.
  • Now ensures that the site is a customer site before syncing the site’s plugin limitations.
  • Updated the checkout process to get all fields for search and replace in template sites.
  • Corrected the display of product limits in the legacy pricing table.
  • Added validation for site names to allow hyphens.
  • Addressed possible PayPal API errors during the checkout process.

Version 2.1.1

Released on 2023-05-01


  • Added the filter “wu_checkout_add_field_{field_type}” to allow developers to change form fields in the checkout form
  • Added an option called “checkout_page” to set a page ID to redirect to wu_templates_list shortcode
  • Compatibility with PerfMatters plugin on registration pages
  • Improved the limitation merge methods on plugins and themes permission rules
  • Checks permissions before the deletion of sites, payments, and memberships, during customer deletion
  • Checks permissions before the re-assignment of sites, payments, and memberships, during customer deletion
  • Filter WP Ultimo admin bar menu items by capabilities
  • Filter financial data widgets on the dashboard by capabilities
  • Filter side panel buttons on the settings admin page by capabilities
  • Disabled the save settings button for unauthorized users
  • Check if the Billing Country field exists before setting the v-model
  • Allow free addons with free plans on membership update
  • Fixed rollback fatal error
  • Fix error where non-customer-owned sites were being affected by permissions
  • Fix a fatal error triggered by generating a membership URL for non-customer-owned sites
  • Allow accentuated and other special chars when saving a checkout session
  • Fixed data replacement on serialized objects during site duplication
  • Filter WP Ultimo checkout forms menu by wu_read_memberships capability
  • Fix permissions required to invite customers in add_new_customer admin form
  • Fix permissions required to transfer sites in the admin page
  • Fix permissions required for redirecting to the edit broadcast admin page after creating a new broadcast
  • Fix the login block redirecting to the default WordPress login page after an error
  • Fix capability checks when redirecting to the site edit admin page after site creation
  • Add setup fees to the first stripe invoice in case of trials to include it in the first payment
  • Fix Cloudways SSL domain syncing methods
  • Redirect to the checkout page after selecting a site template on a wu_templates_list shortcode
  • Build process changed to guarantee backwards compatibility with php 7.4
  • Fixed duplicate emails and other small inconsistencies after checkout when Stripe is used
  • Get the original cart order from the payment before processing checkout instead of creating a new one from the request data
  • Allow downgrade from free memberships to plans with a duration smaller than 1 month

Version 2.1.0

Released on 2023-04-04


  • 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

Version 2.0.23

Released on 2022-11-22


  • Added: Custom Thank You page text for sites area when membership has no sites attached;
  • Added: PayPal payment description with trial and recurring payment specification;
  • Added: Network logo at PayPal checkout;
  • Improvement: site_url and site_title removed as required fields in checkout form, allowing the creation of memberships without sites (both fields are now optional);
  • Improvement: PayPal confirm page styles improved;
  • Improvement: PayPal now accepts non recurring discounts and fees with trial period in membership;
  • Improvement: WP Engine integration now also adds subdomains (we recommend the use of wildcard as first option);
  • Improvement: Restrict site creation to active and trialing memberships;
  • Improvement: Length limit of 63 chars in site_url checkout field according to DNS specifications;
  • Improvement: Added CUSTOMER_ID, CUSTOMER_EMAIL, MEMBERSHIP_AMOUNT, ORDER_ID placeholders on Thank You page script field;
  • Improvement: Changed ORDER_PRODUCTS placeholder on Thank You page scripts to show the list of products ids instead of the product hash;
  • Fix: WP Engine integration install;
  • Fix: Fix the use of wu_append_preview filter on plugins compatibility file;
  • Fix: Allow removal of all categories on a template site;

✨ See what’s next for WP Ultimo here