I agree with Efendija. A checkbox would work fine.
Barring that, could a price of $0 and a new option in the currency (PWYW) work? $0 automagically sets the price to "free", so maybe "If price is 0 and currency is PWYW..." I dunno how this site works.