ログイン
始める

Easy Digital Downloads ドキュメント

Easy Digital Downloads のドキュメント、参考資料、チュートリアル

チェックアウト時にショッピングカートが空です

Easy Digital Downloadsにはネイティブのショッピングカートシステムがあり、ストアの訪問者はチェックアウト前に複数のアイテムをショッピングカートに追加できます。ただし、ホスト、サイト、ブラウザの設定によっては、この機能が壊れて、チェックアウト時にカートが空に見える場合があります。

まれに、サーバーの設定、ホスティング設定、または他のプラグインとの競合により、カートに商品を追加した後、ショッピングカートが空になる場合があります。この記事では、この問題が発生する理由と、その解決策について説明します。

キャッシュプラグイン

キャッシュプラグインは非常に一般的であり、広く使用されているため、よくある原因です。キャッシュプラグインの目的は単純で、ブラウザから要求されたときに特定のウェブサイトデータを保存して簡単にアクセスできるようにすることで、ウェブサイトの読み込み時間を短縮します。これはサイトを高速化し、サーバーのトラフィックを削減するための優れた方法ですが、ショッピングカートを正しく機能させるためには、いくつかの小さな変更が必要になる場合があります。

チェックアウトページのキャッシュを無効にする

チェックアウトページの情報は単一の訪問者に固有であるため、望ましくない結果をお客様に生じさせる可能性があるため、決してキャッシュされるべきではありません。カートへの追加、削除、カート合計の計算、およびチェックアウトページのその他のすべての機能は、ページデータが読み込まれるたびに実際の状態を反映する必要があります。チェックアウトページのキャッシュを無効にしないと、お客様が購入できない、または注文に誤った合計、税金、または商品が含まれるなどの問題が発生する可能性があります。

W3 Total Cache、WP Super Cache、またはその他の類似のプラグインを使用している場合は、チェックアウトページでのキャッシュを回避するように設定する必要があります。

キャッシュレイヤーとしてVarnishを使用している場合は、Easy Digital DownloadsとのVarnishの使用に関するセクションにジャンプしたい場合があります。

Cloudflare

Cloudflareは、ストアのパフォーマンスを向上させ、ビジネスを保護するための非常に強力なサービスであり、現在あなたがご覧になっているこのサイトでも使用しています。Cloudflareをお使いのEasy Digital Downloads搭載ストアで機能するように設定するには、いくつかの最小限の変更を行うだけで済みます。

ページルール

Cloudflareの設定内に以下のページルールを作成します。ページルールは、[ルール]→[ページルール]→[ページルールを作成]をクリックして追加できます。

まず、Cloudflareサイトダッシュボードから左側の「ルール」メニューを見つけ、展開して「ページルール」をクリックします。

ここで、さまざまなページルールを管理し、優先順位に従って配置できます。チェックアウトページルールをこのリストの一番上に置いて、最初に処理され、他のルールがチェックアウトに影響しないようにするのが最善です。

ページルールを作成するには、「ページルールを作成」ボタンをクリックします

ページルールを作成する際には、このルールが適用されるURLと、Cloudflareに適用させたいルールを定義する必要があります。チェックアウトページについては、Cloudflareのキャッシュレイヤーを常にバイパスしたいので、「キャッシュレベル」設定を使用し、「バイパス」に設定します。これは、Cloudflareがチェックアウトページへのリクエストをすべて直接サーバーに送信することを意味します。

このページルールを追加する際は、URLの末尾にスラッシュと*文字を付けるようにしてください。これにより、割引コードなどのクエリ文字列パラメータに一致し、EDDのチェックアウトの他の機能に影響が出ないようになります。

ホストキャッシュ

一般的ではありませんが、サーバーサイドキャッシュもショッピングカートシステムにとって同様に大きな問題となる可能性があります。多くのウェブホストは、自分でオプトインして設定するキャッシュサービスを提供しています。その他、
WP Engineのような、事前に設定された積極的なキャッシュを採用しているホストもあります。これらのツールはストアのパフォーマンスを向上させ、より多くのユーザーを獲得するのに役立ちますが、パフォーマンスと信頼性のバランスをとるために、いくつかの調整が必要になる場合があります。

WP Engine

サイトを WP Engineでホストしている場合、チェックアウトページにアクセスした際に空のカートの問題が発生することがあります。これは積極的なページキャッシュ(これは良いことです!)が原因ですが、WP Engineにチェックアウトページ用の特別なキャッシュ例外を設定してもらうことで、簡単に解決できます。

これを行うには、WP Engineのサポートポータルからサポートチケットを送信し、チェックアウトページをキャッシュから除外するように依頼してください。

チェックアウトページとは、[download_checkout]ショートコードが記載されており、[Downloads] > [Settings]に保存されているページのことです。

スクリーンショット 2013-09-09 12:32:29

皆様のために、このサンプルチケットをコピー&ペーストしてご利用ください。

こんにちは!

私のサイトではEasy Digital Downloadsのeコマースプラグインを使用していますが、ページキャッシュとチェックアウトページで問題が発生しています。Easy Digital Downloadsチームから、チェックアウトページにキャッシュ例外を設定するように依頼するように指示されました。

以下のURLを例外リストに追加していただけますでしょうか?

https://YOURSITE.com/{put your checkout page URL here}

よろしくお願いします!

注意:チェックアウトページはキャッシュされなくなるかもしれませんが、「削除」リンクをクリックしてもカートからアイテムが正しく削除されない問題が発生する可能性があります。この場合、WP Engineに「'edd_saved_cart' および 'edd_items_in_cart' クッキーをキャッシュから除外する」ように依頼してください。これでリンクの問題が解決するはずです。

EasyEngine/Nginx

サイトをEasyEngine/Nginxでホストしており、Redisキャッシュを使用している場合は、redis.conf(またはredis-php7.conf)を見つけて編集し、edd_items_in_cart|を追加する必要があります。たとえば、例外は次のようになります。

# Don't use the cache for logged in users or recent commenter
if ($http_cookie ~* "edd_items_in_cart|comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; }

Varnish

Easy Digital DownloadsストアでVarnishキャッシュサーバーを使用している際に空のショッピングカートが発生する場合は、以下のルールを使用してこれを防ぐことができます。

Varnish設定ファイル内

// Tells Varnish to pass through on the checkout page
if (req.url ~ "checkout") { return (pass); }

// Tells Varnish to pass through on any request with edd_action in the query string
if (req.url ~ "edd_action") { return (pass); }

// Tells Varnish to pass through on any request with add_to_cart in the query string
if (req.url ~ "add_to_cart") { return (pass); }

// Tells Varnish to pass through if any cookies with `edd` are found
if (req.http.cookie ~ "(^|;s*)edd") { return (pass); }

一部のVarnishチュートリアルや設定では、キャッシュヒット率を最適化するためにクエリ文字列の引数を並べ替えることが推奨されています。Varnishのこの機能は、Easy Digital Downloadsによって生成されたファイルダウンロードリンクが失敗する原因となる可能性があります。これは、Easy Digital Downloadsが使用するセキュアリンク検証のためです。このキャッシング手法を使用したい場合は、Easy Digital Downloadsでクエリ文字列の変更をサポートする方法に関する役立つガイドを作成しました。これにより、顧客はセキュアなファイルダウンロードにアクセスできるようになります。

サーバーがPHPセッションをサポートしていません

PHPセッションは、サイト訪問者にカスタマイズされたエクスペリエンスを提供するために設計されています。あるページから次のページへショッピングカートにアイテムを追加し、チェックアウト時にストアの全アイテムをカートで確認できる機能は、サイトに何も情報を共有していない新規訪問者にとって、可能な限りパーソナルなものです。

一部のサーバーまたはホストは、PHPネイティブの「セッションハンドラ」の使用をサポートしていません。Easy Digital Downloadsは訪問者のカート情報をPHPセッションに保存しますが、PHPのこの機能が利用できない場合、カートデータはページビュー間で保存できないため、空のカートが発生する可能性があります。

Easy Digital Downloadsは、データベースにセッションデータを保存し、Cookieを使用してこの問題を軽減することをサポートしています。このバージョンの「セッション」管理の使用は、データベースに依存するため、PHPセッションを使用するほど高速ではありませんが、空のカートの問題を解決できます。

データベースセッションを有効にするには、Downloads > Settings > Misc > Generalに移動し、Session HandlingをDatabase Sessionsに設定してください。

データベースのパフォーマンスを最適に保つために、Easy Digital DownloadsはWordPressのWP Cronイベントを使用して、放棄されたセッションを1日2回クリーンアップします。

admin-ajax.phpファイルをブロック

WordPressコアにはadmin-ajax.phpというファイルが含まれており、これはWordPress全体、Easy Digital Downloadsでも頻繁に使用されます。このファイルへのアクセスをブロックすると、カートの動作やWordPressサイトの他の側面で問題が発生する可能性があります。このファイルへのアクセスをブロックすることは決して推奨されません。

セキュリティプラグインを使用している場合や、サーバーでアグレッシブなセキュリティ設定を行っている場合は、一時的に無効にして、カートの機能を確認してください。セキュリティ設定でこのファイルがブロックされている場合、カートは正常に機能しません。

ブロックされたadmin-ajax.phpの詳細については、完全なドキュメントを参照してください。

/wp-admin/をブロック

セキュリティ上の目的で/wp-admin/へのアクセスをブロックするプラグインがあり、これらは以前に言及したadmin-ajax.phpファイルへのアクセスもブロックすることがあり、上記の問題を引き起こします。

これが問題かどうかをテストするには、管理ブロックプラグインを一時的に無効にしてください。問題が解決した場合は、そのプラグインが原因であったことがわかります。

ブラウザのCookieが無効になっています

EDDはCookieを使用してセッションに情報を保存し、カート内のアイテム数をカウントします。ブラウザのCookieが無効になっている場合、ショッピングカートシステムは期待どおりに機能しない可能性があります。

URL設定

前述の通り、Easy Digital Downloads はセッションとクッキーを使用して、ページ間の訪問者のカートデータを保存し、ストアでユニークな体験を提供できるようにしています。クッキーは、ユーザーに関する情報で、ブラウザに保存されます。セキュリティ上の理由から、Easy Digital Downloads が使用するクッキーは、作成時にストアのURLを定義します。アイテムをカートに追加するページチェックアウトページの間で、WordPressサイトが同じURLを維持するように設定されていることが重要です。

これには、URLのhttpまたはhttpsの部分が含まれます。httpを使用しているページで製品をカートに追加しようとし、チェックアウトページがSSLで保護されておりhttpsで表示されている場合、セキュアなチェックアウトページは、以前にアイテムをカートに追加するために使用した非セキュアなページによって追加されたクッキーにアクセスできないため、カートは空になります。

ストア全体が、WordPressのURL設定を含め、URLにhttpsを使用して安全な形式で読み込まれることをお勧めします。ホストがストアのSSL証明書を提供していない場合は、それを取得してホストにインストールしてもらってください。ホストがサイトをhttpsのみで読み込むように設定できることを確認してください。できない場合は、Really Simple SSLを使用して、WordPressに常にSSLセキュアバージョンでサイトを読み込ませることができます。

「設定」→「一般」の下に設定したものが、サイト全体のすべてのリンクで使用されていることを確認してください。

場合によっては、インストールされているサードパーティのプラグインまたはスクリプトが、一定時間後にサイトアドレスまたはWordPressアドレスを自動的に変更することがあります。ストアが期待どおりに機能するように、サイトアドレスが変更されていないことを再確認してください。

.htaccessルール

.htaccessファイルは、サーバーがユーザーリクエストをページに正しくルーティングするために使用されます。WordPressには、カートが正しく機能するために依存している一連のデフォルトルールがあります。カートが空になる問題が発生している場合は、WordPressによって設定されたデフォルトの.htaccess構成を使用してみてください。

既知のプラグイン競合

まれに、Easy Digital Downloads のショッピングカートと他のWordPressプラグインとの間に競合が発生する可能性があります。コードで回避しようとしますが、回避できない場合もあり、Easy Digital Downloads とうまく連携できないことが保証できないプラグインのリストを維持しています。既知のプラグイン競合が発生した場合は、サポートチームに連絡して、競合に関するできるだけ詳細な情報を提供してください。喜んで問題を調査いたします。

この記事は役に立ちましたか?

今日から販売を開始しましょう!

50,000人以上のスマートなストアオーナーに参加して、WordPressでデジタル製品を販売する最も簡単な方法を使い始めましょう。

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]