Weitere Informationen und den Download findest du auf der offiziellen Anlaufstelle de.wordpress.org
Ergebnis 1 bis 3 von 3
  1. #1
    PostRank: 2
    Registriert seit
    29.09.2015
    Beiträge
    73

    Extra Checkout Field mit Bedingung

    Hallo Forum,

    sitze gerade an folgemdem Problem:

    Habe mir ein extra Feld für den Checkout eingerichtet. Funktioniert auch alles wie gewollt.
    Jetzt möchte ich aber das dieses Feld nur angezeigt wird wenn der Kunde unter Land die Schweiz anwählt.
    Egal ob beim Versand oder bei der Rechungsadresse.

    Lösungsansatz per javascript:

    Code:
    <script type="text/javascript">
            jQuery('select#billing_country').live('change', function(){
                
                var country = jQuery('select#billing_country').val();
                
                var check_countries = new Array(<?php echo '"CH"'; ?>);
                if (country && jQuery.inArray( country, check_countries ) >= 0) {
                    jQuery('#vat_number_field').fadeIn();
                } else {
                    jQuery('#vat_number_field').fadeOut();
                    jQuery('#vat_number_field input').val('');
                }
                
            });
        </script>
    Aber so richtig funktioniert es nicht.
    Vielleicht sieht ja jemand den Fehler oder hat einen anderen Ansatz.

    Danke für eure Hilfe.


  2. #2
    PostRank: 10 Avatar von mensmaximus
    Registriert seit
    24.07.2014
    Ort
    Krefeld
    Beiträge
    6.410
    Zitat Zitat von RaulRaulus Beitrag anzeigen
    jQuery('select#billing_country').live('change', function(){
    .live ist seit langem überholt.
    Entweder .on oder .delegate - je nach Anwendungsfall.

    Und was suchst das PHP echo in dem JQuery Script?

    Und was macht das Leerzeichen zwischen #vat_number_field input?

    Mit einem Link zur Seite wäre, wie fast immer, alles viel einfacher.

  3. #3
    PostRank: 2
    Registriert seit
    29.09.2015
    Beiträge
    73
    Hallo mensmaximus,

    danke für deine Antwort.

    Wie du schon richtig bemerkt hast, sind meine Fähigkeiten was javascript angeht eher begrenzt...

    Habe mir den Code über google geholt und dann etwas angepasst - hat aber nicht funktioniert.

    Link zur Seite kann ich nicht geben, da ich an dem Problem lokal arbeite.

    Werde es wahrscheinlich erstmal so Lösen:

    Code:
    add_filter( 'woocommerce_checkout_fields' , 'remove_custom_checkout_field' );
     
    function remove_custom_checkout_field( $fields ) { 
         
    // check if the cart needs shipping
    if ( WC()->customer->get_shipping_country() == 'AT' ) {
            
    
     unset($fields['billing']['custom-field']);
     
     add_filter('woocommerce_enable_order_notes_field', '__return_false');
     
    }
     
     return $fields;
     
    }
    Was mich daran aber stört ist, wenn der Kunde bei der Eingabe seiner Daten dann das Land ändert, müsste er die Seite neu laden damit das Feld wieder angezeigt bzw. versteckt wird.
    Warum das erstmal für mich funktioniert,liegt daran das der Kunde schon im Warenkorb ein Land auswählen muss damit seine Lieferkosten berechnet werden.

    Vielleicht hat ja Jemand einen beseren Ansatz.

    Danke euch.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •