Ich versuche, die Checkout-Funktionalität (+ Stripe mit WooCommerce Stripe Payment Gateway-Plugin) in einem modalen Fenster zu implementieren, und ich verwende dafür das Ajax. Hier ist mein Backend-Code, um den Checkout abzurufen/aktualisieren:
add_action('wp_ajax_refresh_checkout', 'getCheckoutPageContentCallBack');
add_action('wp_ajax_nopriv_refresh_checkout', 'getCheckoutPageContentCallBack');
function getCheckoutPageContentCallBack() {
define('WOOCOMMERCE_CHECKOUT', true);
echo do_shortcode('[woocommerce_checkout]');
if (class_exists('WooCommerce')) {
$wcurl = WooCommerce::plugin_url();
$credit_card_form_script = file_get_contents($wcurl . '/assets/js/frontend/credit-card-form.min.js');
if ($credit_card_form_script) {
echo "<script>";
echo $credit_card_form_script;
echo "</script>";
}
$checkout_script = file_get_contents($wcurl . '/assets/js/frontend/checkout.min.js');
if ($checkout_script) {
echo "<script>";
echo $checkout_script;
echo "</script>";
}
}
wp_die();
}
Ich habe alle Skripte der Checkout-Seite eingefügt, erhalte aber immer noch den Fehler:
Bitte geben Sie Ihre Kartendaten ein, um eine Zahlung vorzunehmen. Entwickler: Bitte stellen Sie sicher, dass Sie jQuery einbinden und es keine JavaScript-Fehler auf der Seite gibt.
jQuery ist enthalten und es gibt keine js-Fehler auf der Seite. Die ursprüngliche Checkout-Seite funktioniert einwandfrei. Ich dachte, das Problem sei, dass ich den Zahlungsteil mit diesem Code vom Originalteil entfernt habe:
remove_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20);
add_action('woocommerce_checkout_order_payment', 'woocommerce_checkout_payment', 20);
Aber das Kommentieren dieser Zeilen brachte mir nichts. Ich habe die Seite bearbeitet, daher ist dies jetzt noch nicht einmal eine Shop-Seite (nur eine Seite mit einer Schleife). Mir ist aufgefallen, dass bei Zahlungen über die Checkout-Seite die erste Anfrage an die geht https://api.stripe.com/v1/tokens mit Kartenanmeldeinformationen geht der nächste an /checkout/?wc-ajax=checkout
mit stripe_token
Wenn ich also versuche, von meinem Modal aus zur Kasse zu gehen, gibt es keine Anfrage an die Stripe-API, sondern nur an die Kasse. Vielleicht gibt es ein Skript, das ich jedes Mal einfügen muss, wenn ich den Checkout aktualisiere? Ich kann keine Infos darüber finden.
Hast du die Lösung??? Wenn Sie die Lösung gefunden haben, teilen Sie sie bitte mit, da ich mit dem gleichen Problem konfrontiert war. Danke im Voraus 🙂
– Sangrai
19. September 2017 um 5:17 Uhr
Ja, soweit ich mich erinnern kann, bin ich einfach in die Woocommerce-Einstellungen gegangen und habe meine Seite mit dem Modal als Warenkorbseite UND Checkout-Seite festgelegt
– Dmytro Duplyka
21. September 2017 um 9:36 Uhr