0

私はいたるところを見てきましたが、私の問題に対する答えを見つけることができません。登録時にユーザーアカウントを無効にし、その後BackOfficeで有効にします。私はなんとかこれを行うことができましたが、彼のアカウントがアクティブ化されたときにユーザーに電子メールを送信したいので、アクティブ化/非アクティブ化ラジオボタンの横にボタンを追加しました。AdminCustomers.phpに次を追加しました

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

しかし、私は電子メールを送信する方法がわかりません。私の質問はあなたには非常に単純に思えるかもしれませんが、私はphp / htmlに慣れていないので、私にとっては少し難しいです。メールを送信するための多くの例を検索して見つけましたが、どれも機能していないようです。

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

4

2 に答える 2

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

上記で定義したフィールドをテンプレート内で使用するため、テキストのみのテンプレートの場合は次のようになりますnew_account.txt

Hi {firstname} {lastname},

 You have just registered on {shop_name}.

 Address:

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

 {messages}

これまでに試したことを質問に含めると良いかもしれません....

于 2012-05-01T11:53:08.120 に答える
0

このためのモジュールを作成することになりました。Prestashop 1.5 と完全に連携します。

于 2013-03-26T12:22:11.513 に答える