29

プラグイン woocommerce を使用して e コマースを作成しました。サブスクリプションのみを販売しているため、「/cart/」ページは役に立ちません。顧客が「カートに追加」ボタンをクリックすると、チェックアウトページが表示されるように、それを取り除こうとしています。

4

9 に答える 9

71

WooCommerce 3.6 以降ではwoocommerce_add_to_cart_redirect(props @roman)を使用できます

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

元の答え:

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();
}
于 2013-03-24T11:35:37.563 に答える
12

この機能を有効にできる WooCommerce 設定内のオプションがあります。

訪問者をカートページにリダイレクトするオプション

WP 管理パネル > WooCommerce > カタログにログインし、オプションを選択するだけです。これが役立つことを願っています!

于 2013-03-24T00:39:51.903 に答える
12

魔法のように機能するシンプルなソリューションを見つけました。

  1. @Ewout が述べたように、「成功した追加後にカート ページにリダイレクトする」というボックスをオンにします。
  2. Woocommerce > 設定 > チェックアウト (タブ) - カートとチェックアウトのページを選択する必要がある場合は、チェックアウト ページをカート ページとして選択します (画像を添付)。

それでおしまい。私のために働きます。 ここに画像の説明を入力

于 2014-07-30T14:31:12.870 に答える
3

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

}

しかし、コードの 1 行が際立っており、現在の woocommerce プロジェクトにとって非常に価値があります。

ユーザーが製品ページを自動的にバイパスするために使用できる直接リンクがあります。 http://your-site.com/?add-to-cart=37

「37」は製品 ID に置き換えられます。

これは、不必要な手順を排除し、ユーザーをホームページやその他の非 woocommerce ページ/投稿から直接チェックアウトするのに役立ちました.

于 2014-06-19T13:46:32.103 に答える
1

フィルターadd_to_cart_redirectは WooCommerce 2.6 で廃止されました。代わりにwoocommerce_add_to_cart_redirectを使用してください。

これを functions.php に追加します。

add_filter ('woocommerce_add_to_cart_redirect', function() {
  return WC()->cart->get_checkout_url();
} );
于 2016-08-31T10:29:16.090 に答える
0

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 
  }
}
于 2017-03-23T08:00:55.593 に答える