Problème de JQuery qui ne fonctionne qu’en admin

  • Avatar de Inconnu

    Bonjour,

    J’ai un script qui est censé afficher/masquer des champs lorsqu’on coche/décoche une checkbox (« Entreprises et professionnels ») sur la page de checkout de Woocommerce mais il ne fonctionne que pour l’administrateur sur le frontend. Dès lors que l’on passe en navigation privée ou en invité ou même en utilisateur lambda sur le site, tout reste affiché.

    J’ai désactivé tous les plugins d’optimisation, de cache et cie mais j’ai toujours le même résultat.

    Le voici :

    add_filter( 'woocommerce_checkout_fields' , 'bbloomer_display_checkbox_and_new_checkout_field' );
      
    function bbloomer_display_checkbox_and_new_checkout_field( $fields ) {
      
    $fields['billing']['checkbox_trigger'] = array(
        'type'      => 'checkbox',
        'label'     => __('Vous êtes une entreprise ou un professionnel ?', 'woocommerce'),
        'class'     => array('form-row-wide'),
    	'required' => false,
        'clear'     => true,
    	'priority' => 25,
    	);   
      
    return $fields; 
    }
      
    add_action( 'woocommerce_after_checkout_form', 'bbloomer_conditionally_hide_show_new_field', 9999 );
      
    function bbloomer_conditionally_hide_show_new_field() {
        
      wc_enqueue_js( "
          jQuery('input#checkbox_trigger').change(function(){
               
             if (! this.checked) {
                // HIDE IF NOT CHECKED
    	    jQuery('#billing_company_field').fadeOut();
                jQuery('#billing_company_field').val(''); 
                jQuery('#woocommerce_eu_vat_number_field').fadeOut();
                jQuery('#woocommerce_eu_vat_number_field').val('');      
    	    jQuery('#eori_number_field').fadeOut();
                jQuery('#eori_number_field').val('');    
             } else {
                // SHOW IF CHECKED
    	    jQuery('#billing_company_field').fadeIn();
                jQuery('#woocommerce_eu_vat_number_field').fadeIn();
    	    jQuery('#eori_number_field').fadeIn();
             }
               
          }).change();
      ");    
    }

    Auriez-vous une idée ?

    Merci par avance.

    Cordialement

  • Avatar de Inconnu

    Ah non, c’est bon, j’ai compris.

  • Le sujet ‘Problème de JQuery qui ne fonctionne qu’en admin’ est fermé aux nouvelles réponses.