EC-CUBEの購入履歴表示を発送済み商品に限定する

クレジットカード決済などで外部の決済モジュールを利用している場合、かつ決済モジュールの実装が不完全な場合、決済が通らなかったにもかかわらずEC-CUBEの購入履歴に表示され、ショップと顧客間で問題が発生する恐れがある。


そこで、EC-CUBEのマイページでは、発送済み商品のみ表示するように変更する。


PHP


/data/class/pages/mypage/LC_Page_Mypage.php(もちろんextendsに書くのがベスト)


    function lfGetOrderHistory($customer_id, $startno = -1) {
        $objQuery   = SC_Query_Ex::getSingletonInstance();

        $col        = "order_id, create_date, payment_id, payment_total";
        $from       = "dtb_order";
        // WHERE IN句の値は適宜変更すること
        $where      = "del_flg = 0 AND customer_id = ?<em> AND status IN (5, 1003)</em>";
        $arrval     = array($customer_id);
        $order      = "order_id DESC";

        if ($startno == -1) {
            return $objQuery->count($from, $where, $arrval);
        }

        $objQuery->setLimitOffset(SEARCH_PMAX, $startno);
        // 表示順序
        $objQuery->setOrder($order);

        //購入履歴の取得
        return $objQuery->select($col, $from, $where, $arrval);
    }