カートの制御、支払い履歴DBをチェック


eccubeはお作法が多い。

LC_Page_cart.php

		//////////////////////////////////// 支払い履歴 確認 ////////////////////////////////////
		// 支払い状況チェック(DBのorderテーブルをチェック)
		$objCustomer = new SC_Customer_Ex();
		$customer_id = $objCustomer->getValue('customer_id');
		$this->result_order_flg = $objCustomer->getOrderHist($customer_id);	// true:支払済、false:未払

		// 支払い履歴がなく、カートセッションに商品が入っていない場合、カートに追加する。
		if(empty($this->result_order_flg)){

			//////////////////// cart追加
			$objCartSess = new SC_CartSession_Ex();
			$cartList = $objCartSess->chkCartProduct(PRODUCT_TYPE_ID_MANNRIKI);
			if(empty($cartList)){
				$objCartSess = new SC_CartSession_Ex();

				$quantity = 1;	// 量:無制限
				$objCartSess->addProduct(PRODUCT_CLASS_ID_MANNRIKI, $quantity);
			}
			///////////////////////////////////////////////////////

SC_Customer.php

    // 会員の支払履歴を取得(最新の一件)
    public function getOrderHist($customer_id)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $arrOrderSummary =  $objQuery->getRow('*','dtb_order','customer_id = ? AND del_flg = 0 AND status <> ?',array($customer_id,ORDER_CANCEL));
//var_dump($arrOrderSummary);

		if(empty($arrOrderSummary)){
			// 未支払
			return false;
		}else{
			// 支払済
			return true;
		}
    }