2012-04-30 17 views
0

私はどこにでも見てきましたが、私の問題に対する答えを見つけることができません。私は登録時にユーザーアカウントを非アクティブ化し、その後BackOfficeでアクティブ化したいと考えています。私はこれを行うために管理が、私は自分のアカウントがアクティブになったとき、ユーザーにメールを送信したいので、私は横に/ unactivateのラジオボタンをアクティブにボタンを追加し、私はAdminCustomers.phpPrestashop:BackOfficeからのアカウントアクティベーション後にユーザーに電子メールを送信できません

<input type="submit" value="'.$this->l(' Send Email to inform user ').'"/> 

に次を追加しました。しかし、私はしないでください電子メールを送信する方法を知っている。私の質問はあなたにとってとてもシンプルなように思えるかもしれませんが、私はPHP/htmlの初心者ですので、少し難しいです。私は検索し、電子メールを送信する多くの例が見つかりましたが、それらのどれも働いているようです。

編集: 私がこれをやっているのは、個人と企業の2種類のクライアントがあるからです。企業の場合は、提供された情報(例:VAT番号)を確認する必要があります。そして特別価格にアクセスできるので、アカウントを有効にします。

答えて

0

は、私が作成し終わりましたモジュール。 Prestashop 1.5と完全に機能します。

0

ここでアカウントを有効にしていますか?アカウントがアクティブ化された後に電子メールを送信するコードを追加するだけで済みます。追加のステップを追加することは意味がないようです(管理者が忘れる可能性があります)。私は、次のようなものを使用することになり、モジュール内

private function _emailNewAccount($customer, $address, $messages) 
    { 
    $configuration = Configuration::getMultiple(array('PS_LANG_DEFAULT', 'PS_SHOP_EMAIL', 'PS_SHOP_NAME')); 
    $id_lang = (int)$configuration['PS_LANG_DEFAULT']; 
    $template = 'new_account'; 
$subject = $this->l('New Account', $id_lang); 
    $templateVars = array(
     '{firstname}' => $customer->firstname, 
     '{lastname}' => $customer->lastname, 
     '{address1}' => $address->address1, 
     '{address2}' => !empty($address->address2) ? $address->address2 : $this->l('--',  $id_lang), 
     '{city}' => $address->city, 
     '{postcode}' => $address->postcode, 
     '{email}' => $customer->email, 
     '{messages}' => is_array($messages) ? implode("\n", $messages) : (isset($messages) ? $messages : ''), 
     '{phone}' => !empty($address->phone) ? $address->phone : $this->l('n/a', $id_lang), 
     '{mobile}' => !empty($address->phone_mobile) ? $address->phone_mobile : $this->l('n/a', $id_lang), 
     '{customer_id}' => (int)$customer->id 
    ); 
    $iso = Language::getIsoById((int)($id_lang)); 
    if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) 
     Mail::Send($id_lang, $template, $subject, $templateVars, $customer->email,$customer->firstname.' '.$customer->lastname, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/'); 
} 

もちろん、あなたはまた、対応するテキストおよびHTML形式の電子メールテンプレートを作成する必要があります。 /modules/mymodulename/mails/en/new_account.html

/modules/mymodulename/mails/en/new_account.txtあなたはテンプレート内上記で定義されたフィールドを使用します。これらは、この場合には、私のモジュールdorectoryになります、あなたは new_account.txtで持っているかもしれないテキストのみのテンプレートのよう:

Hi {firstname} {lastname}, 

You have just registered on {shop_name}. 

Address: 

{address1} 
{address2} 
{city}, {postcode} 
Telephone: {phone}, Mobile: {mobile} 

{messages} 

あなたはこれまでにしようとしているものをあなたの質問に含める場合、それはいいかもしれません....

+0

回答ありがとうございました。私がこれをやっているのは、個人と企業の2種類のクライアントがあるからです。企業の場合は、提供された情報(例:VAT番号)を確認する必要があります。そして特別価格にアクセスできるアカウントを有効にします。 – Anila