Every once in a while we need to take a step back and get perspective on how our product performs as a whole. This release focuses on the general performance of the PeepSo suite, with special attention to Chat, AJAX and various tasks that PeepSo performs in the background. We also improved control over user registrations and added some new features to the GDPR compliance mode.
? Upgrades ?
For a quick and hassle-free upgrade:
- Go to the backend of your site > Dashboard > Updates (go here, instead of > Dashboard > Plugins, trust me)
- Select all PeepSo plugins that need to be updated
- Click ‘Update Plugins’ (note: this will deactivate all of the add-on plugins), don’t worry, they’ll come right back on during Step 6 promise!
- Update PeepSo Core
- Go to the backend > Plugins
- Reactivate all PeepSo plugins
The whole operation doesn’t take more than 3 minutes. Should you have any issues or questions, please do contact us. ALSO IMPORTANT. We release all plugins at the same time. Sometimes, it can take some time for all available updates to show in the backend of your site. If some plugins’ updates don’t show, wait. Just Wait. Don’t upgrade just some of them. Drink some coffee and wait. Your site needs to catch up to show them all. If you feel like it’s taking too long, contact us. We’re here to help!
Alternatively, if you feel you can’t take the wait, you can go to your account, download the latest versions and do the following: Backup everything. Deactivate all PeepSo plugins from your site. Install the new versions from the zip files, just like on the first installation.
Chapter One – Performance
AJAX & Chat
With big communities, the amount of background calls required can grow quite a bit, especially if your users are using Chat a lot. Based on some reports and research based on them, we implemented more granular control over the intensity of these calls.
The Advanced Config tab was expanded with a new group called AJAX call intensity. There you can control how often an AJAX call is allowed to run when it’s active (for example people are typing in a chat window or there are new messages).
The old setting “AJAX Call Intensity” is now used to define how often a call can run when it’s idle (no new messages or any other activity). It also still controls the generic notification query (checking for new notifications, friend requests etc).
The third setting is a multiplier and it defines how quickly (or how slowly) the script should switch between active and idle intensity if there is no activity.
Sounds complicated? Perhaps. But the bottom line is: lower number in any of these 3 settings means more “instant” experience for the users but also means higher server load. So if you feel like your site is underperforming and/or your host complains a lot about PeepSo AJAX calls, you might want to play with these settings: essentially, raise them gradually, especially the active one.
These three settings control what we call the smart timing and for now it was only implemented in the Chat windows. In this version we also made sure the “I am typing” feature does not flood the server and respects the aforementioned settings. Next version will include smart timing in the legacy single message view.
Various PeepSo plugins have used page loads in order to run their maintenance tasks. For example, Hashtags would rebuild a few tags/posts once in a while, Friends would make sure the followers table is up to date etc. These maintenance tasks were spread across multiple plugins and fired on their own discretion. It all worked great until really big communities showed up, with lots of posts and users to digest. Since we do need these scripts to run, we redesigned the way they are called.
This needed some major under-the-hood changes. Now everything that is connected to maintaining, cleaning up, recounting, etc is centralized in one master PeepSo Maintenance event. The event is hooked to a WordPress cron, so by default it will still fire upon a page load for some users. But just like with the MailQueue, if the WordPress cron starts to slow down page loads, the administrator can now completely disable it and instead use an external cron job to perform the maintenance tasks.
This should lower the recourses usage and limit the impact these scripts have on perceived loading times. On top of that, each little script’s performance is separately measured, so in case of resource usage spikes we will be able to step in and quickly debug without the need of digging through QueryMonitor outputs.
Chapter Two – User Flow
These improvements are based on many requests, questions and suggestions made by our customers. We give you even more control over the user registration and activation and make sure a process of registering via another plugin is also clean and flexible.
Disable PeepSo Registration
In case you wish the user registrations to be handled by another plugin (for example WooCommerce, LearnDash, EDD, PMP etc) you now have the option to completely disable PeepSo registration. This option will make sure all of PeepSo registration (links, forms, etc) \ becomes fully invisible to the user. This will also work for completely closed communities that don’t want any registrations at all such as intranets, small family-only websites etc.
Username cleanup & changes
Since some of the third party plugins create users with their e-mails set as usernames, you run into a risk of exposing the email in PeepSo profile URLs, eg firstname.lastname@example.org/photos/. This is why there is a new setting: clean up third party registrations. When enabled, PeepSo will step in during any registration process and make sure to clean up usernames that look like emails. In this scenario, the username email@example.com would be automatically changed to “example” and in case it’s taken, a number will be added until a free username is found (eg example3). This setting is not retroactive, so it will not touch the old accounts – only new ones.
On top of that, the admin can also allow username changes – just to make sure everyone has a profile URL they like.
The admin can now define an activation redirect in addition to the log-in and log-out redirects. We are also not displaying the “resend activation” link until the user actually needs it (ie tries to log in without confirming their e-mail address).
We fixed a bug where under some circumstances two activation codes would be resent if user requested it and/or sometimes the link would be wrong or expired.
Both “forgot password” and “resend activation” forms are now also secured by ReCaptcha.
Users can now delete their GDPR export in order to request a new one. Old exports are automatically deleted after a week in order to free up disk space. We are also shipping some minor improvements and fixes. You can see the full changelog here.