ここでアカウントを有効にしていますか?アカウントがアクティブ化された後に電子メールを送信するコードを追加するだけで済みます。追加のステップを追加することは意味がないようです(管理者が忘れる可能性があります)。私は、次のようなものを使用することになり、モジュール内
:
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}
あなたはこれまでにしようとしているものをあなたの質問に含める場合、それはいいかもしれません....
回答ありがとうございました。私がこれをやっているのは、個人と企業の2種類のクライアントがあるからです。企業の場合は、提供された情報(例:VAT番号)を確認する必要があります。そして特別価格にアクセスできるアカウントを有効にします。 – Anila