我有一个带有共享电子邮件模板的多线程设置(商店A和B)。在这些模板中,我引用了区分A和B的自定义变量。
Shop A ==\ /==> Custom Var (version A)
>==> E-mail Template X ==<
Shop B ==/ \==> Custom Var (version B)
这很有效,除了1个问题:当我通过商店B的管理员创建帐户时,我无法获得商店B的密码提示。向该用户发送新密码将始终作为商店A发送
请注意,发送的欢迎邮件是正确的邮件(B),但我想这只是因为您从“创建帐户”屏幕中选择了发送商店。
我确实知道该帐户被标记为由管理员而非商店B创建,而不是当人们通过商店B注册时。我可以想象这可能会导致问题,但我仍然喜欢找到一种方法:
编辑:以下问题与管理员关于将用户与商店相关联的意义相关:How can I change a customer store_id in Magento or set the "created_from" attribute when creating a new customer
答案 0 :(得分:0)
默认情况下,似乎无法从链接到特定商店的管理员创建帐户。我确实找到了一种方法,通过听取adminhtml_customer_prepare_save并滥用帐户创建表单中的“发送自”。
这是我为之奋斗的模块:
等\ config.xml中:
<config>
<modules>
<Company_AccountPerStore>
<version>1.0</version>
</Company_AccountPerStore>
</modules>
<global>
<models>
<accountperstore>
<class>Company_AccountPerStore_Model</class>
</accountperstore>
</models>
</global>
<adminhtml>
<events>
<adminhtml_customer_prepare_save>
<observers>
<accountperstore_observer>
<class>Company_AccountPerStore_Model_Observer</class>
<method>customerPrepareSave</method>
</accountperstore_observer>
</observers>
</adminhtml_customer_prepare_save>
</events>
</adminhtml>
</config>
模型\ Observer.php:
class Company_AccountPerStore_Model_Observer extends Varien_Object
{
public function customerPrepareSave($observer)
{
$customer = $observer->getEvent()->getCustomer();
if (!$customer->hasStoreId() && $customer->hasData('sendemail_store_id')) {
$customer->setStoreId($customer->getData('sendemail_store_id'));
}
}
}
请注意,您将无法检测到该帐户是否已由管理员创建。