Looks good, but I have one--maybe two-- suggestions
Perhaps instead of having one setting for either one use or infinite use codes, maybe have a setting for each code so one can be a one use code and another can be infinite use code
And suggestion number 2, maybe having a set number of uses for a code, so a server owner could tweet something like "first 5 players to use code X get rank Y"