Fügen Sie auf der Einzelproduktseite von WooCommerce eine benutzerdefinierte Schaltfläche „Jetzt kaufen“ hinzu, die den Einkaufswagen löscht, ein Produkt hinzufügt und zur Kasse weiterleitet
Lesezeit: 3 Minuten
Bekk1111
Ich verwende diesen einfachen Code, um eine Schaltfläche „Jetzt kaufen“ auf einer einzelnen Produktseite hinzuzufügen.
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );
function add_content_after_addtocart() {
// get the current post/product ID
$current_product_id = get_the_ID();
// get the product based on the ID
$product = wc_get_product( $current_product_id );
// get the "Checkout Page" URL
$checkout_url = WC()->cart->get_checkout_url();
// run only on simple products
if( $product->is_type( 'simple' ) ) {
echo '<a href="'.$checkout_url.'?add-to-cart=".$current_product_id."" class="mongo_single_add_to_cart_button button">Buy Now</a>';
}
}
Dieser Code leitet effektiv zur Checkout-Seite weiter und fügt das Produkt dem Warenkorb hinzu, aber ich möchte ihm zwei kleine Funktionen hinzufügen:
Nachdem ich auf die Schaltfläche geklickt habe, möchte ich, dass der Einkaufswagen geleert wird, bevor die Aktion ausgeführt wird.
Nachdem ich das Produkt in den Warenkorb gelegt habe, möchte ich, dass Benutzer darauf umgeleitet werden ‘/Kasse’ Seite. Im Moment schickt es Benutzer weiter ‘checkout/?add-to-cart=3122’was bedeutet, dass bei jeder Aktualisierung auf der Checkout-Seite automatisch 1 Produkt zum Warenkorb hinzugefügt wird.
Irgendein Rat?
Anstatt die zu verwenden add-to-cart param in Ihrer URL, wodurch das Produkt hinzugefügt wird (aber auch andere Aktionen in WooCommerce ausführt), können Sie eine benutzerdefinierte URL für Ihre Schaltfläche und die verwenden template_redirect Aktionshaken
Auf diese Weise werden Sie die integrierte Funktionalität in WooCommerce los und können Ihre eigenen benutzerdefinierten Aktionen basierend auf den GET-Parametern ausführen
Sie erhalten also:
// Add new/extra button
function action_woocommerce_after_add_to_cart_button() {
global $product;
// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
// Run only on simple products
if ( $product->is_type( 'simple' ) ) {
// Get product ID
$product_id = $product->get_id();
// Get permalink
$permalink = $product->get_permalink();
// Output url
echo '<a href="' . $permalink . '?product_id=' . $product_id . '&redirect_checkout=true" class="mongo_single_add_to_cart_button button">'. __ ( 'Buy Now', 'woocommerce' ) . '</a>';
}
}
}
add_action( 'woocommerce_after_add_to_cart_button', 'action_woocommerce_after_add_to_cart_button', 10 );
// Redirect
function action_template_redirect() {
// Determines whether the current request is for an administrative interface page
if ( is_admin() ) return;
// Returns true when viewing a single product
if ( ! is_product() ) return;
// Get params
if ( isset( $_GET['product_id'] ) && isset( $_GET['redirect_checkout'] ) ) {
// Get param 1
$product_id = $_GET['product_id'];
// Get param 2
$boolean = $_GET['redirect_checkout'];
// WC Cart
if ( WC()->cart ) {
// 1. Empty cart
WC()->cart->empty_cart();
// 2. Add to cart
WC()->cart->add_to_cart( $product_id );
// 3. Redirect
// When true
if ( $boolean ) {
// Gets the url to the checkout page
$checkout_url = wc_get_checkout_url();
// Performs a safe (local) redirect
wp_safe_redirect( $checkout_url );
exit;
}
}
}
}
add_action( 'template_redirect', 'action_template_redirect' );
Hier ist der Code zum Löschen des Warenkorbs vor dem Hinzufügen eines Artikels
Nachdem ich das Produkt in den Warenkorb gelegt habe, möchte ich, dass Benutzer auf die Seite „/checkout“ umgeleitet werden. Im Moment sendet es Benutzer auf „checkout/?add-to-cart=3122“, was bedeutet, dass jede Aktualisierung auf der Checkout-Seite automatisch 1 Produkt zum Einkaufswagen hinzufügt.
Vielen Dank, aber mein Ziel ist es, den Warenkorb nur zu leeren, wenn ein Benutzer auf die Schaltfläche “Jetzt kaufen” klickt. Ist es möglich?
– Bekk1111
22. März um 6:45 Uhr
Ja, dafür müssen Sie eine neue Ajax-Aktion registrieren und diese Aktion aufrufen, wenn Sie auf die Schaltfläche Jetzt kaufen klicken.
– Usdad Pravin
22. März um 6:57 Uhr
14353800cookie-checkFügen Sie auf der Einzelproduktseite von WooCommerce eine benutzerdefinierte Schaltfläche „Jetzt kaufen“ hinzu, die den Einkaufswagen löscht, ein Produkt hinzufügt und zur Kasse weiterleitetyes