Hi,
There are tests for the value "order" in hikashopCheckChangeForm so I don't see what you're talking about.
This is the code of that function which test the custom fields on the checkout:
for(var i = hikashopFieldsJs['reqFieldsComp'][type].length - 1; i >= 0; i--) {
elementName = 'data['+type+']['+hikashopFieldsJs['reqFieldsComp'][type][i]+']';
if(typeof(varform.elements[elementName]) == 'undefined')
elementName = type+'_'+hikashopFieldsJs['reqFieldsComp'][type][i];
elementToCheck = varform.elements[elementName];
elementId = 'hikashop_'+type+'_'+ hikashopFieldsJs['reqFieldsComp'][type][i];
el = d.getElementById(elementId);
if(elementToCheck && (typeof el == 'undefined' || el == null || typeof el.style == 'undefined' || el.style.display!='none') && !hikashopCheckField(elementToCheck,type,i,elementName,varform.elements)) {
if(typeof(hikashopFieldsJs['entry_id']) == 'undefined')
return false;
for(var j = 1; j <= hikashop['entry_id']; j++) {
elementName = 'data['+type+'][entry_'+j+']['+hikashopFieldsJs['reqFieldsComp'][type][i]+']';
elementToCheck = varform.elements[elementName];
elementId = 'hikashop_'+type+'_'+ hikashopFieldsJs['reqFieldsComp'][type][i] + '_' + j;
el = d.getElementById(elementId);
if(elementToCheck && (typeof el == 'undefined' || el == null || typeof el.style == 'undefined' || el.style.display != 'none') && !hikashopCheckField(elementToCheck,type,i,elementName,varform.elements)) {
return false;
}
}
}
}
It does the check for the custom user fields, the custom address fields and the custom order fields based on what is given to that function in the first parameter. If you remove that call, it won't check the custom order fields on the checkout and thus you'll be able to finish a step with the "fields" view on the checkout even if you have required custom order fields that are not filled. So it's not redundant, it's the way it should be.