【WooCommerce】カートを飛ばして決済画面へ直行!「直接決済リンク」の作り方とカート重複を防ぐカスタマイズ

folder_openWooCommerce

WooCommerceでカートを飛ばして決済画面へ直行させる方法を解説。
直接決済リンクの作り方から、カート重複を防ぐカスタマイズコードまで実務目線で紹介します。

WooCommerceで商品を販売していると、
LPやバナーから、余計な画面を挟まずに決済まで進ませたい
と思ったことはありませんか?

特に、

  • 1商品完結型のLP
  • 広告・SNSからの流入
  • サブスク・デジタル商品・講座販売

では、カート画面を経由すること自体が離脱要因になります。

WooCommerceのデフォルト仕様では、

商品追加 → カート → チェックアウト

という流れになりますが、
今回は 「カートを完全にスキップし、決済画面へ直行させる
プロ向けのWooCommerceカスタマイズを解説します。

しかも、

  • プラグイン不要
  • カート重複を防止
  • 1商品購入に最適化

という、実運用で安全な方法です。

1. 基本:WooCommerceで「直接決済」させるURLの仕組み

WooCommerceには、URLパラメータを使って
クリックと同時に商品をカートへ追加する仕組みが標準で用意されています。

基本となる直接決済URL
以下のURLを作成し、ボタンのリンク先に設定するだけで準備は完了です。

https://あなたのドメイン/checkout/?add-to-cart=商品ID

このURLを、

  • LPのCTAボタン
  • バナー
  • メールリンク

に設定するだけで、
商品追加 → チェックアウト画面」まで一気に進ませることが可能です。

 

商品IDの確認方法
WordPress管理画面の「商品」→「商品一覧」を開く。

該当する商品にマウスを合わせると表示される
「ID: 〇〇」という数字を確認してください。

※バリエーション商品(サイズ・色別など)の場合は、
商品編集画面の「バリエーション」タブ内にあるIDを使用します。

 

2. そのまま使うと危険? 解決すべき運用上の2つの問題点

直接決済URLは便利ですが、
何も対策しないとUXを大きく損なう落とし穴があります。

①カートの重複・誤購入

  • 以前カートに入れた商品が残る
  • 同じリンクを複数回クリックすると数量が増える
  • 意図しない商品が一緒に決済される

特にLP販売では致命的なトラブルです。

実は私も昔これでやらかした事があります。

 

②チェックアウトに行かずカートへ戻される リダイレクト問題

WooCommerceの設定やAJAX挙動によっては、

  • add-to-cart → カート画面へリダイレクト
  • 決済画面へ進まない

といった現象が発生します。

 

3. カートをリセットして決済画面へ直行させるカスタマイズ

ここからがWooCommerceカスタマイズの本題です。

以下のコードを追加することで、

  • 既存カートを自動で空にする
  • 商品追加後、必ずチェックアウトページへ遷移
  • 「カートに追加しました」という不要なメッセージを非表示

という 「1商品購入専用フロー」 を構築できます。

実装コード(プラグイン不要)

お使いのテーマの functions.php (または Code Snippets プラグインなど)に、以下のコードをコピー&ペーストしてください。

// 直接決済リンクの場合にカートを空にする処理
add_filter( 'woocommerce_add_to_cart_validation', 'clear_cart_before_add_to_cart', 10, 3 );

function clear_cart_before_add_to_cart( $passed, $product_id, $quantity ) {
    // URLに add-to-cart パラメータがある場合(=直接リンク経由)のみ実行
    if ( isset( $_GET['add-to-cart'] ) ) {
        wc_empty_cart();
    }
    return $passed;
}
// 商品追加後のリダイレクト先をチェックアウトページに変更
add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_to_checkout_directly' );

function redirect_to_checkout_directly() {
    return wc_get_checkout_url();
}

// 「カートに追加されました」のメッセージを非表示にする(任意)
add_filter( 'wc_add_to_cart_message_html', '__return_false' );

このコードのメリット

常に1点買いの状態を作れる
意図しない商品混入を防止して、他の商品が混ざらないため、LPからの成約に集中できます。

カート画面を完全バイパス
ユーザーは「ボタンをクリック → 支払い情報の入力」という最短ルートを通れます。

まさに、
Amazonの「今すぐ買う」ボタンに近いUXをWooCommerceで再現できます。

 

4. WooCommerce管理画面で確認すべき設定

コードを導入したら、WooCommerce自体の設定も合わせて確認しておきましょう。

項目設定場所
推奨設定カートのリダイレクト設定 > 商品 > 一般 > オフ(コードで制御するため)

AJAXの有効化設定 > 商品 > 一般 > オフ(リダイレクトを優先させるため)

 

5. このカスタマイズが向いているケース

特に以下のようなサイトでは、
CVR(成約率)が大きく改善します。

  • LP1商品販売
  • デジタルコンテンツ販売
  • オンライン講座・サブスク
  • 広告・SNS流入が多いECサイト

逆に、
複数商品を比較しながら購入させたいショップには不向きです。

まとめ 「1クリック短縮」が売上を変える

ECサイトにおいて、クリックから購入完了までのステップを1つ減らすことは、売上に直結します。

URL:
…/checkout/?add-to-cart=ID

カスタムコード
カートの自動クリア + チェックアウト直行リダイレクト処理

この2つを組み合わせることで、Amazonの「今すぐ買う」ボタンのような
スムーズな体験を自分のストアに実装可能。

WooCommerceを「売れる導線」に進化させることができます。

LP運用やSNS広告からの流入を狙っている方は、ぜひ試してみてください。

カスタマイズを行う際は、必ずバックアップを取ってから作業することをお勧めします。

関連記事

keyboard_arrow_up