Hi @jambalaya44,
I hope you’re doing well!
About WordPress and PHP
Simply put, WordPress is the software that runs your website. And WordPress needs a few engines to run.
One of those engines is PHP, it’s the coding language WordPress is based upon; and so are all plugins for WordPress.
The engine (PHP) is constantly being worked on by The PHP Group, and within that engine a lot of features and enhancements are being put in place.
Most importantly, PHP is one of the backbones for security and stability. So it’s always good to use a supported version:
View supported versions.
What can you do?
Well, TSFEM deactivates itself if it detects an unsupported environment. It’s not a bug, it’s actually a fail-safe; so your website won’t crash ??
To use TSFEM, you need to ask your host to update your website to a supported PHP version. It’s not only much more secure, but your website will be faster too! Especially if you upgrade to PHP 7 or higher.
If your host doesn’t comply, then I’m afraid you’ve chosen the wrong hosting package. Hosts should care about security, performance and stability.
Onto the technicalities
TSFEM uses PHP 5.4 traits. Traits are little packages that contains reusable code as-is for class objects.
Many of those traits include a standard way of setting up (constructing) the classes, this is done to increase security.
View the traits in overload.trait.php
Unfortunately, PHP versions below 5.5.21 (branch 5.5)/5.6.5 (branch 5.6) suffer from bug #65576.
That bug allows stacking those security traits into otherwise facade objects (chains of classes), so your website would crash when activating the plugin.
In layman’s terms: Although function names can’t be overwritten (everything must be unique), the bug prevents default behavior of PHP when it comes to objects.
In advanced terms: PHP’s class structure and “object inheritance” allows for overwriting of otherwise unique names, depending on their “visibility”. The traits contain magic method names, which are required for enhanced compatibility, security and object inheritance.
Whew! That’s a lot!
But I hope this explains the issue you’re facing :).