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.
Maintenance scripts
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 profile/?example@example.com/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 example@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.
Other improvements
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 (i.e. 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.
Everything else
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.