質問 > その他 > ポイントを率ではなく固定の値での付与について |
その他
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kenken5050 |
投稿日時: 2010/4/2 18:41
対応状況: −−−
|
新米 登録日: 2010/4/2 居住地: 投稿: 6 |
Re: ポイントを率ではなく固定の値での付与について 返信ありがとうございます。
大変丁寧な説明ありがとうございます。 さっそく実装してみた所、ポイント付与が確認できました。 また解らない事がありましたら質問させて下さい。 本当にありがとうございました。 |
ukai |
投稿日時: 2010/4/2 17:47
対応状況: −−−
|
常連 登録日: 2009/5/29 居住地: 東京都 投稿: 54 |
Re: ポイントを率ではなく固定の値での付与について 自分もポイントの加算等をいじったことはあります。
kenken5050さんがしようとしておられることよりも大分簡単な カスタマイズですが…。 ログインに成功している場合、 例えばdata/class/pages/mypage/LC_Page_Mypage.phpを参考に すると 65行目〜 function process() { $objView = new SC_SiteView(); $objQuery = new SC_Query(); $objCustomer = new SC_Customer(); // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, "mypage/index.php"); // ログインチェック if(!$objCustomer->isLoginSuccess()) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); }else { //マイページトップ顧客情報表示用 $this->CustomerName1 = $objCustomer->getvalue('name01'); $this->CustomerName2 = $objCustomer->getvalue('name02'); $this->CustomerPoint = $objCustomer->getvalue('point'); 以下略 $objCustomerが顧客情報を全て取得しているので、 ポイント自体を取得するのは丁度最後の行のようにすればいいと思います。 ポイントを何か変数にセットして↓ $point = $objCustomer->getvalue('point'); $point += 100; //ポイント更新 $objQuery = new SC_Query(); $where = "customer_id = ?"; $sqlval['point'] = $point; $sqlval['update_date']= "NOW()"; $objQuery->update("dtb_customer", $sqlval, $where, array($objCustomer->getvalue('customer_id'))); 更新自体は上のコードのようにしてできると思います。 ただどこに組み込むのが一番いいのか、曜日の判定とかは 自分も勉強不足で定かでないです。 すみません |
kenken5050 |
投稿日時: 2010/4/2 17:13
対応状況: −−−
|
新米 登録日: 2010/4/2 居住地: 投稿: 6 |
Re: ポイントを率ではなく固定の値での付与について こんにちは。
返信ありがとうございます。 はい、固定ポイントであっています。言い回しがおかしくてすいませんでした。 ただ購入した場合のポイントではなく、例えば毎週月曜にログインしたら100ポイント付与等をする等を考えております。 ですのでデータベースからポイントの項目をGETして100足してSETするという感じのコードはどうなるか解りますでしょうか? |
ukai |
投稿日時: 2010/4/2 17:04
対応状況: −−−
|
常連 登録日: 2009/5/29 居住地: 東京都 投稿: 54 |
Re: ポイントを率ではなく固定の値での付与について こんにちは。
意図が間違っていたらごめんなさい。 固定のポイントを付与するという考えでいいのでしょうか? 上記の考えで正しいのなら、 data/class/helper/SC_Helper_DB.phpの sfTotalConfirm(1491行)という関数で最終的な受注計算を行っています。 その関数内・1542行目あたりの加算ポイントの編集を修正すればいいのではないでしょうか? 以下が実際のコードです。 // 加算ポイントの計算 if (USE_POINT === false) { $arrData['add_point'] = 0; } else { $arrData['add_point'] = SC_Utils::sfGetAddPoint($objPage->tpl_total_point, $arrData['use_point'], $arrInfo); if($objCustomer != "") { // 誕生日月であった場合 if($objCustomer->isBirthMonth()) { $arrData['birth_point'] = BIRTH_MONTH_POINT; $arrData['add_point'] += $arrData['birth_point']; } } } if($arrData['add_point'] < 0) { $arrData['add_point'] = 0; } 直接の加算ポイントの計算は、上記の引用4行目のSC_Utils::sfGetAddPoint つまり、data/class/util/SC_Utils.phpのsfGetAddPointという 関数で行っています。 毎回何を買っても同じポイントでいいのなら、SC_Helper_DB.phpの 方を直せばいいと思います。 何か違う計算方法にするのなら、たぶんSC_Utils.phpの方を直さないといけないと思います。 試してないので定かではないですが… |
kenken5050 |
投稿日時: 2010/4/2 16:35
対応状況: −−−
|
新米 登録日: 2010/4/2 居住地: 投稿: 6 |
ポイントを率ではなく固定の値での付与について はじめまして EC−CUBEの初心者です。
会員にポイントを付与するもっともシンプルなコードをお教え下さい。ポイントは率ではなくある固定の値です。 例えば与えるポイントが100ポイントだとするとコードはどうなるのでしょうか? 宜しくお願い致します。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |