Steps to reproduce
- create a checkbox type shopper field
- place an order
- open the order in admin
- if you didn't check the checbox during the order, check it and save the order -> it'll store the checked state
- uncheck the checkbox and save the order
- the checkbox is still checked
It's because checkbox isn't processed on post if it's not checked.
Quick fix: in administrator/components/com_virtuemart/orders/tmpl/order.php there is a
foreach ($this->userfields['fields'] as $_field ) {
echo ' <tr>'."\n";
After the foreach I put this
if ( $_field['type'] == 'checkbox' )
{
echo '<input type="hidden" name="' . $_field['name'] . '" value="0" />';
}
So if the checkbox is not checked and submitted, there is a "default 0 value" from the dummy hidden field