… And it worked incredibly well! Seriously, what were you hoping to read? Actually, I’m not here to tell you that WordPress is the best tool to do so, I guess that I could have used virtually any front-end frameworks, MongoDB & Node.js for my backend, and so on. I bet that would have been a fun project to do, but sometimes when you estimate a somewhat big project for a client, you have to stick to technology that you think will be the most effective to use for the developer and the client at the same time. Even if the project is big enough to keep you busy for a couple of months, it doesn’t mean that your client on the other side has an infinite budget for R&D and trial and errors on your end. This time, I decided to choose WordPress for some reason that I’ll list later. But first, let me talk about this cool project that we had to work on.

At the agency that I’m working right now, we were approached by a foundation who wants to reinvent their fundraising strategy by allowing people to make a donation, in exchange of a participation to their annual NHL Playoff Pool. At first, they wanted to do something as simple as receiving single $25 donation and giving only one participation to their users, while locking the user’s pool pick after he/she made them. The project took another step in complexity when they decided to allow multiple donations and infinite participations, while allowing the users to edit their pool selections until the first puck drop of the post-season. Those added features were nowhere frightening for what WordPress could do.

Now, here are some reasons why the last work went to WordPress:

We actually have to manage content only pages

Since WordPress is a great CMS and easy to use for anyone, it was a great choice for our client who could change his content has much has he wanted. We used a truckload of custom fields, so the client would have the best experience possible when adding or changing his website’s content, while limiting the chances of breaking anything crucial. With plugins like Yoast, we had the SEO portion covered for us.

Users can create account

When the user makes a donation, all the information can be saved in a user profile. The user can then edit them, change his communications preferences and have a look to his past transactions on the platform. Out of the box, we have the login and the lost password forms too, we just needed to style them.

Payments made easy

Donations are treated like products in WooCommerce. Doing so, we can easily feed donation receipts in the user’s account and accept payments from various providers, using those payment gateways’ officials plugins. A user wants a refund, for any given reason? No problem, you can do it with WooCommerce.

You can save custom data to user profiles

Using custom fields, it’s easy to save the users’ pool selections in the profile. It’s then really quick to get user’s choices to populate in the pool brackets table.

You can submit donation receipt in an automatic email

WordPress/WooCommerce is using wp_mail to send emails. A quick SMTP setup, and boom, your email notifications are ready to take off. WooCommerce send customized emails to the user when the transaction succeed. You can even link a PDF to your receipt email, so your users can easily print it for their tax declaration.

And you can do whatever you want

I want to loop through all the users and know who missed a prediction during first round? I can. I want to subscribe my users to an external mailing list after they make their donation? I can too. There is no limit, other than knowing a little PHP and WordPress/WooCommerce’s basic functions.

Some projects tend to push WordPress’ limits over the top, and this one wasn’t an exception. The one thing that you have to remember when building project like these, it to always code like you would reuse bits in your next project. Even if some components are built for a specific need, you don’t know when you’ll need these functionalities and that one time, it will be a total time saver.

On this, hope you’ll enjoy the rest of the 2019 playoffs!