So implementieren Sie die bedingte automatische Vervollständigung für bezahlte WooCommerce-Bestellungen
In WooCommerce treten bei virtuellen Produkten häufig Probleme mit der automatischen Auftragsvervollständigung auf. Dieser umfassende Leitfaden bietet mehrere Lösungen zur Behebung dieses Problems, einschließlich eines benutzerdefinierten Code-Snippets und Plugin-Optionen. Erwägen Sie für einen detaillierteren Ansatz die Implementierung von bedingtem Code basierend auf WooCommerce-Zahlungsmethoden.
Bedingter Code für die automatische Vervollständigung bezahlter Bestellungen
Um die Funktion zur automatischen Vervollständigung basierend auf Zahlungsmethoden selektiv anzuwenden , nutzen Sie den Filter-Hook woocommerce_paid_complete_order_status, der ausgelöst wird, wenn beim Bezahlvorgang eine Zahlung erforderlich ist. Hier ist eine verbesserte Version, die mit WooCommerce 3 und höher kompatibel ist:
add_filter( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 ); function wc_auto_complete_paid_order( $status, $order_id, $order ) { return 'completed'; }
Dieser Code ändert den zulässigen Status einer bezahlten Bestellung für alle Zahlungsgateways außer „Banküberweisung“ (bacs) und „Nachnahme“ in „abgeschlossen“. (Kabeljau) und „Cheque“ (Scheck).
Zusätzlich Überlegungen
Alternativen
Verbesserte Version (2018)
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 ); function wc_auto_complete_paid_order( $order_id ) { // No updates for Bank wire, Cash on delivery, and Cheque if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) { return; } // Autocomplete all others else { $order->update_status( 'completed' ); } }
Originalantwort ( alle WooCommerce-Versionen)
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 ); function custom_woocommerce_auto_complete_paid_order( $order_id ) { // No updates for Bank wire, Cash on delivery, and Cheque if ( ( 'bacs' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cod' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cheque' == get_post_meta($order_id, '_payment_method', true) ) ) { return; } // Autocomplete all others else { $order->update_status( 'completed' ); } }
Hinweis: Seien Sie sicher um die Codeausschnitte in der Datei „functions.php“ Ihres untergeordneten Themas zu platzieren.
Das obige ist der detaillierte Inhalt vonWie kann ich bezahlte WooCommerce-Bestellungen basierend auf der Zahlungsmethode automatisch abschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!