概要
woocommerce_add_to_cart_redirect
は、WooCommerce プラグインにおいて、商品がカートに追加された後にリダイレクトするページを制御するためのフィルターフックです。このフィルタは、カートに商品を追加した際に自動的に他のページへ移動させるときに使われることが多く、以下のような機能を実装する際によく使用されます。
- 特定の商品の追加後にカスタムページへ移動
- カートに商品を追加した後のメッセージの表示
- ユーザーが簡単にチェックアウトページへアクセスできるようにする
- 商品が追加された際に関連商品やおすすめ商品のページへ遷移
- 特定の条件に基づいて異なるページへリダイレクト
- モバイルデバイス向けに最適化されたリダイレクト
構文
add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect' );
パラメータ
string
$redirect_url リダイレクト先のURL (デフォルトはカートページ)
戻り値
- リダイレクト先の URL(文字列)
WooCommerce バージョン
- WooCommerce 2.1以降
WordPress バージョン
- WordPress 4.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: カート追加後にチェックアウトページにリダイレクト
このコードは、商品がカートに追加された後、自動的にチェックアウトページへユーザーをリダイレクトします。
add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_to_checkout' );
function redirect_to_checkout( $redirect_url ) {
return wc_get_checkout_url();
}
引用元: https://docs.woocommerce.com
サンプルコード 2: カートページにリダイレクト
このコードは、全ての商品がカートに追加された後、常にカートページにリダイレクトします。
add_filter('woocommerce_add_to_cart_redirect', 'redirect_to_cart');
function redirect_to_cart() {
return wc_get_cart_url();
}
引用元: https://woocommerce.com
サンプルコード 3: 特定の商品で異なるリダイレクト
このコードは、特定の商品(IDが123)をカートに追加した場合に、カスタムページにリダイレクトします。
add_filter('woocommerce_add_to_cart_redirect', 'custom_redirect_for_product');
function custom_redirect_for_product( $redirect_url ) {
if ( isset($_REQUEST['add-to-cart']) && $_REQUEST['add-to-cart'] == 123 ) {
return home_url( '/custom-page/' );
}
return $redirect_url;
}
引用元: https://www.smashingmagazine.com
サンプルコード 4: カスタムメッセージを表示するリダイレクト
このコードは、商品がカートに追加された際に、特定のメッセージを表示するカスタムページにリダイレクトします。
add_filter('woocommerce_add_to_cart_redirect', 'redirect_with_message');
function redirect_with_message() {
return home_url('/message-page/');
}
引用元: https://wpbeginner.com
サンプルコード 5: メンバーシップに基づくリダイレクト
このコードは、メンバーシップがあるユーザーに対して特定のページにリダイレクトします。
add_filter('woocommerce_add_to_cart_redirect', 'membership_based_redirect');
function membership_based_redirect( $redirect_url ) {
if ( user_can( get_current_user_id(), 'membership_level' ) ) {
return home_url('/members-area/');
}
return $redirect_url;
}
引用元: https://www.codeinwp.com
これらのサンプルコードは、WooCommerceの woocommerce_add_to_cart_redirect
フィルターフックを使用した様々なリダイレクトの実装例です。