2012-01-06 11 views
1

これはおそらく誰かが探しているかもしれない機能です。新しいレビューが追加されるたびに、店舗の連絡先メールアドレスにメール通知を送信したいと思います。新しいクチコミを追加するとメールが通知されます - Magento

新しいレビューが掲載されるとすぐに、独自のモジュールを作成して店舗の所有者(連絡先のメールアドレス)に通知する必要があります。

私が抱えていることは、これがcronジョブで実行される必要があるか、新しいレビューが投稿されるとすぐにそれ自身で実行できるかどうかということです。

また、新しいレビューを確認して電子メールのアラートを送信する条件となるのは正確です。これは私の頭の上にあるものですが、どのようにすれば良いかを知る人がいれば、彼らの提案に落ちるだけではありません。事前

+0

一般的なマゼンタクラスをオーバーライドまたはオーバーライドします。 –

答えて

5

おかげディック・ローランは、製品のレビューが置かれたときに電子メールでお知らせするオブザーバを使用することができます示唆したように。

app/code/core/Mage/Review/etc/config.xml

をして、このイベントを使用して誰かがすでに存在している: はイベントがある場合は審査が保存された後に見てみると、私がチェック

 <events> 
      <review_save_after> 
       <observers> 
        <rss> 
         <class>rss/observer</class> 
         <method>reviewSaveAfter</method> 
        </rss> 
       </observers> 
      </review_save_after> 
     </events> 

だから、これはあなたが探しているイベントです以下のために:review_save_after

Customizing Magento using Event/Observer

の詳細については、このMagentoのウィキリンクを参照してください。

レビューが投稿されたときに通知を受けたい場合にのみ有効です。より具体的なリンクが必要な場合は、Mage_Review(コントローラーまたはレビューIDと商品をセッションに保存するためのモデル)からMagentoクラスを上書きすることができます。

投稿レビューに関する詳細セッションからそれを得る:

$session = Mage::getSingleton('core/session'); 
$data = $session->getFormData(true); 
+1

ちょうど明確にしたい:レビューのためのそのようなオブザーバーがないので、これは正しい方法ではない、少なくともこの要求のため – WonderLand

1

何私はあなたの説明から理解することは、「新しいレビューが掲載されているときは、メールの確認を送りたい」され

各レビューではとフォームポストがあるでしょう。 次に、レビューデータをdbに保存し、非同期で電子メール通知を送信することができます。 電子メールを送信するには、SMTPサーバー接続を設定またはコードで設定し、メールを送信するだけです。

あなたが望むのは何ですか?あなたは後に アプリ/コード/コア/メイジ/レビュー/コントローラ/ ProductController.php に mail(to,subject,message)行を追加することができ、迅速かつ非常に汚い修正のために

あなたが必要なものを詳細にエルスポスト..

1

$session->addSuccess($this->__('Your review has been accepted for moderation.'));

+0

このプラグインを試してみてください。 FmeAddonsは、製品パッケージとともにソースコードを提供します。新しいクチコミが投稿されたときに、レビューリマインダーのために顧客と店オーナーにメールを両方の顧客に送信する。 http://www.fmeaddons.com/magento/reviews-ratings-booster.html –

+0

'main()'は何をしますか? – Dan

+0

申し訳ありませんが、私の悪い、それはメールになっていた。今編集されました。 – Mike

-1

// $ rating = $ this-> getRequest() - > getParam( 'ratings'、array());追加

$ratingmsg=''; 
foreach($data as $key => $value){ 
      $ratingmsg.='<b>'.$key.':</b> '.$value.'<br/>'; 
      } 

//以降$セッション - > addSuccess($この - > __( 'あなたのレビューが節度のために受理されました。')); //追加

$mail = Mage::getModel('core/email'); 
        $body='<b>Produit :</b> '.$product->getName().'<br/>'.$ratingmsg.'<br/><br/>Pour valider ce commantaire rendez vous dans <br/>catalogue > commentaires > commentaires en attente'; 
        $mail->setToName('name'); 
        $mail->setToEmail('[email protected]'); 
        $mail->setBody($body); 
        $mail->setSubject('Un nouveau commentaire sur XX'); 
        $mail->setFromEmail('[email protected]'); 
        $mail->setFromName("Name"); 
        $mail->setType('html');// YOu can use Html or text as Mail format 

        try { 
        $mail->send(); 
        //Mage::getSingleton('core/session')->addSuccess('Your request has been sent'); 
        } 
        catch (Exception $e) { 
         Mage::log($e->getMessage(), null, 'mail.log'); 
        } 
+2

コードの各行があなたの例で何をするのかについての説明を追加する価値があるでしょう。そうすれば、コードを知らない人は各部品が何をするのか把握することができます – Jonathan

関連する問題