2015-02-09 2 views
2

У меня есть веб-магазин электронной коммерции, использующий woocommerce На странице проверки мне нужно активировать настраиваемое обязательное поле «Codice Fiscale», если для страны биллинга установлено значение «Италия», в противном случае дополнительное поле должно удалить код в моем детской теме functions.php являетсяПользовательское поле для заказа Woocommerce по стране

add_filter('woocommerce_checkout_fields' , 'field_cfpiva1'); 

function field_cfpiva1($fields) { 
$fields['billing']['billing_cf'] = array(
    'label'  => __('Codice Fiscale', 'woocommerce'), 
    'placeholder' => _x('Codice Fiscale', 'placeholder', 'woocommerce'), 
    'required' => false, 
    'class'  => array('form-row-wide'), 
    'clear'  => true 
); 

return $fields; 
} 

add_filter('woocommerce_admin_billing_fields' , 'admin_field_cfpiva1'); 

function admin_field_cfpiva1($fields) { 
$fields['cf'] = array(
    'label' => __('Codice Fiscale', 'woocommerce'), 
    'show' => true 
); 
return $fields; 
} 

Но я не имею ни малейшего представления о том, как сделать это динамически на изменении страны

ответ

0

Я пытаюсь достичь чего-то очень похожего, но вместо этого отображать настраиваемое поле, когда выбран конкретный способ доставки.

Раньше у меня был следующий jquery, успешно работающий, добавив его в шаблон cart-shipping.php, но я не могу заставить его работать в поле «состояние». Возможно, это может помочь (как мы) как-то достичь ответа мы оба после ...

<script> 
    $(document).ready(function(){ 

     if ($('#shipping_method_0').val() == 'flat_rate:delivered-vic-only'){ 
      $('#newfield').show(); 
     } 

     $('#shipping_method_0').on('change',function() { 
       if ($('#shipping_method_0').val() == 'flat_rate:delivered-vic-only'){ 
       $('#newfield').show(); 
      } else { 
      $('#newfield').hide(); 

      } 
     }) 
    }) 
    </script> 
+1

Заслуга #Sonic Advisor - код выше изменяет способ доставки, чтобы показать/скрыть класс. Я разместил ответ ниже, основываясь на приведенном выше коде, который изменяет поля формы на основе как страны биллинга, так и страны доставки. Спасибо, Sonic Advisor! – Jason

2

Я знаю, что этот вопрос немного старый, но здесь было мое решение изменить MaxLength в почтовый индекс поле. Мой клиент использовал плагин доставки таблиц WooCommerce, а в США, если введенный почтовый индекс содержал полные 9 цифр (xxxxx-xxxx), плагин не мог бы правильно рассчитать доставку. Мы взимали международные тарифы за людей в одном и том же государстве.

Я собирался использовать крючок, чтобы ограничить поле post_code до 5, но во многих странах есть более длинные строки кода (например, Канада, которая равна 6). Благодаря #Sonic Advisor. Я был в состоянии быстро изменить код, чтобы выборочно изменить атрибут MAXLENGTH поля формы post_code, как показано ниже:

<script> 
//Limit zip code to 5 digits for United States ONLY 
    jQuery(document).ready(function(){ 

     if (jQuery('#billing_country').val() == 'US'){ 
      jQuery('#billing_postcode').attr('maxlength','5'); 

     } 

     jQuery('#billing_country').on('change',function() { 
       if (jQuery('#billing_country').val() == 'US'){ 
       jQuery('#billing_postcode').attr('maxlength','5'); 
      } else { 
      jQuery('#billing_postcode').attr('maxlength','15'); 

      } 
     }) 

     if (jQuery('#shipping_country').val() == 'US'){ 
      jQuery('#shipping_postcode').attr('maxlength','5'); 

     } 

     jQuery('#shipping_country').on('change',function() { 
       if (jQuery('#shipping_country').val() == 'US'){ 
       jQuery('#shipping_postcode').attr('maxlength','5'); 
      } else { 
      jQuery('#shipping_postcode').attr('maxlength','15'); 

      } 
     }) 
    }) 
    </script> 
Смежные вопросы