我在“管理用户字段”中添加了一个字段&当向管理员发送电子邮件通知他们新用户注册时,我希望包含这个新字段。
我编写了一些代码从/administrator/components/com_virtuemart/classes/ps_shopper.php,中的_sendMail函数中的#__vm_user_info中获取这个新字段,并将变量添加到$message2中。
ASEND_MSG已被修改为接受该参数,但在创建用户时,该字段不包含在发送给管理员的电子邮件中。当我去看表的时候,数据就在那里。因此,为了解决问题,我在select语句中硬编码了用户名,添加了另一个用户&为硬编码用户发送了正确的值,而不是刚刚添加的值。我现在认为这是MySQL的一个提交问题,所以在尝试获得value...no运气之前,我在代码中放置了一个睡眠(4)。
有人能为我照亮这件事吗?
LarryR...
发布于 2012-07-26 18:14:46
需要在“返回真”行之前添加函数add()中的以下代码:
/***************************************************/ $pwd =$POST‘密码’;
$db = JFactory::getDBO();
$query = "SELECT id, name, email, username"
. "\n FROM #__users"
. "\n ORDER by id DESC LIMIT 1"
;
$db->setQuery( $query );
$rows = $db->loadObjectList();
$namee = $rows[0]->name;
$emaill = $rows[0]->email;
$usern = $rows[0]->username;
$pwd;
$lid = $rows[0]->id;
$dbv = new ps_DB;
echo $query = "SELECT *"
. "\n FROM #__{vm}_user_info"
. "\n WHERE user_id=$lid"
;
$dbv->setQuery( $query );
$fid = $db->loadObjectList();
$field = $fid[0]->extra_field_1;
$user = clone(JFactory::getUser());
$usersConfig = &JComponentHelper::getParams( 'com_users' );
if ($usersConfig->get('allowUserRegistration') == '0') {
JError::raiseError( 403, JText::_( 'Access Forbidden' ));
return false;
}
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get( 'useractivation' );
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', md5( JUserHelper::genRandomPassword()) );
$user->set('block', '1');
}
$component = 'com_user';
$activation_link = $mosConfig_live_site."/index.php?option=$component&task=activate&activation=".$user->get('activation');
$this->_sendMail( $namee , $emaill, $usern, $pwd, $activation_link);
/************************************************** Spinz ********************************************/注意:在这里,我们创建了用户邮件的用户名和密码的邮件函数。
需要在“返回真”行之前对函数register_save()中的行进行注释:
// Send the registration email
//$this->_sendMail( $name, $email, $username, $password, $activation_link );注意:在这里生成的邮件函数中,我们首先需要注释邮件函数,并在ps_shopper.php的add()函数中创建另一个邮件函数。
需要在函数extra_field_1()中的jos_vm_user_info表中获得额外的添加字段( _sendmail() ),并将该字段通过邮件发送给用户。
/****************************************************************/
$db = JFactory::getDBO();
$query = "SELECT id, name, email, username"
. "\n FROM #__users"
. "\n ORDER by id DESC LIMIT 1"
;
$db->setQuery( $query );
$rows = $db->loadObjectList();
$lid = $rows[0]->id;
$dbv = new ps_DB;
$query = "SELECT *"
. "\n FROM #__{vm}_user_info"
. "\n WHERE user_id=$lid"
;
$dbv->setQuery( $query );
$fid = $db->loadObjectList();
$field = $fid[0]->extra_field_1;
$subject = sprintf ($VM_LANG->_('SEND_SUB',false), $name, $mosConfig_sitename);
$subject = vmHtmlEntityDecode($subject, ENT_QUOTES);
if ($mosConfig_useractivation=="1"){
$message = sprintf ($VM_LANG->_('USEND_MSG_ACTIVATE',false), $name, $mosConfig_sitename, $activation_link, $mosConfig_live_site, $username, $pwd, $field );
} else {
$message = sprintf ($VM_LANG->_('PHPSHOP_USER_SEND_REGISTRATION_DETAILS',false), $name, $mosConfig_sitename, $mosConfig_live_site, $username, $pwd, $field);
}/*************************************/
注意:
替换下列代码的消息:
感谢您在%s上注册。您的帐户已经创建,必须激活后才能使用。若要激活帐户,请单击以下链接或复制粘贴到浏览器中:%s
激活后,您可以使用以下用户名和密码登录%s:
用户名- %s密码%s级%s‘
2.‘PHPSHOP_USER_SEND_DETAILS_DETAILS’=> 'Hello %s
感谢您在%s上注册。您的客户帐户已经创建。您可以使用以下用户名和密码登录%s:
用户名- %s密码- %s级- %s‘注意:
https://stackoverflow.com/questions/11496698
复制相似问题