I think etiquette needs to change on 'No gifts, please'. I don't find anything offensive about that, at all. Not even the assumption that it would otherwise be a gift giving occasion.
Asking for charitable donations is another matter, though. If they had a wedding website with a registry list and they put 'Donations to X or Y charities' on the registry, that would be OK. It is the modern day equivalent to word of mouth, IMO. And where it gets really sticky is if charities X and Y are not charities a guest is willing to support. Does the guest then donate to a charity of their own choice that the happy couple may not support? Or does the guest decline to donate and only give a card? Or does the guest go against the wishes of the happy couple and buy them a physical gift? I think I would just give them a cash gift and if they chose to donate it to their charity, so be it.
guihong has it right for what the OP should do, I think.