Resources and ticket limits – are there any limitations for WooCommerce Lottery? We cover this topic in our tutorial about plugin limits. WooCommerce Lottery plugin is basically limited with hosting solution that your WordPress installation runs on. There is no limit how many tickets can be sold at once or how many numbers can you list for lottery but usually on lower spec hosting (especially on cheaper shared hosting) you will hit limit around couple thousands ticket purchases – orders (around 3 000 to 5 000 orders). This would be same as if you would run regular WooCommerce web shop and problem is easily resolved by upgrading your hosting (you can contact us for suggestion).
There are couple of limits you can hit (for this example we will consider WordPress has only WooCommerce and our plugin installed and nothing else) – how many different users (orders) have purchased tickets in your store, more orders mean you need more resources for order data and its custom fields. Another is having a lot of tickets for a lottery say 1 million – this is not problem unless you want pick number table displayed which becomes cumbersome and we strongly suggest agains that (just use randomly assign ticket number instead). Sometimes lot of tickets cause JS issue in backend for auction history export table – for that we have option in Lottery Settings to disable this feature.
Cronjob that we suggest you install is lightweight and is used to finish lottery on time in case WordPress does not have enough traffic to run its internal cronjob. For busier websites this can be skipped, everything will work fine and in most cases lotteries will be ended on time.
When planning big lottery site with many orders you need to keep on your mind that except orders we log data to two log tables used by our plugins called wc_lottery_log and wc_lottery_pn_log which should not be big problem since only integer values are logged to those tables.
Another thing to consider is raising PHP memory limit using WordPress constants. Sometimes, it’s a good idea to tailor WordPress’ memory allocation separately for the frontend and backend. That’s where WP_MAX_MEMORY_LIMIT comes in. WP_MAX_MEMORY_LIMIT allows you to set a different memory limit for WordPress’ administration dashboard. This is useful because certain administration tasks require more RAM. Below is an example of how you can use WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT together.
define( 'WP_MEMORY_LIMIT', '512M' );
define( 'WP_MAX_MEMORY_LIMIT', '2048M');
In general cheapest dedicated server (quad core cpu and 8GB – 16GB memory, normal disk drive no need for SSD) should enable site owner to run big lottery website with hundreds daily orders without performance issues. If you go for cloud solution you will need to get some mid priced solution since from our experience cheap cloud / vps proved to be problematic (probably due to heavy resource throttling done by their service providers). Further scaling can be done by separating app and db and have them on separate servers / vps or cloud instances.
We strongly suggest that before going to production you test all of these cases, for example try to purchase 1 million tickets or do some stress testing and see what is happening in your particular setup. You do not want to end up migrating website to new setup during marketing campaign and fixing things while orders are coming in.
Other than that we can suggest keeping number of active plugins to minimum, do some WordPress / WooCommerce optimization and use 3rd party / external SMTP server for mail notifications (offload main app server and better inboxing rates).