2014-09-06 8 views
5

Ich habe ein neues benutzerdefiniertes Versandfeld (wählen Sie Option) zu Woocommerce Checkout-Seite hinzugefügt.Wie aktualisiert man die Versandberechnungen für die Änderung des benutzerdefinierten Versandfelds in Woocommerce?

Ich verwende das für Versandberechnungen.

das funktioniert auch perfekt. aber Problem ist, während ich Werte in diesem Feld ändere es nicht sofort aktualisiert.

Es gibt korrekte Berechnungen auf der nächsten Seite, nach dem Senden der Seite. Ich brauche es als Änderung im benutzerdefinierten Feld zu arbeiten.

Wie WooCommerce Ajax auslösen, die Versandberechnung bei Änderung meines benutzerdefinierten Felds aktualisiert?

Antwort

9

Dies ist eigentlich extrem einfach zu tun, wenn Sie Ihre Felder in der richtigen Weise hinzufügen (mit dem woocommerce_checkout_fields Filter). Das einzige, was Sie tun müssen, um die Klassen address-field und update_totals_on_change wie folgt hinzuzufügen:

ein tausend mal
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

function custom_override_checkout_fields($fields) { 

    $fields['shipping']['custom_field'] = array(
     'label' => 'Custom field', 
     'required' => 1, 
     'class' => array ('address-field', 'update_totals_on_change') 
    ); 

    return $fields; 
} 
+2

sehr hilfreich ... danke .. – erandi

+0

Hallo, ich in der Konsole sehen können, für die individuelle Besuche Felder, die wir hinzufügen, 'update_totals_on_change' Klasse .... es ruft 'woocommerce-checkout-review-order-table' aber es ist nicht 'calculate_shipping' Funktion wird nicht aufgerufen? Kann mir jemand helfen? – erandi

+0

Das schien nicht für mich zu funktionieren. Ich habe Ihren Code genau eingegeben, aber der Einkaufswagen wurde nicht aktualisiert, wenn sich der Feldwert änderte und der Fokus vom Feld wegging. –