フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

ワードプレスでショッピングカートを作ろう その8 カートに入れた商品を変更する・削除する

前回はセッションを使いカートに商品を追加しました。
ここでちょっとお詫びと訂正があります。

セッションハイジャック用にセッションIDを書き換える「session_regenerate_id()」という関数を紹介しましたが、これがサーバーの設定に依存するのか、うまく行かないことがあることが分かりました。
「session_regenerate_id()」でIDを書き換えるとかなり確率でセッションが切れてしまう可能性があります。
ワードプレスを汎用的に使うことを考えるとサーバーに依存するセッションIDの書き換えは使えないので、今回は使わない方向で話を進めます。

ただし、セッションIDの書き換えを行わなくてもユーザー情報はワードプレスの管理に任せているので、乗っ取られても被害は軽微です。個人情報の漏洩はありません。
日本語環境で動く有名なショッピングカートプラグイン「Welcart」のソースを見ても「session_regenerate_id()」は使っていないようなのでワードプレスでは「session_regenerate_id()」は鬼門なのかなと。

「session_regenerate_id()」は書き換え時にヘッダーリクエストを送信します。ヘッダーが既に出力されていると「headers already sent by」という警告が出てしまいます。
これを回避するためにはワードプレスの「wp-config.php」にセッションの記述をする、という裏技が紹介されていましたが、プラグインやテーマでなんとかできる範疇ではないので諦めました(^^;

ネットで検索すると「session_regenerate_id()」は公式の関数であるにも係わらず問題があると指摘されています。独自のセッション管理機能を実装する方法も紹介されていたので試してみたのですが、ワードプレスとの相性はいまいちでした。

というわけで気を取り直してカートに入れた商品を変更して削除する方法です。
カートに入れた商品を変更して削除するにはショッピングカートのデザインに変更と削除ボタンを追加します。
更新はフォームから送信されたデータをセッション変数の新しい値として書き換えあげればいいわけです。

ではまずはショッピングカートのフォームに変更と削除ボタンを追加してみます。
前回作成した「functions.php」を以下のように改作します。

会員限定コンテンツ

この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。

ログインはこちら

新規会員登録はこちら

パスワードをメールで送信します。

コメント

  1. 2018/06/13(水) 04:19:31
    #くず餅バー 悔しい‥ カートに入れたのに、 ログインセッションが切れていて、 ログインを押すとエラーに 時計を見ると17時30秒‥ 「くず餅バー(4種類各2本セット)」の在庫数が0となったため,購入はできません。他の商品の購入を行う場合は,該当商品の「削除」ボタンを押してください。
  2. 2018/06/13(水) 04:19:31
    姥活もそれなりに疲れるけど。今日の本業セッションのために2日かけて仕込みをやって、3時起きで最終チェックして総重量120kg位ある機材をクルマに積んで7時過ぎに出発。8:30に現地入りしてカートでそれを4回まで上げて90分でセッティングとテスト。本番セッション90分で撤収60分。帰宅でヘトヘトです
  3. 2018/06/13(水) 04:19:31
    @HISASHI37370102 おー!カート・コバーン! そうなんですね!荷物になるのと移住資金に神奈川で売って来ちゃったんですよ、プレシジョンとサンダーバード。プレベはUSA製だったんで高く買ってもらいました(笑)いつかセッションやりましょーヾ(^▽^)ノ♪
  4. 2018/06/15(金) 16:18:12
    @Rosen_akira112 カートに入れてるだけじゃ確保にいたらない分、他の商品も売り切れやセッション時間切れとかだったかもしれないですね😱
  5. 2018/06/16(土) 06:19:08
    音源に対しては財布のひもがないマンなのでアルバムとかわりかしカートにへいへいしてしまうんにゃが セッション時にあうのかと言われたら うん ファンタジー系ならあうんでねえかな!ていうながわりかし多くてな

記事に戻る

コメントを残す