This is just a front end solution. that is not really nice and clean… but thats what i had to do to satisfy my customers desire. place this code in the head of the website and make sure you have the jquery.
it hides the input field and adds two dropdowns to the div#s2member-pro-authnet-update-form-card-expiration-div
(change that name if you are using different then authorize.net forms). then on the change of the select fields it changes the value of the hidden input field to the value that we have month/year.
just a question to Cristian. i am not able to test it since it a paid website… is there anything that would prevent this solution from working.
$('input.s2member-pro-authnet-card-expiration').hide().parent().append('<select id="exp_month" style="width: 100px;"><option>Month</option><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option><option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option></select> / <select id="exp_year" style="width: 100px;"><option>Year</option><option>2012</option><option>2013</option><option>2014</option><option>2015</option><option>2016</option><option>2017</option></select>');
$('select#exp_month, select#exp_year').change(function(){
$('input.s2member-pro-authnet-card-expiration').val($('select#exp_month').val()+'/'+$('select#exp_year').val());
});