質問 > フロント機能 > レビュー投稿でポイント付与 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mamano |
投稿日時: 2013/2/28 20:10
対応状況: −−−
|
一人前 登録日: 2011/6/28 居住地: 投稿: 83 |
レビュー投稿でポイント付与 [EC-CUBE]2.11.1
[レンタルサーバ]GMO VPS [OS]CentOS release 5.3 [PHP]5.1.6-23.9v1 [データベース]MySQL 5.0.77 [WEBサーバ]apache2 --------------環境------------- お世話になります。 レビュー投稿 ⇒ 管理画面で承認 ⇒ 公開 上記にて商品レビューを展開しておりますが、 承認したタイミングで、投稿者にポイントを自動付与するにはどうしたらよいでしょうか。 レビュー投稿にはログイン必須(会員登録必須)にはしております。 どなたかご教授いただけないしょうか。 よろしくお願いいたします。 |
dimaggio |
投稿日時: 2013/3/1 10:54
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: レビュー投稿でポイント付与 承認のタイミングでDBのdtb_customerテーブルにある顧客の保有ポイントデータを変更するSQL文を書くか、在りモノで流用するならSC_Helper_Purchase.php の1095行目辺りを参照するとかどうでしょう。
|
mamano |
投稿日時: 2013/3/1 14:52
対応状況: −−−
|
一人前 登録日: 2011/6/28 居住地: 投稿: 83 |
Re: レビュー投稿でポイント付与 dimaggio 様
ありがとうございます。 引用:
SQL分を書くためにはどこか参考になる(使いまわしのきく)部分を教えて貰えませんでしょうか。 すみません。。。 色々触ってみましたが、dtb_reviewに登録されている情報では、 dtb_customerのpointをどのように紐付けして登録すればよいのか さっぱり分かりません。。。 ど素人で申し訳ありませんが ご教授いただけませんでしょうか。 よろしくお願いいたします。 |
mamano |
投稿日時: 2013/3/3 18:49
対応状況: −−−
|
一人前 登録日: 2011/6/28 居住地: 投稿: 83 |
Re: レビュー投稿でポイント付与 もう少しいろいろ触ってみましたが、
会員登録時ポイント付与の機能をいかして、 店舗基本情報から会員登録ポイントをレビューポイントとして レビュー管理画面で表示を非表示に登録した際に ポイント付与しようと試行錯誤してますが 全く思う結果の動きをしてくれません・・・ どなたか他に方法を教えてもらえませんでしょうか。 ちょっと背に腹は代えられなくなってきたので、 カスタムの依頼も含めて、どなたか よろしくお願いいたします。 |
dimaggio |
投稿日時: 2013/3/4 10:57
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: レビュー投稿でポイント付与 例えばですが、 LC_Page_Admin_Products_ReviewEdit.php の86行目辺りに、下記のような処理を
追加してみるとどうでしょうか。 これで「商品管理>レビュー管理」の「この内容で登録する」ボタン押下で、顧客ID:1に正しく ポイントが加算されるとすれば、 1. 非表示状態から表示状態への変更時のみ処理を行うように制御をかける 2. レビューに紐付けてある(はずの) customer_id をセットする などの処理を追加してゆけばご希望の機能にたどり着きそうな気がします。 【オリジナル】 case 'complete': $this->arrErr = $this->lfCheckError($objFormParam); // エラー無し if (!$this->arrErr) { // レビュー情報の更新 $this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam); // レビュー情報のDB取得 $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']); $this->tpl_onload = "alert('登録が完了しました。');"; } break; 【追加後】 case 'complete': $this->arrErr = $this->lfCheckError($objFormParam); // エラー無し if (!$this->arrErr) { // レビュー情報の更新 $this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam); // ここから $addCustomerPoint = 1000; $customer_id = 1; // ▼会員テーブルの更新 $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->update('dtb_customer', array('update_date' => 'CURRENT_TIMESTAMP'), 'customer_id = ?', array($customer_id), array('point' => 'point + ?'), array($addCustomerPoint)); // ▲会員テーブルの更新 // ここまで // レビュー情報のDB取得 $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']); $this->tpl_onload = "alert('登録が完了しました。');"; } break;
|
mamano |
投稿日時: 2013/3/5 3:30
対応状況: −−−
|
一人前 登録日: 2011/6/28 居住地: 投稿: 83 |
Re: レビュー投稿でポイント付与 ありがとうございます!
ポイントの登録はできました。 customer_idと紐付けることもできました。 そこで、ポイント付与の上限(投稿2回まで)を設けるために dtb_customerにcountというフィールドを追加して 1回書き込み(承認)時にcountの数字を0→1とするため 下記のように修正しましたが、countフィールドに+1ができません。 // ここから $addCustomerPoint = 500; $customer_id = ($this->tpl_customer_id); $addCount = 1; // ▼会員テーブルの更新 $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->update('dtb_customer', array('update_date' => 'now()'), 'customer_id = ?', array($customer_id), array('point' => 'point + ?'), array($addCustomerPoint), array('count' => 'count + ?'), array($addCount)); // ▲会員テーブルの更新 何が原因かお教えいただけませんでしょうか。。。 |
dimaggio |
投稿日時: 2013/3/5 10:33
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: レビュー投稿でポイント付与 ご希望に近づけたようで何よりです。
$objQuery->update('dtb_customer', array('update_date' => 'now()'), 'customer_id = ?', array($customer_id), array('point' => 'point + ?', 'count' => 'count + ?'), array($addCustomerPoint, $addCount)); とかだとどうですかね。
|
mamano |
投稿日時: 2013/3/6 6:52
対応状況: −−−
|
一人前 登録日: 2011/6/28 居住地: 投稿: 83 |
Re: レビュー投稿でポイント付与 ありがとうございます!
無事、ポイントの付与ができまして countの値も更新されました。 そこで、次のステップで躓いているのですが、、、 dtb_customerのcountの値が取得できないでいます。 SC_Helper_Customer.phpの $ret = $objQuery->select("*","dtb_customer","customer_id=?", array($customer_id)); $arrForm = $ret[0]; 上記をswitchの前に挿入したのですが値が取得できません。 何が原因か、ご教授いただけないでしょうか。 何度も申し訳ありませんがよろしくお願いいたします。 |
dimaggio |
投稿日時: 2013/3/6 10:34
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: レビュー投稿でポイント付与 うーむ、なんですかね。
objQueryオブジェクトのインスタンス化がされていないとか? $objQuery =& SC_Query_Ex::getSingletonInstance(); の行を、$objQuery->update行の前から、$ret = $objQuery->select行の前に移動してみても駄目でしょうか。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |