Gift-card Balance or Store Credit
However, I would suggest instead of promo codes that we simply maintain a "store credit" for each member, kind of like how on Amazon you have a gift card balance. You could use the balance as payment for anything on the Mountaineers website like books, courses, donations, etc.
You could use it for things like volunteer recognition (eGift-cards) but, more importantly, we could use it to have a unified, consistent policy toward late course cancellations.
Prior to the course registration closing date, students could cancel for a full refund less the cancellation fee (the current policy). However, for those who cancel after the course has finished, our "default" solution, rather than throw it to the committee or course lead (who I guarantee want no involvement in adjudicating any "case-by-case basis") would be to credit the cost of the course fee to the member's gift-card balance.
In this way, the member would be able to use the amount toward a future offering of the course, or any other course, or any merchandise, without the club losing any money because the gift-card balance would not be redeemable to cash (which is, I believe, pretty standard practice).
In our branch, our policy tends to be, if you cancel after the course starts, you get no refund but you can take the course the next year at no additional charge. This creates admin burden for the course leads (especially if there's turnover) and harms the club because it would stand to make more if the student paid the current year's course fee (which is usually higher).
I would argue that this approach is:
1) ideal for volunteers since it will largely insulate them from these kinds of frustrating requests and means they don't have to track down old emails and old roster notes to adjudicate requests.
2) ideal for the club because it decreases revenue lost and increases future revenue by making students pay the future year course fee
3) fair to students since it ensures they never "lose" their fee and gives them more options for applying their course fee (which is also great if someone takes scrambling and realizes halfway through it's not for them!)