開発メモ

日々の開発作業でハマったこと、気づいたことをメモしてきます。

OliveCartのカスタマイズ

WordPressを勉強しだして2ヶ月。初めてプラグインのカスタマイズをしてみました。

 

そしたら盛大にハマったので記事にしときます。

分かってしまったら本当単純なことでしたorz

 

1.やったこと

 お届け先の選択とか支払い方法の選択画面とかいらないっていうことだったので

 飛ばして確認画面に行くようした。

 

2.ハマったこと

住所入力(step4)から最終確認画面(step7)へ直接飛ばすような修正はすぐにできたが、注文を確定するとエラーで落ちるorz

send_mailというメソッドで落ちているようなのだがなにぶんwp初心者なので色々迷走する。

OrderListというものがないというところまで行き着いて、公式ページを見てみると

「注文した商品一覧」ということだが、最終確認画面にはちゃんと商品一覧出てる・・・

なんだこれー(´Д` )

3.原因

原因は「最終画面(step7)」に支払方法が渡っていなくて、send_mailの中でこけていた。

詳しい原因は突き詰めてないけど、どうやら支払方法が最終確認画面に渡っていない状態で確定をするとsend_mailで落ちるようだ。

4.対応内容

 以下のファイルを修正。

 wp-olivecart/cart/cart.php

 wp-olivecart/cart/pc/step4.php

 wp-olivecart/cart/pc/step7.php

 wp-olivecart/cart/mobile/step4.php

 wp-olivecart/cart/mobile/step7.php

 

 メインはcart.phpの修正。

 

 cart.php

 ①81行目あたりの

    $this -> step5(); ←ここを修正

    ↓

         $this -> step7();

 

 ②198行目あたりに2箇所

  return $this->step5();←ここを修正

  ↓
  return $this->step7();

 

 ③function step7(){に以下の行を追加

  $payment = $GLOBALS['fileread']->DBcart_read();

 

 step4.php

 ①以下のソースを追加

 <input value="1" id="payment1" name="payment" type="radio" checked="true" style="display: none"/>

 今回の対応は支払方法1固定で良いという話だったのでこのような形で1行追加します。 

 

 step7.php

 飛ばした画面で設定する項目空白で表示されているので、全て非表示にする。

 ※消すと何かありそうなので不要な部分にDsiplay:noneを設定して非表示にしてます。

 

これで送付先選択と支払方法選択を飛ばして確認画面へ行くことができます。

 

 

今回は久しぶりに盛大にハマりました。

WordPress初心者がいきなりプラグインのカスタマイズにトライしたのでしょうがないと言えばそうだけど。

 

まだなんとなく分かったレベルなので、もう一度整理して分かったことを記事にしていきます。