Just like any other WordPress plugin, myCRED does come with limitations. The plugin was built to handle points on a WordPress powered website. So it can not be used outside WordPress. It should also not be used for non-point related tasks as the plugin was written for that purpose.
A lot of effort has been put in making the plugin as developer friendly as possible. Any WordPress developer with solid understanding of how WordPress operates and PHP knowledge should be able to extend / adjust myCRED. I have put together a dedicated chapter for developers to help you get going.
“There is no such thing as a free lunch.”
Every feature in myCRED comes at a cost, a cost that your server and database will have to pay. While a lot of effort has been put into making myCRED as efficient as possible, this can only be taken so far without sacrificing security or stability.
myCRED comes packed with cool features that can be tempting to play around with. If your website has a “lot” of traffic or transactions, your server will be able to handle the extra load of work that myCRED will need to do for each feature. Some features are “cheaper” than others, while others depend on the options you select.
It is hard to give exact limitations since this depends on a large number of different factors. I have put together a list of some of the features that have the potential to be a heavy burden on your server:
||Periodic||This feature is scheduled so the heavy work is done when the schedule task is running. This can be very expensive with sites that have a large number of daily transactions (1000+ log entries / day).|
||Constant||Each content view involves making sure users can not get points twice for viewing the same content, make sure any hook limits that are set is enforced and potentially updating a users balance. If you have a lot of daily traffic (1000+ views / day) or large number of content being published (100+ content / day), this feature can quickly become very expensive to run.|
||Constant||Rewarding users for every x number of seconds they watch a video is cool, but if you have a large number of users, viewing a large number of content, this feature can push your server over the edge pretty quickly. This is one of the main reasons why the hook can only be used for one point type at a time (if you use multiple types).|
||Periodic||Leaderboards can quickly become expensive based on the number of users you select to show. It is not recommended to generate leaderboards with more than 100 users, at least not without some form of caching.|
myCRED does not provide a “withdrawal” function, where users can convert points into real currency (the opposite of the buyCRED add-on). This is due to legal reasons. I am selling gaming add-ons in my store, and with a withdrawal system, you could easily classify this is as a casino product which is subject to regulations.
There are however no built-in limitations for such a feature to be custom built. Please note that I am not available for building this as a customization!
While myCRED aims to keep transactions as secure as possible, the plugin itself is only as secure as the environment it is used in. It is very important that you select who you give access to your myCRED settings, especially your log, as it serves not just as a way to enforce limits, but also for accountability.
It is also very important that users who can publish content on your website, can use the shortcodes that myCRED provides! You should be especially careful with the mycred_give shortcode which can be used to generate points!