2015-10-13 8 views
6

私は、ビジネス界のフィールドをWoocommerceのチェックアウトで必須にしようとしていますが、フィールドが実際に表示されている場合のみです。Woocommerceのチェックアウトフィールドは、表示されている場合にのみ必要です

私は2つのオプションを表示するwoocommerce_form_fieldでラジオボタンフィールドを作成しました。私はラジオボタンがチェックされている「ビジネスの入力フィールドの可視性を切り替えるJavaScriptを使用して:「ビジネスの入力のための

jQuery(document).ready(function() { 
$('input[type=radio][name=customer_type]').on('change', function() { 
    $('.checkout-bedrijfsnaam').slideToggle(); 
}); }); 

デフォルトのCSSは次のとおりです。

.checkout-bedrijfsnaam { display:none; } 

はまた、私は「ビジネスを作りました『:すべての偉大なるだろう

$address_fields['billing_company']['required'] = true; 

が、しかし:「ビジネスのフィールドがtoggでwoocommerce_billing_fields『と』woocommerce_shipping_fields 'フィールドはWoocommerceフィルター使用して必要な』をオフになって表示されていない、私は 'フィールドが必要です'警告を取得し、フォームを送信することはできません。フィールドを必須にすることは可能でしょうか?それは実際に表示されているときだけですか?

shipping_fieldsのフィールドは同じ方法で動作するため(チェックボックスがオフの場合は必要ありません)、私の周りに頭を置くことはできません。

+0

条件付きでファイルを作成してみてください。それはあなたの仕事を完成させるか、フィルタがあればそれを使って条件付きで必要とします。 –

+2

フィールドが作成されたサーバー側で、条件がクライアント側(ラジオボタンが選択されている)なので、これはオプションではないと思います。 – Marc

+0

私は 'woocommerce_checkout_process'アクションを使用しており、サーバー側の検証を行い、検証が失敗したときにwc_add_noticeを呼びます。しかし、これの欠点は、UIが矛盾していることです(フィールドが必要であることを示すために星/赤の境界線はありません) – Marc

答えて

0

チェックがクライアント側のみである場合、display: none;でそれを隠す代わりに、DOMから削除することができます。必要なときにもう一度追加します。あなたはすでにそれのためのトグルを持っています。

関連する問題