ECcubeのマイページの購入履歴一覧に『対応状況』を表示させる

2010年7月5日

ECcubeのマイページの購入履歴一覧のデフォルトは

購入日時
注文番号
お支払い方法
合計金額
詳細

である。しかしユーザが知りたいのは、現在の対応状況だろう。それが分かるようにする方法は

1)購入履歴一覧プログラムを拡張側に差し替え
class/pages/mypage/LC_Page_Mypage.php
のprocess関数の中身全部を

/class_extends/page_extends/mypage/LC_Page_Mypage_Ex.php

にコピー。

2)/class_extends/page_extends/mypage/LC_Page_Mypage_Ex.php編集
//ページ送り用
if (isset($_POST['pageno’])) {
$this->tpl_pageno = htmlspecialchars($_POST['pageno’], ENT_QUOTES, CHAR_CODE);
}

というような部分の後くらいに
$masterData = new SC_DB_MasterData_Ex();
$this->arrORDERSTATUS = $masterData->getMasterData(“mtb_order_status");

を追加。

さらにその後にある
$col = “order_id, create_date, payment_id, payment_total";
をコメントアウトし、
$col = “order_id, create_date, payment_id, payment_total, status";
に変更。

3)テンプレート修正
Smarty/templates/****/mypage/index.tpl
で表示させたい場所に

<!–{foreach from=$arrORDERSTATUS key=key item=item}–>
<!–{if $arrOrder[cnt].status == $key }–>
<!–{$item}–>
<!–{/if}–>
<!–{/foreach}–>

というようなものを書いてあげればよい。

例)
<table summary="購入履歴">
<tr>
<th>購入日時</th>
<th>注文番号</th>
<th>お支払い方法</th>
<th>合計金額</th>
<th>詳細</th>
<th>ご対応状況</th>
</tr>
<!–{section name=cnt loop=$arrOrder}–>
<tr>
<td><!–{$arrOrder[cnt].create_date|sfDispDBDate}–></td>
<td><!–{$arrOrder[cnt].order_id}–></td>
<!–{assign var=payment_id value="`$arrOrder[cnt].payment_id`"}–>
<td><!–{$arrPayment[$payment_id]|escape}–></td>
<td><!–{$arrOrder[cnt].payment_total|number_format}–>円</td>
<td><a href="<!–{$smarty.server.PHP_SELF|escape}–>" onclick="fnChangeAction('./history.php’); fnKeySubmit('order_id’,'<!–{$arrOrder[cnt].order_id}–>’); return false">詳細</a></td>
<td>
<!–{foreach from=$arrORDERSTATUS key=key item=item}–>
<!–{if $arrOrder[cnt].status == $key }–>
<!–{$item}–>
<!–{/if}–>
<!–{/foreach}–>
</td>
</tr>
<!–{/section}–>
</table>