Plugin – Craftcation Workshop Selection
Website URL
Project Role
Lead Developer / Designer
Image Date
March 1st, 2025
Technologies Used
Back-End Development, Development, PHP, Project Management, Wordpress
Project Description
After completing the Craftcation Website Build, I began work on the functional portion of the site.
Craftcation Conference attendees would be allowed to attend special workshops, covering a large variety of topics; craft techniques, small business accounting and marketing - you name it! Unfortunately, space was limited for some of the workshops, and so they required preregistration, and a waitlist system. Prior to this, each workshop was purchased individually on an Event Hosting platform, and it was impossible for anyone to see their schedules - customers and managers, alike!
Our new system matched every Workshop page to a "Workshop Selection" page, displaying the portions of the event schedule which required reservations. Here, each timeslot displayed a dropdown listing all "Sessions" - a single occurrence of a Workshop. Once your selections are made, you can save your registration to apply the changes. Old reservations are cancelled automatically, preventing anyone from selecting two workshops for the same timeslot.
Another major feature of a Workshop was when it had sold out, attendees could add themselves to a special Waitlist (unique for each Session). The table at the bottom of the Workshop Selection page displays all current Waitlist registrations, as well as your current position. Whenever a cancellation happens, the first person on the list is contacted via email, and has 24 hours to register for that Workshop - after which, they're removed from the list, and the next person is contacted.
Finally, I created a series of support documents in Google Docs, which contained hyperlinked tutorials for their support staff, and later for their attendees. This process not only familiarized the staff of better understanding what issues they were seeing, but also how to document information to attendees at launch time.
Other Notes
This project was built around using the WooCommerce REST API, in order to manually generate orders, parse open orders, and process refunds. The overall process here was fairly straightforward, and didn't present a ton of issues. While it was originally built as a CPT with a Custom Database, it quickly became apparent that adopting WooCommerce's existing functionality would be easier to process long-term.
Additional features were added when we got closer to launch, including multiple sessions for each Workshop, separating Workshops into ones that did/didn't require registrations, and displaying the Waitlist Table itself. While some of these features made perfect sense, they added to our project time, and caused us to run behind schedule.
Note: This project is currently scheduled to be restructured using an JS/AJAX Workshop Selection module. While the work itself didn't have issues, the overall server demand caused issues at the initial launch. Switching to a JS/AJAX system would prevent this, and is slated for future development.