In questo articolo parleremo di come inserire un valido checkbox nel checkout di woocommerce.
Un utente mi ha fatto notare che in rete si trovano parecchi snippet funzionanti per poter creare questa funzione. La pecca avviene però quando abbiamo come gateway il plugin di “Paypal checkout”. In sostanza verrebbe saltato ed ignorato il controllo del checkbox quando si va a cliccare su paga con paypal checkout.
Ho fatto una ricerca in rete, e tutti gli snippet addottano l’aggancio su ‘woocommerce_checkout_process’ (che viene saltato per l’appunto da paypal checkout), mentre l’aggancio più efficace da adottare è ‘woocommerce_after_checkout_validation’.
Vi inserisco la soluzione per ovviare a questo problema, vi inserisco l’interno snippet testao e funzionante
add_action( 'woocommerce_review_order_before_submit', 'aggiungi_privacy_policy_checkbox', 9 ); function aggiungi_privacy_policy_checkbox() { woocommerce_form_field( 'privacy_policy', array( 'type' => 'checkbox', 'class' => array('form-row privacy'), 'label_class' => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'), 'input_class' => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'), 'required' => true, 'label' => 'Ho letto ed accetto la <a href="/privacy-policy">Privacy Policy</a>', )); } // Mostra errore se il cliente non inserisce il flag sul checkbox, testato anche con Paypal Checkout add_action('woocommerce_after_checkout_validation', 'convalida_checkbox_privacy_policy', 10, 2); function convalida_checkbox_privacy_policy( $data, $errors ) { if (!$_POST['privacy_policy']) { $errors->add( 'privacy_policy', __('Leggi e accetta la privacy policy per procedere con l\'ordine. ') ); } }
Lascia un commento