プラグイン woocommerce を使用して e コマースを作成しました。サブスクリプションのみを販売しているため、「/cart/」ページは役に立ちません。顧客が「カートに追加」ボタンをクリックすると、チェックアウトページが表示されるように、それを取り除こうとしています。
9 に答える
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();
}
この機能を有効にできる WooCommerce 設定内のオプションがあります。
WP 管理パネル > WooCommerce > カタログにログインし、オプションを選択するだけです。これが役立つことを願っています!
魔法のように機能するシンプルなソリューションを見つけました。
- @Ewout が述べたように、「成功した追加後にカート ページにリダイレクトする」というボックスをオンにします。
- 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;
}
しかし、コードの 1 行が際立っており、現在の woocommerce プロジェクトにとって非常に価値があります。
ユーザーが製品ページを自動的にバイパスするために使用できる直接リンクがあります。 http://your-site.com/?add-to-cart=37
「37」は製品 ID に置き換えられます。
これは、不必要な手順を排除し、ユーザーをホームページやその他の非 woocommerce ページ/投稿から直接チェックアウトするのに役立ちました.
フィルター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();
} );
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
}
}