バージョン選択

フォーラム

メニュー

オンライン状況

39 人のユーザが現在オンラインです。 (30 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 39
もっと...

サイト内検索

質問 > フロント機能 > 支払方法を使用した判別について

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
yuh
投稿日時: 2014/4/24 20:54
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 支払方法を使用した判別について
すごくやっつけでデバッグ0で作ったもので申し訳ないですが、
SC_Helper_Payment.phpのgetByPriceで特定のpayment_idであれば手数料を届け先分加算でするやつ作ってみました。
一応確認画面ではそれっぽくなってますが、受注管理とかは知りません。

    public function getByPrice($total)
    {
        // 削除されていない支払方法を取得
        $payments = $this->getList();
		
        $arrPayment = array();
        foreach ($payments as $data) {
			if(count($_SESSION['shipping']) > 0 AND $data['payment_id'] ==4 ){
				$data['charge'] =  count($_SESSION['shipping']) * $data['charge'];
			}
            // 下限と上限が設定されている
            if (strlen($data['rule_max']) != 0 && strlen($data['upper_rule']) != 0) {
                if ($data['rule_max'] <= $total && $data['upper_rule'] >= $total) {
                    $arrPayment[] = $data;
                }
            }
            // 下限のみ設定されている
            elseif (strlen($data['rule_max']) != 0) {
                if ($data['rule_max'] <= $total) {
                    $arrPayment[] = $data;
                }
            }
            // 上限のみ設定されている
            elseif (strlen($data['upper_rule']) != 0) {
                if ($data['upper_rule'] >= $total) {
                    $arrPayment[] = $data;
                }
            }
            // いずれも設定なし
            else {
                $arrPayment[] = $data;
            }
        }

        return $arrPayment;
    }

っと書いて2.11系だと今気がついて役に立たないことに気がつきました。
2.11.5の場合だと
SC_Helper_Purchase.phpのgetPaymentsByPriceに

    function getPaymentsByPrice($total, $deliv_id) {

        $arrPaymentIds = $this->getPayments($deliv_id);
        if (SC_Utils_Ex::isBlank($arrPaymentIds)) {
            return array();
        }

        $objQuery =& SC_Query_Ex::getSingletonInstance();

        // 削除されていない支払方法を取得
        $where = 'del_flg = 0 AND payment_id IN (' . implode(', ', array_pad(array(), count($arrPaymentIds), '?')) . ')';
        $objQuery->setOrder("rank DESC");
        $payments = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image, charge", "dtb_payment", $where, $arrPaymentIds);
        foreach ($payments as $data) {
			if(count($_SESSION['shipping']) > 0 AND $data['payment_id'] ==4 ){
				$data['charge'] =  count($_SESSION['shipping']) * $data['charge'];
			}
            // 下限と上限が設定されている
            if (strlen($data['rule']) != 0 && strlen($data['upper_rule']) != 0) {
                if ($data['rule'] <= $total && $data['upper_rule'] >= $total) {
                    $arrPayment[] = $data;
                }
            }
            // 下限のみ設定されている
            elseif (strlen($data['rule']) != 0) {
                if($data['rule'] <= $total) {
                    $arrPayment[] = $data;
                }
            }
            // 上限のみ設定されている
            elseif (strlen($data['upper_rule']) != 0) {
                if($data['upper_rule'] >= $total) {
                    $arrPayment[] = $data;
                }
            }
            // いずれも設定なし
            else {
                $arrPayment[] = $data;
            }
          }
        return $arrPayment;
    }


このように追記すれば実装できるかもです。
実行すらしてませんがorz
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   支払方法を使用した判別について Shinnosuke 2014/4/24 18:23
   » Re: 支払方法を使用した判別について yuh 2014/4/24 20:54
       Re: 支払方法を使用した判別について Shinnosuke 2014/4/24 22:18
       Re: 支払方法を使用した判別について Shinnosuke 2014/4/26 11:11

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,162名です
総投稿数は110,046件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1650
8
red
1570
9
mcontact
1299
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.