@Ruslagt

Как скрывать/показывать поля на странице оформления заказа?

Привет всем!
есть код который скрывает/показывает поля, при загрузке страницы он скрывает поле загрузки файла(изначально выбран вариант при котором скрыто это поле), но при выборе другого способа оплаты код уже не работает.

Этот код я добавил в шапку сайта, при загрузке сайта первоначально выбран первый тип и так поля с загрузкой файла немедленно скрывается. Но с другими вариантами ничего не происходит с кодом. Я считаю, что существует своего рода внутренняя загрузка или AJAX загрузки самой платежной формы, и поэтому код на дальнейшем не работает. вы можете проверить его сейчас на сайте - https://main.parovozchips.com/checkout

jQuery(document).ready(function($) {
  function handlePaymentMethodChange() {
  console.log('handlePayment');
    var selectedPaymentMethod = $('input[name="transaction_type"]:checked').val();
    var $addressField = $('#billing_address_2_field');
    var $postcodeField = $('#billing_postcode_field');
    var $fileUploadField = $('#billing_file_uload_field');

    $addressField.hide();
    $postcodeField.hide();
    $fileUploadField.hide();

    $addressField.find('input').prop('required', false);
    $postcodeField.find('input').prop('required', false);
    $fileUploadField.find('input[type="file"]').prop('required', false);
console.log(selectedPaymentMethod);
    if (selectedPaymentMethod === 'type1') { console.log(1);
      $addressField.show();
      $postcodeField.show();
      $addressField.find('input').prop('required', true);
      $postcodeField.find('input').prop('required', true);
    } else if (selectedPaymentMethod === 'type2') { console.log(2);
      $fileUploadField.show();
      $fileUploadField.find('input[type="file"]').prop('required', true);
    } else { console.log(3); }
  }

  handlePaymentMethodChange();
  $('input[name="transaction_type"]').change(handlePaymentMethodChange);
});
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 1
wppanda5
@wppanda5 Куратор тега WooСommerce
WordPress Mедведь
Это работает не так

Поля котные значимые и от них должно что-то в форме завесить должны иметь класс update_totals_on_change, тогда при их изменении запускается автоматически update_checkout.

Пи формировании формы, если вы делаете так, как в материале на который приводил ссылку в предыдущем ответе, проверяете наличие отсутствие в request ваших триггеров для показа / отсутствия полей и формируете форму согласно им
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы