プラグインWooCommerceのwoocommerce_add_to_cart_redirectフィルタの使用方法・解説

概要

woocommerce_add_to_cart_redirect は、WooCommerce プラグインにおいて、商品がカートに追加された後にリダイレクトするページを制御するためのフィルターフックです。このフィルタは、カートに商品を追加した際に自動的に他のページへ移動させるときに使われることが多く、以下のような機能を実装する際によく使用されます。

  1. 特定の商品の追加後にカスタムページへ移動
  2. カートに商品を追加した後のメッセージの表示
  3. ユーザーが簡単にチェックアウトページへアクセスできるようにする
  4. 商品が追加された際に関連商品やおすすめ商品のページへ遷移
  5. 特定の条件に基づいて異なるページへリダイレクト
  6. モバイルデバイス向けに最適化されたリダイレクト

構文

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 フィルターフックを使用した様々なリダイレクトの実装例です。

この関数について質問する


上の計算式の答えを入力してください