wake-up-neo.net

Woocommerce Zum Warenkorb hinzufügen Button zur Kasse umleiten

Ich habe einen E-Commerce mit dem Plugin Woocommerce erstellt. Ich verkaufe nur ein Abonnement, daher ist die "/ cart /" - Seite unbrauchbar. Ich versuche, es loszuwerden. Wenn mein Kunde auf die Schaltfläche "In den Warenkorb" klickt, landet er auf der Checkout-Seite.

24

sie können einen Filter in functions.php verwenden:

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;
}

es scheint nicht mit ajax zu funktionieren, aber es funktioniert von den einzelnen Produktseiten aus

In den neuesten Versionen von WooCommerce (> = 2.1) kann die Funktion folgendermaßen vereinfacht werden:

function redirect_to_checkout() {
    return WC()->cart->get_checkout_url();
}
62
Ewout

In den WooCommerce-Einstellungen gibt es eine Option, mit der Sie diese Funktionalität aktivieren können:

Option to redirect visitor to cart page

Melden Sie sich einfach bei Ihrem WP Admin-Panel> WooCommerce> Katalog an und wählen Sie die Option aus. Ich hoffe das hilft!

11
Devin Walker

Ich habe eine einfache Lösung gefunden, die wie Magie funktioniert.

  1. Wie von @Ewout erwähnt, aktivieren Sie das Kontrollkästchen "Nach erfolgreicher Erweiterung zum Warenkorb weiterleiten".
  2. Woocommerce> Einstellungen> Kasse (Registerkarte) - Hier können Sie Seiten für den Einkaufswagen und die Kasse auswählen. Wählen Sie die Checkout-Seite als Warenkorbseite aus (Bild angehängt).

Das ist es. funktioniert bei mir.enter image description here

10
Shir Gans

@RemiCorson hat dieses kurze, aber nützliche Tutorial gepostet:

http://www.remicorson.com/woocommerce-skip-product-cart-pages/

Er erwähnt den gleichen Filter wie @Ewout oben,

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;

}

für mein aktuelles Woocommerce-Projekt ist jedoch eine Codezeile von herausragendem Wert:

Es gibt einen direkten Link, über den ein Benutzer die Produktseite automatisch umgehen kann. http://your-site.com/?add-to-cart=37

'37' wird durch Ihre Produkt-ID ersetzt.

Dies war für mich hilfreich, um unnötige Schritte zu vermeiden und Benutzer direkt zum Checkout von der Homepage und anderen Nicht-Woocommerce-Seiten/Posts zu führen.

3
ATutorMe

Filter add_to_cart_redirect ist in WooCommerce 2.6 veraltet. Verwenden Sie stattdessen woocommerce_add_to_cart_redirect .

Fügen Sie dies zu Ihrer functions.php hinzu:

add_filter ('woocommerce_add_to_cart_redirect', function() {
  return WC()->cart->get_checkout_url();
} );
1

Update für WooCommerce 3.5.1

Schritt 1 ... Gehen Sie zuerst zu den WooCommerce-Produkte-Einstellungen und deaktivieren Sie AJAX in den Warenkorb.

Schritt 2. .__ Verwenden Sie woocommerce_add_to_cart_redirect hook, um eine Weiterleitung an die Kasse vorzunehmen. 

add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    return wc_get_checkout_url();
});

Natürlich müssen noch einige kleine Dinge erledigt werden, beispielsweise das Ändern des Textes der Schaltflächen in den Einkaufswagen und das Entfernen einiger WooCommerce-Benachrichtigungen zu Warenkörben. Ich empfehle, in diesem Tutorial nach weiteren https://rudrastyh.com/woocommerce/redirect-to-checkout-skip-cart.html zu suchen.

0
Misha Rudrastyh

Keine der Lösungen hat tatsächlich für mich funktioniert, der Filter add_to_cart_redirect wurde auf jeder Seite ausgelöst, nicht nur auf dem Warenkorb. Ich habe die vorgeschlagene Antwort geändert.

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
  function redirect_to_checkout() {
  if(is_cart()){
    $checkout_url = WC()->cart->get_checkout_url();
  ?>
  <script>
  location = '<?=$checkout_url?>';
  </script>
  <?php 
  }
}
0
nikksan

Wenn Sie auf der Shop-Seite Ajax verwenden und zusammen umleiten möchten. Die zweite Methode nur, wenn es einige Bedingungen gibt. Sie können diesen Filter verwenden und die Woocommerce-Einstellung ajax aktiviert lassen:

add_filter('woocommerce_loop_add_to_cart_link', array( $this, 'add_quantity_input' ), 4, 2); 

auf einem Klassenattribut ajax_add_to_cart zu entfernen und den href-Wert in eine Checkout-URL-Seite zu ändern;

Auf meinem Vorlagenfall:

public function add_quantity_input($text = null, $product = null) {
    global $product, $woocommerce;

    if ( $text != null and $product != null  ) {
        if(ismycondition($product->id)) {
            $s = explode('class="', $text);
            $s[2]=str_replace('ajax_add_to_cart', '', $s[2]);
            $text = implode('class="', $s);

            $text = preg_replace('/<a(.*)href="([^"]*)"(.*)>/','<a$1href="'.$woocommerce->cart->get_checkout_url().'"$3>', $text);
        }
    }

    return $text;
}

Ich hoffe das hilft.

0
jedi