Удалить обязательный атрибут woocommerce - PullRequest
0 голосов
/ 10 января 2020

Я проверил, прежде чем писать этот вопрос, если на форуме был другой пользователь с той же проблемой, но ничего мне не пригодилось. Я редактирую плагин, в котором разработчик добавил необязательное поле к полям 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;
    }

}

как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...