Woocommerce-Überprüfung der Bestellung vor der Zahlung

Lesezeit: 4 Minuten

Ich versuche, eine Seite zur Überprüfung der Bestellung in meinem Woocommerce-Webshop hinzuzufügen. Wenn ich derzeit Artikel in den Warenkorb lege, kann ich zur Checkout-Seite gehen, wo die Rechnungs- und Lieferadressen erforderlich und übermittelt werden, dann ist der nächste Schritt die Zahlungsseite (mit PayPal). Ich möchte eine Bestellüberprüfungsseite hinzufügen, bevor sie zur Zahlungsseite geht. Nachdem die Adressen auf der Checkout-Seite eingegeben wurden und der Benutzer auf „Fortfahren“ klickt, sollte eine Bestellzusammenfassungs-/Überprüfungsseite mit den Bestellsummen und den zuvor eingegebenen Adressen angezeigt werden , und einen Link, um zurückzugehen, wenn zehn Benutzer eine Adresse ändern möchten. Wie eine Bestätigungsseite. Sobald der Benutzer fortfährt, gelangt er zur Zahlungsseite.

Ich habe dies ohne Glück recherchiert. Ich habe diese Aktion in der versucht functions.phpaber es geht nicht:

add_action( 'woocommerce_review_order_before_submit','woocommerce_order_details_table');

Gibt es eine Möglichkeit, dies mit WooCommerce zu tun? Auch im Adminbereich gibt es dafür keine Einstellung.

  • Hast du dein Problem in der Zwischenzeit gelöst?

    – GDY

    16. Oktober 2015 um 6:35 Uhr

Ich bin kürzlich auf dieses Problem gestoßen. Meine Lösung bestand darin, im Backend von WordPress eine Seite mit dem Namen „Bestellung überprüfen“ zu erstellen und den Shortcode einzugeben [woocommerce_checkout] im Inhaltseditor. Dann erstelle ich eine page-review-order.php im Stammverzeichnis meines Child-Themes.

In meiner page-review-order.php habe ich folgende Definitionen gesetzt:

if ( ! defined( 'THIS_IS_CHECKOUT' ) )
{
  define( 'THIS_IS_CHECKOUT', true );
}
if ( ! defined( 'THIS_IS_REVIEW') )
{
  define( 'THIS_IS_REVIEW', true);
}

Von hier aus konnte ich den typischen Checkout-Prozess durchlaufen und die benötigten Informationen ohne großen Aufwand erhalten, aber ich konnte mit dem Folgenden austauschen, welche Teile des Prozesses zur Checkout-Seite und welche Teile zur Bewertungsseite gehören könnten :

if (defined( 'THIS_IS_REVIEW'))
{
  $reviewPage = true;
}

  • kannst du genauer erklären wie du das gemacht hast? Ich möchte dasselbe tun. Vielen Dank!

    – harina

    4. September 2015 um 9:25 Uhr

Wenn ich mir ein WooCommerce-Setup ansehe, das ich verwalte, sehe ich, dass Sie im Admin-Bereich über WooCommerce > Einstellungen > Kasse (Registerkarte oben) eine „Warenkorb“-Seite einrichten können.

Scrollen Sie nach unten zu „Checkout-Seiten“ und vergewissern Sie sich, dass Sie eine „Warenkorb-Seite“ ausgewählt haben. Wenn Sie keine Seite mit dem Namen „Warenkorb“ erstellen und ihr den folgenden Shortcode hinzufügen: [woocommerce_cart]

Wenn Sie das getan haben, gehen Sie zurück zur vorherigen WooCommerce-Einstellungsseite und wählen Sie die neue Seite aus, die Sie erstellt haben.

Diese Seite wird im Checkout-Prozess vor den Rechnungsdetails platziert.

Lassen Sie mich wissen, ob das hilft.

  • Das alles ist eingestellt. Nur um zu verdeutlichen, dass die Website funktioniert, die Kasse und die Zahlungen funktionieren. Was ich möchte, ist eine Seite zwischen der Kasse und der Zahlungsseite hinzuzufügen, die die Benutzer auffordert, ihre auf der Kassenseite eingegebenen Rechnungs- und Lieferadressen zu bestätigen, wenn sie bestätigen, dass sie mit der Zahlung fortfahren, oder sie gehen zurück zur Kassenseite um eine Adresse zu bearbeiten

    – Tester

    15. August 2014 um 13:56 Uhr

Obwohl dies möglicherweise nicht die perfekte Lösung ist, habe ich es hier aussortiert.

Bitte schau dir diesen Stackoverflow-Thread an.

Wir fügen eine versteckte Eingabe ein confirm-order-flagdie angibt, ob sie überprüft werden soll oder bereits überprüft wurde.

Dann nach der Validierung verwenden wir woocommerce_after_checkout_validation um diesen Wert zu überprüfen. Wenn es überprüft werden soll, fügen wir einen gefälschten Fehler hinzu.

In jQuery prüfen wir die Anzahl der Fehler, die eins ist, wenn es überprüft werden soll, und 2 (oder mehr), wenn es Fehler enthält (wenn es 0 hat, befinden Sie sich bereits auf der Überprüfungsseite).

    $(document.body).on('checkout_error', function () {
    var error_count = $('.woocommerce-error li').length;
    var url_params = form_parameters_to_url();
    if (error_count == 1) { // Validation Passed (Just the Fake Error I Created Exists)
                window.location = "review_page_url";

            }else{ // Validation Failed (Real Errors Exists, Remove the Fake One)
                $('.woocommerce-error li').each(function(){
                    var error_text = $(this).text();
                    if (error_text == 'custom_notice'){
                        $(this).css('display', 'none');
                    }
                });
            }
        });

Auf der Bewertungsseiten-URL füge ich auch die ein [woocommerce_checkout] Shortcode, aber dieses Mal in einem Container mit einer ID: #confirm_order_page. Ich verwende wieder jQuery, um den Wert der versteckten Eingabe auf 0 zu setzen:

$('#confirmation_form #place_order').click(function () {
    $('#confirm-order-flag').val('');       
});

Dann hat es keine Fehler und besteht die Validierung. Ich verstecke das Formular auf der Bewertungsseite vor CSS. Es ist möglicherweise keine perfekte Lösung, aber es könnte Ihnen helfen, mit diesem Problem zu beginnen.

1385510cookie-checkWoocommerce-Überprüfung der Bestellung vor der Zahlung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy