WP Ultimo is the ultimate tool to create a premium network of websites – like WordPress.com – on your WordPress Multisite install. You can create unlimited plans, coupons codes and easily manage your network subscriptions.
- Unlimited Plans: You can easily create unlimited plans with different limitations, such as post limits per post types, disk space, and even themes and plugins available.
- 5 minutes Install: WP Ultimo ships with an amazing 5 minutes wizard to help you set up your network!
- Stripe and PayPal Gateways: WP Ultimo comes with Stripe and PayPal support out-of-the-box. More gateways will come as add-ons in the future.
- Easily manage Subscriptions: Manage subscriptions in a beautiful and concise control panel.
- Refunds: You can easily issue refunds directly from the admin panel;
- Coupon Codes: You can create unlimited coupon codes.
- Site Templates: You can let your potential costumer select site templates during the sign-up flow, or select a specific template per plan.
- Beautiful Sign-up Flow: WP Ultimo features one of the most beautiful sign-up flows available on the market (check our demo and screenshots).
Let us know in the comments section if you have any questions at all.
- Fixed: "Select Template" showing up in the site template previewer when in shortcode context; - Fixed: Template Previewer is handling SSL for subdomains in the right way now; - Fixed: Template Previewer taking into account the plan selected previously, to display only the templates available for that selected plan; - Fixed: "www." appearing on the site-url previewer; - Fixed: Incompatibility with WP All Import WooCommerce Add-on; - Fixed: Small portion of the bottom of the site preview being cut off on the Previewer screen; - Fixed: Users with Subscriptions created with no sites can now create sites from the panel without getting a "no permissions" error; - Fixed: Missing variable on domain mapping causing redirect errors in edge cases; - Fixed: Auto-login after registration not working in some environments; - Fixed: Invoice generator not being able to handle filenames with special characters and throwing errors; - Improved: Re-phrased the Sunrise.php check step on the Setup Wizard to make clear that users must add the define('SUNRISE', true); line above the /* That's all, stop editing! Happy blogging. */; - Improved: Added extra check on subscriptions to make sure free subscriptions are not getting expiring & expired notification emails; - Improved: Reorganized the broadcasts screen to add a preview block and to clean up the send form; - Improved: Added a login link on the "Site is not available" screen for admins to log in when "Block Front-end Access" is enabled; - Improved: Replaced the old "No Preview" image with something less intrusive; - Improved: Re-adjust the aspect ratio (320x179) of the template preview blocks to match the new resolution returned by the screenshot scraper; - Improved: Adopted a more aggressive minification strategy for WP Ultimo scripts, boosting performance and reducing file sizes up to 50%; - Improved: Making sure dbDelta does not dirty the logs with database errors on activation; - Improved: Added a filter to allow developers to add custom meta to sites after site creation on the signup; - Added: Option to prevent search engines from indexing template sites; - Added: New feature allowing users to switch templates after sign-up; - Added: New feature allowing admins to add a visit limit for plans; - Added: New feature allowing admins to overwrite the trial settings on the plan edit page; - Added: Different listing option on the Network Admin -> Sites page to list only Template sites; - Added: Webhooks! Support for 8 events (Account Created, Account Deleted, Payment Received, Successful Payment, Failed Payment, Refund Issued, Plan Changes, New Domain Mapping), more will be added as we go; - Added: WP Engine support! Domains get automagically added to the WP Engine panel after mapping; - Added: Cloudways support! Domains get automagically added to the Cloudways panel after mapping; - Added: Jumper UI that allows admin to easily switch between admin pages;
Version 1.5.5 - 07/03/2018 - Fixed: Change plan was not triggering role change and meta update of plan_id on the user; - Fixed: We now force avatar display on our pages even when that option is disabled on the main site settings; - Fixed: Customizer not loading preview in when a mapped domain is active; - Fixed: Domain Mapping box on User Account page now gets the right URL for CNAME for Multisite installs running inside a directory (like yourdomainname.com/wp, for example); - Fixed: Subscription being marked as "trialing" wrongfully because weak type checking of the trial days attribute; - Fixed: When a site template was no longer available, a "false" option would be displayed in the template selection screens during sign-up; - Fixed: Fixed on the double animation effect on the princing table frequency selector; - Important: We now use the locale of the user to render the Stripe box - Support languages: zh, da, nl, en, fi, fr, de, it, ja, no, es, sv; - Improved: Changing the trial now updates the active until, to make sure we correctly categorize subscriptions as "on-hold"; - Improved: The quotas widget is now always hidden to the subscriber role; - Added: Coupons now support limitations by plan and billing frequencies; - Added: Top-bar added on the template preview page; - Added: Notification Emails added for expiring and expired subscriptions; - Added: Notification Emails added for expiring and expired trial periods; - Added: Option to Activate and Deactivate plugins for plans directly from the Plugin Screen in the network admin;
Version 1.5.4 - 11/02/2018 - Fixed: Active until "remaining" string on the subscription was returning trial values instead of the right value; - Fixed: "Block Frontend Access" option was not working; - Fixed: Added the 'key' keyword to the sensitive info filter to prevent info like the MailChimp key from leaking into the frontend settings array; - Fixed: Added extra checks to the invoice generation process; - Fixed: Edge-case where broadcasts messages where being displayed to non-targeted users; - Fixed: Subscriptions created by the panel now use the default role set in the Settings, which is also filterable; - Improved: Email Blocks on the Settings -> Emails now is displayed with a lower opacity if that email is disabled; - Improved: Post Type limits now handle singular and plural limits. "1 Post" and "10 Posts", for example; - Improved: "/mo", "yoursite" string present on pricing table added as a translatable string; - Improved: Subscriptions list table now displays Gravatars to make things a bit more personal and colorful =); - Improved: Replaced jQueryUI DateTimePicker with FlatPickr; - Added: Support for modifying subscription dates by the hour and minute, to allow further control; - Added: Server time clock on the top bar to help admins when managing subscriptions; - Added: Activity Stream widget on the Network Dashboard; - Added: Notification email to let the network admin know when a user mapped a new domain to his site (thanks, Simon, for the suggestion); - Added: Added plan and billing frequency fields on the Subscription -> Add New page; - Added: New engine to install setting defaults without evoking loops; - Added: Post Type Block: Super admins can block specific post types based on the user's subscription plan; - Added: Role per plan: Super admins can now select a role to be used when the user signs up with a particular plan; - Added: Template Options per plan: Super admins can now filter which templates will be available in the template selection step based on the plan selected;
Version 1.5.3 - 02/02/2018 - Fixed: Reverted admin options code to 1.5.0, since some users are still reporting CPU and Memory spikes; - Fixed: Removed source-maps from final build to avoid 404 appearing on the console;
Version 1.5.2 - 31/01/2018 - Fixed: CPU and Memory spike due to the new default setting getter function going into an infinity loop in certain cases; - Fixed: Subscription save now clears the sites object cache to fix incompatibility with Redis - thanks Jorge, for the report;
Version 1.5.1 - 24/01/2018 - Fixed: Shortcode wu_plan_link now treats the results to avoid issues; - Fixed: Space quota updating when the plan is changed from the subscription management screen as well; - Fixed: Add New Users from the sub-sites were not sending invitation email; - Fixed: Small fix on the dutch translation file that was causing the Terms link to be broken; - Fixed: Get allowed themes for individual sites now return an empty array by default to prevent warnings; - Fixed: Subscriptions created via the Add New admin menu were not being saved; - Fixed: WU_Signup not working on sites running on sub-folders; - Fixed: Country selector not working as intended; - Fixed: Front-end blocking does not prevent the Payment Screen from showing up; - Improved: Filter to remove the H1 from the template selection step (wu_step_template_display_header); - Improved: Explicit mention that WP Ultimo is under GPLv2 on both plugin and readme headers; - Improved: Sunrise.php now will continue to work if the admin moves the plugins folder to a different location; - Improved: Sunrise.php is now versioned and will display a message when a new version is received, with automatic replacing with just one click; - Improved: Replaced the engine generating the .pot file with the same one being used by WordPress Core; - Improved: Plans List on the Change Plan widget are now displayed horizontally to make sure they all fit (useful for networks with a lot of plans); - Added: Top-bar navigation when visiting templates; - Added: French translation, thanks to @nouvelletechno; - Added: Spanish translation, thanks to Matias Candia; - Added: Alert message being displayed to the user asking for confirmation when he/her tries to add a custom domain;
Version 1.5.0 - 04/11/2017 - Fixed: Manual Gateway handling upgrades and downgrades; - Fixed: Change plan sometimes not updating the disk space quota of blogs; - Fixed: Added edge case to domain mapping and the get_scheme function, to allow more flexibility to sub-domains installs using mapped domains; - Fixed: Manual Gateway now checks if it should send the invoice on integration; - Fixed: Incompatibility with Sitemap generators (thanks, Aron Prins =D); - Fixed: Now WP Ultimo adds the original URL to the allowed cross-origin access array, to further prevent CORS issues; - Fixed: Issue with sign-up redirects not being exact; - Fixed: Relative time string on the Subscription page now support time spans larger than one year; - Fixed: When the copy media option is disabled, we now remove the attachment posts related to each media file; - Fixed: Small issue with creating new sites in some specific database environments; - Fixed: Setup wizard link on the Mercator error message was broken; - Fixed: We now check if the Stripe API was already loaded, to prevent fatal errors; - Fixed: User creation now is timezone-sensitive, preventing delays in invoices and payments; - Fixed: Spacing of integration buttons fixed; - Improved: Multi-select fields on the Settings now can be sorted. That allow users to change the order of the allowed templates, for example; - Improved: New option 'display_force' added to password fields. If checked, it adds a strength checker below the password field. More information: https://docs.wpultimo.com/knowledge-base/adding-a-strength-meter-to-password-fields/ - Improved: Form Fields helper function now gives the option to change the default value of the billing frequency field; - Improved: Applied number_format to statistics widgets; - Improved: "Instructions to Pay" field on Manual Gateway now supports is now a WP Editor field; - Improved: Updated the Dutch language files - Thanks, Aron Prins; - Improved: Moved the Domain Mapping and SSL settings to their own Settings Tab; - Improved: SSL Settings Summary widget on the Settings page to help visualizing the SSL configuration; - Added: Geo-location block added; - Added: Restricted Content shortcode for plans and default content; More information: https://docs.wpultimo.com/knowledge-base/shortcodes/ - Added: New shortcode with the front-end URL of a user's site for the create account template email (WP Ultimo -> Emails); - Added: Option to enable/disable SSO with enabled as the default behavior; - Added: Manual Gateway now displays link to a modal containing Instructions to Pay in the pending payment row in the Billing History widget; - Added: Table Updater checker added, to make sure custom tables are always in sync with their latest version;
Version 1.4.3 - 31/08/2017 - Fixed: Fatal errors on activation on single installs; - Fixed: Welcome email not being sent after user sign-up; - Fixed: Shortcode plan_link using echo, should use return; - Improved: Removed plan_id and plan_freq from the filtering function, and now they get saved as meta on the user; - Improved: Minor changes to the Manual Gateway to avoid conflicts with the WooCommerce Integration Add-on and all future gateways supporting the 'on-hold' status; - Improved: Added the WP Ultimo as top-level menu on the admin bar; - Improved: Sign-up customization steps only show in the main site now; - Added: Essential changes to allow the WooCommerce Integration to work; - Added: Filter on the metadata array sent to Stripe, to allow admins to add info they want to send to Stripe; - Added: Filters to allow better customization of invoices sent: wu_invoice_from, wu_invoice_to, wu_invoice_bottom_message; - Added: Reset Password now uses the same WP Ultimo template, even when WooCommerce is activated on the main site;
Version 1.4.2 - 18/08/2017 - Fixed: Redirect error using the wu_plan_link shortcode; - Fixed: Customizer bug onload; - Fixed: Coupon on wu_plan_link; - Fixed: Plan save requiring monthly pricing even if that billing option is not available; - Fixed: Added the 'manage_network' capability as a requirement to access all WP Ultimo Registration settings on the customizer; - Improved: Replaced the approach of the site creation engine from the admin panel with the new one introduced on 1.4.0; - Improved: Replaced the support email with the new one email@example.com; - Added: Network admins now can add new payments manually directly from the subscription management page; - Added: New option to duplicate templates on the Network Sites list;
Version 1.4.1 - 10/08/2017 - Fixed: Change Plans not displaying pricing tables; - Fixed: Pricing table shortcode was landing on the plan step again after a plan was selected; - Fixed: Removed logs folder check from the setup wizard; - Added: Option to toggle the cron-job of the Screenshot Scraper;
Version 1.4.0 - 08/08/2017 - Release Notes: http://bit.ly/wp-ultimo-1-4-0 - Added: Option to copy Coupon's shareable links on the All Plans and Edit Plan pages; - Added: Templates overriding for sign-up and emails; - Added: Helper function to create users with subscriptions: wu_create_user(); - Added: Helper function to create a new WP Ultimo network site: wu_create_site(); - Added: Fields and Steps API to the Sign-up flow; - Added: Helper function to add new sign-up steps: wu_add_signup_step(); - Added: Helper function to add new sign-up fields: wu_add_signup_field(); - Added: Deleting users and sites now removes the mappings associated with those sites; - Added: Option on the Email Settings to allow plain emails to be sent; - Added: Logs are now downloadable and delectable; - Added: Option to hide the Plan Selection step if there is just one plan available on the platform; - Added: Three different behaviors added to Coupon Code: disabled entirely, only via URL code or via URL code and Sign-up field; - Added: New shortcode wu_user_meta to retrieve user meta information on the front-end. Useful for retrieving information collected during sign-up using custom fields; - Improved: Shortcode wu_plan_link updated to work with the new Sign-up codebase; - Improved: WP Ultimo now checks for empty user role options to rebuild them if needed; - Improved: WP Ultimo now only displays broadcasts published after a user on the target group registered. This prevents new users from being bombarded by all the previously published Broadcasts; - Improved: Better template selection field; - Improved: Refactorization of the Screenshot Scraper: it now can handle up to ~80 without crashing; - Fixed: WU_Colors being added more than once; - Fixed: Coupon validation functions was not checking for post type, only for post titles; - Fixed: Fixed some broken elements on the Coupon Codes list table; - Fixed: Links breaking on Broadcasted emails; - Fixed: Missing variable declarations inside template_list and pricing_table shortcodes; - Fixed: Broadcast emails now supports multiple lines;
Version 1.3.3 - 19/07/2017 - Fixed: Issue with logs folder being located inside the plugin directory and, as a consequence, being wiped out on every update; - Fixed: Non-numeric errors being thrown on the Account page when Quarterly and Yearly billing frequencies were disabled on PHP 7.1; - Fixed: Error on the redirect URL filter after integration; - Fixed: Manual Gateway applying coupon codes; - Added: Log viewer added to the System Info page as a separate tab; - Added: CSV Exporter for Subscriptions on the Subscriptions Page; - Added: Option to select which Quota options will be displayed on the quota widget of the users' dashboard on WP Ultimo Settings -> General Tab;
Version 1.3.2 - 14/07/2017 - Fixed: Changed the order of Stripes Secret and Publishable keys on the settings to match the order on the Stripe Dashboard, avoiding confusion; - Fixed: Site_Hooks::get_available_templates() now returns sites without a valid owner as well; - Fixed: Default role not being applied to new sites created from the dashboard; - Fixed: Stripe Gateway now communicates the discount applied to the subscription on the modal window for payment; - Fixed: Template creation now handles a few edge cases preventing those sites from appearing on the available templates list; - Critical Fixed: Site creation from admin always being created for the super admin; - Improved: Added a new option to change the default behavior of plugin uninstall: now the default state is to not wipe plugin data; - Improved: Added current plan to the change plan hook; - Improved: Remove Terms of Service contents from System Info page;
Version 1.3.1 - 05/07/2017 - Fixed: Variable dump on sign up preventing redirect to the admin panel; - Fixed: Reverted the duplication script to the default tables only;
Version 1.3.0 - 03/07/2017 - Release Notes: http://bit.ly/wp-ultimo-1-3-1 - Fixed: Small issues with the template selection screen; - Fixed: Email content editor saving URLs in a weird way, adding slashes; - Fixed: Site Template description not being saved on the "Edit Template Info" screen; - Fixed: Variable Dump including sensitive information; - Fixed: Plan re-ordering not working on different languages; - Fixed: WP Ultimo icon on multi-network; - Fixed: Terms of Service field adding extra "\" after quotes; - Fixed: Error on creating new sites from the admin panel with a plan and template; - Improved: Uploads Quota can now be set as hidden on the plan pricing tables; - Improved: Prefixed SweetAlert to avoid conflicts with other plugins; - Improved: Replaced the content field for email templates with WP Editor; - Improved: Added an ID to each plan HTML markup on the pricing tables; - Improved: Added an extra check to the domain mapping (now called System) step on the Setup Wizard, to check if the right version of sunrise.php was loaded; - Improved: Added an extra check to the System step on the Setup Wizard to make sure the logs directory exists and is writable; - Improved: The features list field now uses a WP Editor widget, to allow the addition of bold text, italic, and links without editing HTML code, the same applies to the Broadcast message field; - Improved: Add-ons page now handles installs for free add-ons; - Improved: Duplicator now copies extra tables as well; - Improved: Added hooks for adding extra elements to the Advanced Options on the edit plan and coupon pages; - Added: wu_templates_list Shortcode added to display all the available templates on the front-end; - Added: Warning message on the System Info tab if the logs directory is not properly configured to be writable; - Added: Filters to change the labels and tooltip texts on the signup fields; - Added: Option to enable or disable copying media files from the template sites; - Added: Support to Multi-Network Environment (beta); - Added: Readded the SSO script for single sign-on login; - Added: Widget for Forum Discussions on the Network Admin;
Version 1.2.1 - 26/05/2017 - Fixed: Template categories sometimes appearing two times; - Fixed: Not being able to remove items from pricing tables for plans; - Fixed: Pagination on Subscriptions page take status into consideration now; - Fixed: Weird redirects when enabling domain mapping; - Fixed: Mercator error message being displayed even when the enable domain mapping option was deactivated; - Fixed: WordPress Overwrite options on WP Ultimo Settings - Network not saving properly; - Fixed: Prefixed the bootstrap classes we use; - Fixed: Problem with template selection with resolutions under 780px and console messages; - Fixed: Removed the payment step due to login inconsistency across different environment; - Improved: Added a new style to the WP Error page to make it more consistent with the rest of the plugin, including the "Payment Required Needed"; - Improved: Switched screenshot scraper from file_get_contents to cURL for a 50% performance improvement; - Improved: Added a more robust capabilities system to limit access to the Account page; - Improved: Custom domain meta box now gives an error if the user tries to input a domain already being used in the network; - Added: Shortcode wu_plan_link added to be used in custom pricing tables, use with plan_id and plan_freq; - Added: Template selector turns into a select-box on resolutions under 780px; - Added: Admins can search subscriptions on the subscriptions List Table - with ajax; - Added: Terms of Service now can be set using a full-fledged editor, with prettier exhibition on the front-end; - Issues: Removed SSO temporarily in order to prevent bugs from redirect loops until we can find a solution to the issues we are having with it.
Version 1.2.0 - 12/05/2017 - Fixed: Small typos on the settings page and other places; - Fixed: Some string were missing i18n on the subscription management screen; - Improved: Add-ons page now supports filtering as well; - Improved: Security on issuing refunds; - Added: Support for zero decimal currencies in Stripe; - Added: Site Template Categories with filtering on the Signup, and a more consistent UI for editing site templates on the backend; - Added: Option to hide plans from the pricing tables; - Added: 100% OFF coupon codes with unlimited cycles don't ask for payment integration any longer; - Added: Users can now add new sites from their panels, and admins can limit the number of sites on each plan. - Added: Sites list added to the Subscription Management (admin) and My Account (user) Pages; - Added: Custom capability 'manage_wu_account' created to control access to the Account page; - Added: Network Admins can now set a different role for the users created via the signup process (defaults to admin); - Added: Network Admins can now create subscriptions for users created outside of the signup flow (useful for migrating existing users); - Added: Network Admins can now remove subscriptions from the Subscriptions list; - Added: Payment is now a Signup Step when there is no trial; - Added: Subscription is no longer deleted when a site is; - Added: Option to send invoices when a payment is received from the gateways; - Added: Manual Payments Gateway (beta); - Removed: Old UI on site settings to add thumbnail;
Version 1.1.5 - 24/04/2017 - Fixed: Remote calls for activation API returning non-numerical values; - Fixed: Formatting errors on Subscription values Gateways; - Fixed: Small issues with resetting passwords; - Fixed: Network active plugins do not show up on the subsites plugins page anymore; - Fixed: Some small issues when creating sites from the panel using a plan; - Improved: Added the all_plugins filter to the Plans advanced settings; - Improved: Settings API now let us pass default values to the get_setting function; - Improved: Settings API now allows add-ons to save their defaults on plugin activation; - Improved: Core settings of WP Ultimo are now displayed on the System Info page as well; - Improved: Image fields in the Settings now supports the removal of a previously uploaded image; - Improved: WP Ultimo now saves the defaults when new options are added to it; - Added: Link to go back to previous steps added to sign up flow; - Added: Admins can now disable monthly billing if they wish to do so; - Added: Admins can highlight a different billing frequency by default (eg. You have monthly, quarterly and yearly billing enabled, but you want the yearly to be highlighted by default); - Added: Broadcast system: admins can now post admin notices to sites network-wide, targeting by plan and user; they can also send emails using the same targeting system;
Version 1.1.4 - 07/04/2017 - Fixed: Subscriptions with price set to zero being locked anyways; - Fixed: Small compatibility issue with Live Composer Page Builder; - Fixed: Stripe behaving strangely with different decimal places configurations; - Improved: Activation now only checks the license code remotely, not locally; - Improved: Pricing tables now display an error message for logged users before redirecting them back to the home page; - Added: Partial Vietnamese Translation (Thanks to Richard Tuan); - Added: Now users can overwrite the list of allowed themes by enabling themes for each site individually; - Added: Settings and Documentation links added to the plugins table on the network admin; - Added: Add-on page now let users buy add-ons, also let those with pre-launch licenses install all available add-ons directly from the admin;
Version 1.1.3 - 31/03/2017 - Fixed: Adding sites from the admin panel not working; - Fixed: JQuery UI Styles using HTTPS - Thanks, Richard; - Fixed: Adding new users throwing a fatal because of a redirect in the PayPal gateway not being checked; - Fixed: Ajax tables throwing order and orderby undefined indexes notice; - Fixed: Delete links not clickable throughout the WordPress admin; - Fixed: Validating URL that users enter as custom domain; - Improved: Subscriptions now get deleted after the user is deleted; - Improved: Removing unnecessary files; - Improved: The template selection list now displays the site name, not its path (which did not work for subdomain installs); - Added: Filter to change the redirect URL after login (tutorial: https://docs.wpultimo.com/docs/changing-the-redirect-url-after-sign-up/); - Added: Admins now have the option to hide specific post types from the pricing tables; - Added: The network IP setting now displays the apparent IP address of the network by default; - Added: Option to remove invalid subscriptions (subscriptions without user); - Added: System Info page, to allow for faster debug and troubleshooting with support requests; - Added: Shortcut buttons to extend and remove time from a subscription, via ajax;
Version 1.1.2 - 24/03/2017 - Fixed: Prevented the creation of tables on activation when they already exist; - Added: Hooks on the gateway payment notifications to allow integrations; - Fixed: Subscription creation adding an extra day to the active_until parameter of a subscription; - Added: Manage Subscriptions link to the topbar WP Ultimo Menu; - Fixed: Toggle of metaboxes in our admin pages now work properly; - Fixed: Plan upgrade not working when upgrading from a free plan; - Fixed: Language files not being loaded; - Fixed: Free subscription being displayed as inactive in the subscription panel; - Fixed: Small spelling errors; - Added: Partial translation to Brazilian Portuguese (Signup Flow only); - Improvement: Requirements engine in our Settings API now supports multiple requirements; - Fixed: Some issues with the creation of sites from the admin panel; - Added: PayPal Subscription button added as an option on the PayPal Gateway;