Ich bin mir nicht sicher, ob dies die richtige Frage zu stellen ist, aber immer noch habe ich keine Lösungen dafür gefunden. Ich versuche, eine Methode zu erstellen, bei der der Einkaufswagen des Benutzers automatisch geleert wird, wenn der Benutzer zu einer anderen Seite/Site als der aktuellen Checkout-Seite wechselt. Ich frage mich, ob das möglich ist, weil ich den Kaufablauf meines benutzerdefinierten E-Shops geändert habe. Ich habe versucht, im Internet zu suchen und viele Methoden auszuprobieren, aber es scheint nicht zu funktionieren. Ich habe derzeit eine harte Zeit zu verstehen, wie WooCommerce hooks & funktioniert. JetztWooCommerce Empty Cart, wenn Benutzer auf Seite oder Seite anders als aktuelle Checkout-Seite gehen
, lassen Sie uns euch sagen, wie mein Code von Anfang an funktioniert: -
Diese der Code für die Seite, die das gesamte zur Verfügung stehende Produkt anzuzeigen. Wie Sie sehen können, wenn der Benutzer ein Produkt kaufen wollte, wird er auf die Schaltfläche Kaufen klicken und mein E-Shop wird das Produkt automatisch in den Warenkorb legen.
<?php
// Querying of product information retrieval
$args = array('post_type' => 'product', 'posts_per_page' => 4, 'orderby' =>'menu_order', 'order' =>'ASC');
$loop = new WP_Query($args);
// Display each retrieved product
while ($loop->have_posts()) :
$loop->the_post();
// WooCommerce global product variable
global $product;
global $woocommerce;
the_title();
the_excerpt();
echo $product->get_price_html();
$id = $product->id;
?>
/**** Select the product & automatically add to cart ****/
<a href="<?php echo do_shortcode('[add_to_cart_url id="' . $id . '"]'); ?>"><button type="button"> BUY</button></a>
<?php endwhile; ?>
<?php wp_reset_query(); // After the loop ended, quit the custom loop and reset back the main loop
?>
Als meine E-shop die ‚in den Warenkorb‘ abgeschlossen haben, wird der Benutzer auf die Checkout-Seite weitergeleitet. Die Funktion dafür ist wie folgt.
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout() {
global $woocommerce;
$checkout_url = $woocommerce->cart->get_checkout_url();
return $checkout_url;
}
Im Grunde, was ich zu sagen versuche ist, wird der Benutzer zur Kasse Seite direkt weitergeleitet, nachdem sie klicken Sie auf das jeweilige Produkt zu kaufen. Diese Methode übersprang die Einzelproduktseite & In den Warenkorb.
Aber im Moment brauche ich Hilfe bei der Bestimmung der richtigen Methode Wenn Benutzer aus dieser Seite oder abmelden, wird der Warenkorb automatisch leer. Ist es möglich? Wenn nicht, Entschuldigung für meinen Mangel an Wissen.
Ich habe den folgenden Code versucht, da es am nächsten ist, was ich will. Schließen, aber nicht funktionieren.
add_action('init', 'woocommerce_clear_cart_url');
function woocommerce_clear_cart_url() {
global $woocommerce;
if (!is_page('93')) {
$woocommerce->cart->empty_cart();
}
}
Mit der obigen Funktion, wenn ich zurück zur Homepage gehen versucht, oder auf anderen Link gehen und klicken Sie erneut kaufe, hält der Wagen gerade hinzufügen. Dieses Ding bringt mich dazu, meine Meinung zu verlieren. Ich hoffe, ihr könnt mir helfen.
Hallo Kaydarin. Haben Sie jemals eine Lösung dafür gefunden? Ich muss das Gleiche tun. – inspirednz
@inspirednz probiere meine Lösung aus – DrMosko