Version 1.4.0 is here and it represents a major step towards making WP Ultimo the all-in-one solution for building premium networks.
This version is all about the Sign-up Process.
It implements template overrides, a new API for adding steps and fields on the sign-up flow, a complete redesign of how the sign-up flow processes account creation, with two very handy functions, custom signup URL, and much more!
We realize the importance of making WP Ultimo as customizable as we can. Each and every one of our customers wants to provide a customized experience to their users. That being said, having dozens of premium services with the exact same sign-up page design (the WP Ultimo sign-up page) does little to offer that WOW feeling we all want to give potential clients.
In order to address this "lack of customization" problem, we implemented template overrides in WP Ultimo.
How does that work? It is simple. WP Ultimo now uses WordPress template hierarchy to selectively load view templates for its pages. It will first check your theme's directory for template files and only if it does not find anything it will load the default templates shipped with it.
Don't like that way the pricing tables look? Just copy the pricing-table.php from wp-ultimo/views/signup/pricing-table/pricing-table.php to your_active_theme_folder/wp-ultimo/signup/pricing-table, make some changes and voilá: WP Ultimo will load that file instead of the original one.
[gallery size="full" columns="1" link="file" ids="599,602,601,600"]
WP Ultimo supports template overriding for all the templates inside wp-ultimo/views/signup and wp-ultimo/views/emails, so you can have total control over the sign-up process and how your emails look. Overriding of widgets inside the dashboard should be added soon!
Customized Sign-up page URL
You can also change the URL of the sign-up page to anything you want, from now on, replacing the old wp-signup.php.
[caption id="attachment_589" align="alignnone" width="978"] New Option: Sign-up Custom URL[/caption]
[caption id="attachment_590" align="alignnone" width="628"] New URL In Action[/caption]
Hide plan selection step for single-plan sites
Many premium networks offer a single pricing option. For those networks, it does not really make sense to have a plan selection step during checkout. Networks admins now have an option to skip the plan selection step altogether if they only have one plan in the platform.
[caption id="attachment_588" align="alignnone" width="978"] New Option: Skip Plan Selection[/caption]
Steps/Fields API and Customizer Form Builder
In order to provide even more flexibility, we completely redesigned the way WP Ultimo generates and displays its steps during sign-up. The API for custom fields was simplified and we now have two functions to handle sign-up extensibility: wu_add_signup_step() and wu_add_signup_field(). No more hooking into 3 different hooks as it used to be.
As a quick example, adding a new signup step to gather the client's first and last name is as simple as the code snippet shown below:
Saving and Retrieving Data
All the extra fields added to the sign-up flow get saved as default WordPress user meta data. That means that you don't have to do anything else in order to save the contents of the extra fields you've added to the signup. It just works. This data can then be retrieved using standard WordPress functions like get_user_meta.
We also added a handy shortcode to display that information on the front-end: [wu_user_meta]. It takes a user_id argument (which you can leave blank as it defaults to the current site's owner id) and meta_name, which describes the name of the meta info you want to retrieve. To get the user's last name, for example, you would simply add a [wu_user_meta meta_name="last_name"].
Another advantage of this approach is that WordPress already uses meta data to store major information about the user. If you create fields that match the specific keys used by WordPress, that information will get automatically updated. That means that in order to update the First and Last Name fields on the user profile's page, you can just create two fields with the ids of first_name and last_name, like in the example above.
Having a neat way of adding steps and fields with simple functions is helpful, but we would like to take this one step further. WordPress comes equipped with a powerful customization tool - the Customizer - and WP Ultimo should be able to take advantage of it by allowing network admins to add, rename and reorder steps and fields directly on the customizer with live preview support.
Version 1.4.0 starts to implement those functionalities with Step Renaming and Reordering. Everything else is in place and we should be able to release adding new steps and fields directly from the customizer in the next couple of versions, a few days from now. As you can see in the demo below, the Customizer picks up custom steps added via the functions described earlier.
[caption id="attachment_596" align="alignnone" width="1440"] Customizer Integration: Reordering and Renaming[/caption]
Also, starting on version 1.4.0, all the styling options are mirrored on the customizer, meaning that you can now have instant feedback as you change colors and other elements.
[caption id="attachment_595" align="alignnone" width="1440"] Customizer Integration: Styling Options[/caption]
This first version of our Customizer Support can be accessed via the button present on WP Ultimo Settings -> Styling.
[caption id="attachment_598" align="aligncenter" width="1440"] Customizer Launcher[/caption]
Part of the coupon code handling was refactored in version 1.4.0. Network admins can now select between 3 different Coupon Code behaviors: disabled, coupon codes via URLs only (?coupon=CODE on the sign-up link) - where no field will be displayed on the sign-up form -, and allow coupon codes both via URL and via the sign-up field.ç
[caption id="attachment_586" align="alignnone" width="1023"] New Option: 3 different behaviors to handle Coupon Codes[/caption]
Copying the share link for the coupon code is much easier now and it can be done directly from the list table or on the Coupon edit's page.
[caption id="attachment_585" align="alignnone" width="1281"] Clicking copies the link to the clipboard[/caption]
[caption id="attachment_584" align="alignnone" width="1439"] Copying the Shareable Link directly from the edit page.[/caption]
Important: There is a backwards-compatibility break in the coupon handling: URLs containing coupon codes are now yoursite.com/.../?coupon=CODEHERE and not yoursite.com/.../?coupon_code=CODEHERE, as it was in previous versions. If you have links with coupon codes somewhere you should update the URL.
WP Ultimo now allows you to send emails on a plain email template. This is useful if you plan to use any third-party plugin for email template customization. And just to remember you, these email templates can be swapped using the new template overrides functionality we discussed above.
A number of small fixes were solved in version 1.4.0, including broken URL and paragraphs handlers on the Broadcast Emails. WP Ultimo now only displays broadcasts published after a user on the target group registered, preventing new users from being bombarded by all the previously published Broadcasts.
We've compartmentalized the process of creating new accounts on WP Ultimo into two different stages: user creation and site creation. That change will allow us to add the option of letting clients create only users (with no associated sites, like WP Multisite normally allows them to) in the future. Logs on the system info page can also be deleted and downloaded now. Despite PHP inability to handle async processes, we managed to use a new technique to allow our screenshot scraper to work without taking your site down up to 80 templates at a time.
The priorities on our list are finishing up the customizer integration with full form-builder capabilities.
We run into some considerably large issues trying to implement single payments to our current gateway structure. That difficulty made it almost impossible to implement Extension Sales and Tax Settings (long waited features).
Our goal with the versions between 1.4.0 and 1.5.0 is to gradually rewrite those parts of the code (to ensure backwards compatibility), taking these new features into account.
That being said, we realize that we are well-beyond the promised date for the release of the Extension Sales feature on the Plugin and Theme Manager Add-on.
Due to that reason, if you bought the add-on solely because of that feature, in the hopes that it would arrive soon, just contact us via email and we will refund you on that add-on purchase even if more than 30 days have passed.
Complete Changelog - Version 1.4.0 - 08/08/2017
- Added: Option to copy Coupon's shareable links on the All Plans and Edit Plan pages;
- Added: Templates overrriding 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;