The Banking Add-on
The Banking add-on has received a complete re-write in 1.7 in order to accomodate some long awaited features. In this guide I will introduce you to these new features in more detail.
Make sure you backup your website before updating to 1.7 in case something goes wrong during the update process. If you have any custom code that you have added to adjust how this add-on works, please remove them temporarily before updating to prevent issues during the update process.
Better Schedule Management
Unlike previous versions, you can now easily manage the schedule for when the daily compounding should occur along with payouts. The service will now always show you the next schedule and it allows you to change this at any time.
You can now also select to exclude users based on role and not just a list of IDs. All though you can still use IDs if you prefer (or combine the two).
For those who are experiencing issues with this banking service, I have written a debug tool that you can download for free. This debug tool, once enabled allows you under the “Tools” section in your admin area to troubleshoot common issues and if needed, compound and payout interest retroactively.
While you were only able to setup one recurring payout schedule per point type in previous versions, in 1.7, you can now setup multiple schedules for each point type.
The service settings have been re-designed and re-written for an easy overview of the schedules you have setup and their status.
Both the Recurring Payouts and the Compound Interest services uses the WordPress Cron to schedule events. If you have disabled this on your website, neither service will work and you will see a warning message. This warning message will be visible even if you have an alternative cron manager setup.
New Recurring Payouts
To add a new recurring payout, you need to click on the “Add New” button which will open a modal window. While most settings are the same as in previous versions, you can now set an optional maximum balance requirement and you can select to filter who gets or doesn’t get points based on IDs and/or roles.
Once saved, the banking service will check the number of users that qualify for the payout based on your setup. The payout will be scheduled even if no users qualify incase users might become qualified later.
Remember that you must enable the service and save before you create a recurring payout.
Tracking Payout Progress
You can always see the latest status of your recurring payouts on this page. Hovering your mouse over a specific schedule will show you the two options to “View” or “Delete” a schedule. Clicking on “View” will bring up the schedule modal where you can see the amount of points that has been paid out or the status of the schedule right now.
The above mentioned debug tool can be used to debug this service as well.
The central bank service remains the same as before. I have however updated all other services to take into account this feature. When you setup a recurring payout and have the central bank service enabled, you will see an option where you can select if you want to payout even if the central bank runs out of funds or if payouts should be stopped when this happens.
If you have custom code that adjusts how the Banking add-on works, it is important that you remove this before you update to 1.7 and then re-insert it once you have updated. This is because most of the functions used by this add-on has been replaced and if the code uses these functions, you could end up with a fatal error (white screen of death). If this is happening to your code, please open a support ticket and include the code snippet you are using for me to help you update it. The same goes for installations that does not use custom code snippets but still experience issues.
Finally I feel the Banking add-on now has all the features an add-on like this should have and I do not plan on adding any further features. You can however submit a request for a quote if you need further custom features and I will be happy to help you out.
Please do not post issues or code snippets in the comments section as they will be deleted.