Я проверил, прежде чем писать этот вопрос, если на форуме был другой пользователь с той же проблемой, но ничего мне не пригодилось. Я редактирую плагин, в котором разработчик добавил необязательное поле к полям Woccommerce, имя этого поля: billing_invoice_type
, как вы можете видеть, у меня есть только скрытые поля с Jquery, когда пользователь в выбранном, выбирает значение чека
код:
var wcpdf_IT;
function wcpdf_IT_billing_customer_type_change(wcpdf_IT_country_selected) {
jQuery("#billing_cf_field label").html(wcpdf_IT.lblCommon);
jQuery("#billing_cf").attr("placeholder", wcpdf_IT.txtCommon);
if(jQuery("#billing_invoice_type").val() === "receipt" ) {
// RIMUOVI LABEL E CAMPO INPUT | NOME DELLA SOCIETÀ
jQuery("#billing_company_field ").hide();
// RIMUOVI LABEL E CAMPO INPUT | CAP
jQuery("#billing_postcode_field ").hide();
// RIMUOVI LABEL E CAMPO INPUT | INDIRIZZO
jQuery("#billing_address_1_field ").hide();
// RIMUOVI LABEL E CAMPO INPUT | APPARTAMENTO / SUITE
jQuery("#billing_address_2_field ").hide();
// RIMUOVI LABEL E CAMPO INPUT | CITTÀ
jQuery("#billing_city_field").remove();
// RIMUOVI LABEL E CAMPO INPUT | PROVINCIA
jQuery("#billing_state_field ").hide();
jQuery("#billing_cf_field label").html(wcpdf_IT.lblPersonal);
jQuery("#billing_cf").attr("placeholder", wcpdf_IT.txtPersonal);
}
wcpdf_IT_check_PEC();
}
проблема, если даже эти поля скрыты, они остаются с обязательным атрибутом, для устранения которого я попытался:
jQuery("#billing_city_field").remove();
jQuery("#billing_city_field").removeClass("validate-required woocommerce-invalid woocommerce-invalid-required-field");
jQuery("#billing_city_field ").removeAttr('required');
jQuery("#billing_city_field").hide().removeClass("validate-required");
но ничего, я знаю, что документация Woocommerce позволяет исключить входные данные через:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_city']);
return $fields;
}
Мне нужно что-то подобное, даже если этот код не работает, я пишу это, чтобы люди поняли
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
if($fields['billing']['billing_invoice_type'] == 'receipt')
{
unset($fields['billing']['billing_city']);
return $fields;
}
}
как мне это сделать?