L’aggiunta di check boxes personalizzati nel checkout, per integrare quelli già presenti in WooCommerce, a volte potrebbe risultare necessaria. Normalmente qusta esigenza è legata a problematiche di natura legale, come nel caso della vendita di prodotti digitali o nel caso della vendita di bevande alcoliche (prodotti fisici). La procedura prroposta utilizza gli hooks di WooCommerce, consentendo di non utilizzzare plugins aggiuntivi. In queso caso (a titolo di esempio), creeremo due campi personalizzati inserendo all’interno del file functions.php, del tema utilizzato, il codice seguente:
add_action('woocommerce_checkout_before_terms_and_conditions', 'checkout_additional_checkboxes'); function checkout_additional_checkboxes( ){ $checkbox1_text = __( "Campo personalizzato 1", "woocommerce" ); $checkbox2_text = __( "Campo personalizzato 2", "woocommerce" ); ?> <p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox custom-one"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_one" > <span><?php echo $checkbox1_text; ?></span> <span class="required">*</span> </label> <label class="woocommerce-form__label checkbox custom-two"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_two" > <span><?php echo $checkbox2_text; ?></span> <span class="required">*</span> </label> <?php }
Per rendere obbligatori i campi personalizzati, inseriamo all’interno del file functions.php, del tema utilizzato, il codice seguente:
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['custom_one'] ) wc_add_notice( __( 'Devi accettare "Campo personalizzato 1".' ), 'error' ); if ( ! $_POST['custom_two'] ) wc_add_notice( __( 'Devi accettare "Campo personalizzato 2".' ), 'error' ); }
Questo secondo esempio mostra come creare un campo personalizzato facoltativo. Inseriamo all’interno del file functions.php, del tema utilizzato, il codice seguente:
add_action('woocommerce_checkout_before_terms_and_conditions', 'checkout_additional_checkboxes'); function checkout_additional_checkboxes( ){ $checkbox1_text = __( "Campo personalizzato", "woocommerce" ); ?> <p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox custom-one"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_one" > <span><?php echo $checkbox1_text; ?></span> </label> </p> <?php }