There is not a way to de-activate the Credit Card button based on a condition.
However, I can think of a couple options you could do:
Option 1 (easiest) would be create a rule based on payment processed via Credit Card that would show a popup for the user to enter the 4 digit code. (Add a constraint if the Ticket Tag is null.) This will show a popup after the Credit Card payment, if the ticket tag is null.
Option 2 Create another ticket type for ordering that the Credit Card is not mapped to. You will need 2 new rules, one rule when the Ticket Tag is selected (event) it would change the Ticket Type to your standard ticket type (using the action: Change Ticket Properties). You will also need to add another rule when a ticket is paid it would change the ticket to the your standard ticket type. This will force the user to enter the 4 digit code before processing the credit card payment. Other payments (Cash, Voucher, etc) would be processed normally (the payment screen would not have a Credit Card payment option), after the other payment the second rule would change the ticket type to your normal ticket type.
You can do this with Payment Processor, Use a script to ask for the 4 digits and require that before it processes the payment. I will explain in a moment