WooCommerce: Automatische Vervollständigung der bezahlten Bestellungen
Normalerweise wooCommerce sollte AutoVervollständigen-Aufträge für virtuelle Produkte. Aber es funktioniert nicht und das ist ein echtes problem, noch ein BUG wie.
Also an dieser Stelle finden Sie somme hilfreiche Dinge(aber nicht wirklich praktisch):
1) Ein code-snippet (kann man in wooCommerce docs):
/** * Auto Complete all WooCommerce orders. */ add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); }
Aber dieses snippet funktioniert nicht für BACS*, per Nachnahme Bezahlen und Scheck Zahlung Methoden. Es ist ok für Paypal und Kreditkarten-gateways, Zahlung Methoden.
*BACS ist eine Direkte Banküberweisung Zahlungsmethode
Und ...
2) Ein plugin: WooCommerce AutoVervollständigen-Bestellungen
Dieses plugin funktioniert für alle Zahlungsmethoden, aber nicht für anderen Kreditkarten-gateways Zahlungsmethoden.
Meine Frage:
Verwenden (als Basis) die wooCommerce-snippet 1:
Wie kann ich mit bedingter code, basierend auf woocommerce Zahlungsmöglichkeiten?
Ich meine so etwas wie: wenn die Zahlung Methoden sind nicht "überweisung", "Nachnahme" und "Scheck" und dann wenden Sie das code-snippet (update-status auf "abgeschlossen" für bezahlte Bestellungen über virtuelle Produkte).
Etwas Hilfe sehr nett.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die präzise, effektive und leichte Lösung (Für WooCommerce 3 und höher) - 2019
Dieser filter hook befindet sich in:
WC_Order
Klasse innerhalb vonpayment_complete()
Methode die alle Zahlungsmethoden wenn eine Zahlung erforderlich ist in der Kasse.WC_Order_Data_Store_CPT
Klasse innerhalb vonupdate()
Methode.Wie Sie sehen können, ist standardmäßig die erlaubt bezahlt, um Status sind "in Bearbeitung" und "abgeschlossen".
Mit dem code unten, wird nur ändern Sie die Bestellung bezahlt status (das wird durch den payment-gateway für bezahlte Bestellungen) auf "abgeschlossen":
Code geht in function.php Datei der aktiven-Kind-Thema (oder Themas).
Verwandte: WooCommerce: autocomplete bezahlten Bestellungen, basierend auf Liefer-Methode
2018 - Verbesserte version (Für WooCommerce 3 und höher)
Basierend auf Woocommerce offiziellen Haken, ich habe eine Lösung gefunden für dieses problem *(Funktioniert mit WC 3+).
In Woocommerce für alle anderen payment-gateways, andere als
bacs
(Bank Wire),cheque
undcod
(Cash on delivery), die Bestellung bezahlt Status sind "in Bearbeitung" und "abgeschlossen".Damit ich den Gegner "Bearbeiten", um den status für alle Zahlungs-gateways wie Paypal oder Kreditkarte, wird die Aktualisierung des Bestellstatus auf " abgeschlossen.
Code:
Code geht in function.php Datei der aktiven-Kind-Thema (oder Themas).
Ursprüngliche Antwort (Für alle woocommerce-Versionen):
Code:
Code geht in function.php Datei der aktiven-Kind-Thema (oder Themas).
Mit Hilfe von diesem post: Wie um zu überprüfen, Zahlungsmethode auf ein WooCommerce order by id?
mit dabei :
get_post_meta( $order_id, '_payment_method', true );
aus helgathevikingBanküberweisung, Nachnahme und Scheck-Zahlung Methoden werden ignoriert, und halten Sie die original-Reihenfolge status.
Aktualisiert den code für die Kompatibilität mit WC 3.0+ (2017-06-10)
Mir dieser hook aufgerufen wurde, auch wenn die Zahlung nicht erfolgt oder fehlgeschlagen , und dieses Ergebnis zu komplett ausgefallenen Zahlungen , nach einiger recherche habe ich es geändert für die Verwendung von 'woocommerce_payment_complete', weil Ihr nur aufgerufen, wenn die Zahlung abgeschlossen ist und der Deckel das Problem, dass @LoicTheAztec erwähnt oben –