Я пытаюсь применить атрибут «required» к текстовому вводу, если установлен соответствующий переключатель. Ввод текста привязан к способам доставки WooCommerce и служит для клиента средством указания номера своего счета перевозчика. Мы обнаружили, что, так как поле не помечено как обязательное для плагина (для этого нет опций), клиент может обойти добавление номера счета и завершить транзакцию без оплаты доставки. Поскольку элементы генерируются WooCommerce и плагином Use My Shipper, я не имею прямого контроля над ними. Я пытаюсь добавить этот атрибут «required», чтобы заставить пользователя заполнить поле, если выбрана опция «Учетная запись оператора», которой управляет радиовход.
Моей первой мыслью было используйте немного jQuery, чтобы добавить атрибут после загрузки страницы:
var shipperRadio = '#shipping_method_3272_use_my_shipper7',
shipperNumber = 'input.shipper_number';
if($(shipperRadio).is(':checked')) {
$(shipperNumber).attr('required', 'required');
}
Это на самом деле работает, но WooCommerce перезагружает элементы и быстро удаляет атрибут, который я добавил к входным данным. Затем я попробовал базовое c событие нажатия, просто чтобы посмотреть, сработает ли оно.
$(shipperNumber).click(function(){
$(this).attr('required', 'required');
});
Те же результаты. На самом деле я заметил, что W C полностью удалил мой обработчик событий. Поэтому моей следующей мыслью было использовать php и добавить в мои функции действие. php, которое облегчит мои потребности. Однако, поскольку я относительно новичок в php, я не мог найти решение. Есть ли способ повторить это, «если установлен указанный c радиовход, а затем добавить обязательный атрибут для ввода текста» в php? Или это бесполезное упражнение?
Любая помощь в этом вопросе будет принята с благодарностью.