Tento snippet ponúka možnosť zobraziť/skryť polia v pokladni objednávky pomocou zaškrtávacieho políčka (checkbox). Môže sa to napríklad hodiť, ak potrebujete schovať polia IČO a DIČ, aby zbytočne nezaberali priestor a nerušili „nefiremných“ zákazníkov. A ak by váš zákazník chcel nakúpiť na firmu, jednoducho začiarkne políčko „Nákup na firmu – IČO, DIČ“ a elegantne sa mu zobrazia polia pre zadanie týchto údajov. Schovávať odporúčam len nepovinné polia.
Za normálnych okolností sú polia IČO a DIČ schované a po zaškrtnutí políčka „Nákup na firmu“ sa polia IČO a DIČ zobrazia.
Tento kód vložíte ideálne do nejakého svojho malého pluginu, alebo do functions.php v aktívnej šablóne:
add_filter( 'woocommerce_checkout_fields' , 'mr_display_checkbox' ); function mr_display_checkbox ( $fields ) { $fields['billing']['checkbox_trigger_company'] = array( 'type' => 'checkbox', 'label' => __('Nákup na firmu - IČO, DIČ', 'woocommerce'), 'class' => array('form-row-wide'), 'clear' => true ); $fields['billing']['checkbox_trigger_company']['priority'] = 30; return $fields; } add_action( 'woocommerce_after_checkout_form', 'mr_conditionally_hide_show_field', 6); function mr_conditionally_hide_show_field() { ?> <script type="text/javascript"> jQuery('#billing_ic_field').hide(); jQuery('#billing_dic_field').hide(); jQuery('input#checkbox_trigger_company').change(function(){ if (this.checked) { jQuery('#billing_ic_field').fadeIn(); jQuery('#billing_dic_field').fadeIn(); jQuery('#billing_ic_field input').val(''); jQuery('#billing_dic_field input').val(''); } else { jQuery('#billing_ic_field').fadeOut(); jQuery('#billing_dic_field').fadeOut(); } }); </script> <?php }
Prvá funkcia mr_display_checkbox nám pridáva samotné zaškrtávacie políčko „Nákup na firmu – IČO, DIČ“ a druhá funkcia mr_conditionally_hide_show_new_field nám pomocou jQuery schováva a zobrazuje polia ktoré sme zadefinovali.
Do funkcie mr_conditionally_hide_show_field je potrebné pridať správne ID tagu input, ktorí potrebujete schovať. V mojom prípade sú to #billing_ic_field a #billing_dic_field.
Ak by ste potrebovali pomôcť s implementáciou podobnej funkcionality, tu je na mňa kontakt.
0 komentárov