Pentru magazinele online care utilizează WooCommerce, este adesea util să diferențiem între persoanele fizice și cele juridice în timpul procesului de checkout. În acest tutorial, vei învăța cum să adaugi o opțiune radio înaintea formularului de facturare, care permite utilizatorilor să selecteze tipul de facturare (Persoană Fizică sau Persoană Juridică), și să afișezi câmpuri adiționale pentru persoanele juridice.
Cod complet pentru implementare
Adaugă următorul cod în fișierul functions.php
al temei tale active sau într-un snippet folosind pluginul Code Snippets.
// Funcția pentru adăugarea opțiunii radio înaintea formularului de facturare
add_action('woocommerce_before_checkout_billing_form', 'add_radio_selection_checkout');
function add_radio_selection_checkout($checkout) {
echo '<div id="my_custom_checkout_field"><h2>'.__('Introduceți datele dvs').'</h2>';
// Adăugarea opțiunii radio pentru selectarea tipului de facturare
woocommerce_form_field('account_type', array(
'type' => 'radio',
'class' => array('my-field-class form-row-wide'),
'label' => __('Factura o facem pe? '),
'required' => true,
'options' => array(
'personal' => __('Persoană Fizică'),
'business' => __('Persoană Juridică')
)
), $checkout->get_value('account_type'));
// Adăugarea câmpului pentru codul fiscal și ascunderea acestuia inițial
echo '<div class="additional-fields" style="display:none;">';
woocommerce_form_field('tax_code', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'label' => __('Cod Fiscal'),
'required' => true,
'placeholder' => __('Introduceți codul fiscal')
), $checkout->get_value('tax_code'));
echo '</div>';
echo '</div>';
?>
<style>
.additional-fields {
display: none;
}
</style>
<?php
}
// Funcția pentru a afișa/ascunde câmpurile în funcție de opțiunea selectată
add_action('wp_footer', 'my_custom_checkout_field_script');
function my_custom_checkout_field_script() {
if (is_checkout()) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
// Ascunde inițial câmpurile pentru persoane juridice
$('input[name="billing_wooccm11"]').closest('.form-row').hide();
$('input[name="billing_wooccm12"]').closest('.form-row').hide();
// Setează opțiunea predefinită pentru persoana fizică
$('input[name="account_type"][value="personal"]').prop('checked', true);
// Ascunde sau afișează câmpurile în funcție de opțiunea selectată
$('form.checkout').on('change', 'input[name="account_type"]', function() {
if ($(this).val() == 'personal') {
$('input[name="billing_wooccm11"]').closest('.form-row').hide();
$('input[name="billing_wooccm12"]').closest('.form-row').hide();
} else {
$('input[name="billing_wooccm11"]').closest('.form-row').show();
$('input[name="billing_wooccm12"]').closest('.form-row').show();
}
});
});
</script>
<?php
}
}
Ce face acest cod?
- Adaugă o opțiune radio pentru tipul de facturare:
- Utilizatorii pot selecta între „Persoană Fizică” și „Persoană Juridică.”
- Adaugă câmpuri suplimentare pentru persoanele juridice:
- Un câmp pentru „Cod Fiscal” apare doar dacă utilizatorul selectează „Persoană Juridică.”
- Afișare dinamică a câmpurilor:
- Câmpurile suplimentare sunt ascunse implicit și sunt afișate doar atunci când utilizatorul selectează „Persoană Juridică.”
- Setare implicită:
- Tipul de facturare este setat automat pe „Persoană Fizică.”
Cum implementezi acest cod?
Metoda 1: Folosind pluginul Code Snippets
- Instalează și activează pluginul Code Snippets.
- Creează un snippet nou cu numele „Tip facturare checkout.”
- Lipește codul de mai sus în câmpul PHP al pluginului.
- Salvează și activează snippet-ul.
Metoda 2: Direct în fișierul functions.php
- Conectează-te la serverul site-ului tău prin FTP/SFTP.
- Navighează la directorul temei active:
wp-content/themes/[tema-ta]/
. - Deschide fișierul
functions.php
. - Lipește codul de mai sus la finalul fișierului și salvează modificările.
Testare
- Accesează pagina de checkout:
- Verifică dacă opțiunea radio este afișată înaintea formularului de facturare.
- Selectează tipul de facturare:
- Selectează „Persoană Fizică” și verifică dacă câmpurile suplimentare sunt ascunse.
- Selectează „Persoană Juridică” și verifică dacă câmpurile suplimentare apar.
- Completează și plasează comanda:
- Asigură-te că datele completate sunt corect trimise și salvate.
Personalizări suplimentare
- Adaugă mai multe câmpuri pentru persoanele juridice:
- De exemplu, poți adăuga un câmp pentru numele firmei sau adresa sediului.
- Schimbă textul afișat:
- Actualizează textul din opțiunile radio sau etichetele câmpurilor direct în cod.
- Stilizează câmpurile:
- Poți ajusta stilul câmpurilor folosind CSS personalizat.
Concluzie
Acest cod adaugă o funcționalitate utilă pentru magazinele WooCommerce care doresc să diferențieze între persoanele fizice și juridice în timpul procesului de checkout. Dacă ai nevoie de alte personalizări, lasă un comentariu sau contactează-ne pentru ajutor!