Mostra o nascondi i campi di pagamento di WooCommerce in base al pulsante di opzione selezionato

Aug 23 2020

cari,

Sto usando il plug-in snippet per aggiungere il mio codice al mio progetto ecommerace, ho un plug-in di ritiro e consegna nella mia opzione di consegna, quello che sto cercando di fare è, una volta selezionata l'opzione di ritiro, i campi delle informazioni sull'indirizzo del cliente saranno nascosti quale non è logico mantenerlo visibile e obbligatorio se è selezionato il ritiro dal ristorante.

errore di restituzione dello snippet errore di sintassi, "(", variabile in attesa (T_VARIABLE) o "{" o "$" correlato per la sostituzione di <? php> con ma anche questo non funziona, scusa per aver confuso sono nuovo con la programmazione e non vedo l'ora di avere il tuo supporto nella mia pagina di checkout del progetto. https://www.order.ramadaencorekuwait.com/checkout-2/

 $(document).ready(function() {
  $('input').change(function() { if ($('input[value="pickup"]').is(':checked') && $('input[value="delivery"]').is(':unchecked')) { $('input[value="billing_address_4"]').hide();
    }
    else {
      $('input[value="billing_address_4"]').show();
    }
  });
});

Grazie.

Risposte

2 LoicTheAztec Aug 23 2020 at 04:27

Ci sono alcuni errori nel codice. Utilizza quanto segue per mostrare / nascondere un campo di pagamento personalizzato in base alla scelta del pulsante di opzione:

add_action('wp_footer', 'custom_checkout_js_script');
function custom_checkout_js_script() {
    if( is_checkout() && ! is_wc_endpoint_url() ) :
    ?>
    <script language="javascript">
    jQuery( function($){ var a = 'input[name="pi_delivery_type"]:checked', b = 'input[name="billing_address_4"]'; // Custom function that show hide specific field, based on radio input value function showHideField( value, field ){ if ( value === 'pickup' ) { $(field).parent().parent().hide();
            } else {
                $(field).parent().parent().show(); } } // On start after DOM is loaded showHideField( $(a).val(), b );

        // On radio button change live event
        $('form.woocommerce-checkout').on('change', a, function() { showHideField( $(this).val(), b );
        });
    });
    </script>
    <?php
    endif;
}

Il codice va nel file functions.php del tuo tema figlio attivo (o tema attivo). Testato e funziona.