簡體   English   中英

Woocommerce添加到購物車按鈕重定向到結帳

[英]Woocommerce add to cart button redirect to checkout

我使用插件woocommerce創建了一個電子商務。 我只銷售訂閱,所以“/ cart /”頁面沒用。 我正試圖擺脫它,以便當我的客戶點擊“添加到購物車”按鈕時,他最終在結帳頁面上。

你可以在functions.php中使用過濾器:

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

它似乎不適用於ajax,但它適用於單個產品頁面,我認為這是你使用的

在最新版本的WooCommerce(> = 2.1)上,該功能可以簡化為:

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

WooCommerce設置中有一個選項,允許您啟用此功能:

將訪問者重定向到購物車頁面的選項

只需登錄您的WP管理面板> WooCommerce>目錄,然后選擇該選項。 我希望這有幫助!

我找到了一個像魔術一樣的簡單解決方案。

  1. 如@Ewout所述,選中“成功添加后重定向到購物車頁面”框。
  2. Woocommerce>設置>結帳(標簽) - 您應該選擇購物車和結帳頁面,選擇結帳頁面作為購物車頁面(附圖像)。

而已。 適合我。 在此輸入圖像描述

@RemiCorson發布了這個簡短但有益的教程:

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

他提到了與@Ewout相同的過濾器,

 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; 

}

但一行代碼突出,對我目前的woocommerce項目來說具有超值價值:

用戶可以使用直接鏈接自動繞過產品頁面。 http://your-site.com/?add-to-cart=37

'37'將替換為您的產品ID。

這對我來說非常有用,可以消除不必要的步驟並讓用戶直接從主頁和其他非woocommerce頁面/帖子結賬。

在WooCommerce 2.6中不推薦使用過濾器add_to_cart_redirect 請改用woocommerce_add_to_cart_redirect

將其添加到您的functions.php:

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

WooCommerce 3.5.1的更新

步驟1.首先轉到WooCommerce Products設置並停用AJAX添加到購物車。

步驟2.使用woocommerce_add_to_cart_redirect掛鈎進行重定向以結帳。

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

當然還有一些小事要做,比如更改添加到購物車按鈕文本和刪除一些與WooCommerce購物車相關的通知。 我建議查看本教程以獲取更多信息https://rudrastyh.com/woocommerce/redirect-to-checkout-skip-cart.html

在商店頁面上,如果你想使用ajax並重定向到其他。 第二種方法只有在有某些條件時,你可以使用這個過濾器並在Woocommerce設置中啟用ajax:

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

刪除類屬性ajax_add_to_cart並將href值更改為checkout url page;

在我的模板案例中:

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

我希望這有幫助。

沒有一個解決方案實際上對我有用,過濾器add_to_cart_redirect在每個頁面上都觸發,而不僅僅是在購物車上。我對建議的答案進行了一些修改。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM