Opencart を搭載したストアで永続的なショッピング カートを作成したいと考えています。つまり、ユーザーがショッピング カートに商品を追加し、ユーザーがまだログインしていない場合です。しかし、次に顧客が 1 週間以内に再度サイトにアクセスすると、商品がカートに入っているはずです。
ユーザーが明示的にカートまたはチェックアウトから商品を削除した場合、または 1 週間後にのみ、商品を削除する必要があります。
これはクッキーを使用して行うことができると思いますか? 助けていただければ幸いです
これを行うには非常に簡単な方法があります。
この変更は、OC 1.4.XX および OC 1.5.XX で機能します。
方法は次のとおりです。
ホーム ディレクトリで、system/library/session.php を見つけます。
次のような行があります。
session_set_cookie_params(0, '/');
24 時間 Cookie の場合は、行を次のように変更します。
session_set_cookie_params(60*60*24, '/');
1 分間の秒数に 1 時間の分数を掛けて、Cookie を設定したい 1 日の時間数を掛けます。
これは真の永続 Cookie ではなく、非常に長いセッション Cookie であり、Jay Gilford が指摘したように、OpenCart で永続 Cookie を作成する [簡単な] 方法はありません。皆さんご存知です。また、OpenCart はこの Cookie をセッション Cookie として扱うため、セッションの長さに関係なく、Cookie の有効期限が切れていない限り、新しい有効期限で Cookie を自動的に更新することはありません。
拡張セッション Cookie の無害な副作用は、事前にログアウトせずに管理者ページにログインすると、「無効なトークン」メッセージが表示されることです。これは、(拡張) セッション Cookie が最後の管理者ログインを「記憶」しているためです。これを無視してログインしてください。ただし、別の欠点があります。それは、製品価格の変更があり、ユーザーがその製品を既にバスケットに追加している場合です。 、ユーザーは以前の価格を 24 時間 Cookie に保存します。
OpenCart がこのように構築されている理由は、登録ユーザーがログアウトしない限り永続的な Cookie を禁止する EU のプライバシー法にあるようです。米国とカナダで Opencart を使用している多くの e コマース Web サイトは、固定化された Cookie ポリシーによって不必要に負担をかけられており、Web サイトに戻ってきた顧客を失い、注文をやり直す必要があります。
opencart でこれを行う mod はありません。コメント セクションで述べたように、トークンで Cookie を使用するか、セッションの有効期限を 7 日間に設定するのが最善の方法です (ただし、これには欠点があります)。
解決策については、次のコメントを参照してください。