Hi All,
I am using virtuemart registration page in my joomla2.5.17 website and using virtuemart version 2.0.26. I have selected New user Account activation as "Admin" in Users Configuration options, enabled the option Receive System emails as yes. But I didn't get the new user registration emails but user getting activation link.
When I was searching in code for the functionality in /administrator/components/com_virtuemart/models/user.php few lines were commented out why this lines commented. Line Numbers 1293 to 1297 and written query as
$query = 'SELECT name, email, sendEmail' .
' FROM #__users' .
' WHERE LOWER( usertype ) = "super administrator"';
In joomla2.5 usertype is not like "super administrator" then why the query written like this?
The following is the code in virtuemart user.php model
private function sendRegistrationEmail($user, $password, $doUserActivation){
if(!class_exists('shopFunctionsF')) require(JPATH_VM_SITE.DS.'helpers'.DS.'shopfunctionsf.php');
$vars = array('user' => $user);
// Send registration confirmation mail
$password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email
$vars['password'] = $password;
if ($doUserActivation) {
jimport('joomla.user.helper');
if(JVM_VERSION === 2) {
$com_users = 'com_users';
$activationLink = 'index.php?option='.$com_users.'&task=registration.activate&token='.$user->get('activation');
} else {
$com_users = 'com_user';
$activationLink = 'index.php?option='.$com_users.'&task=activate&activation='.$user->get('activation');
}
$vars['activationLink'] = $activationLink;
}
$vars['doVendor']=true;
// public function renderMail ($viewName, $recipient, $vars=array(),$controllerName = null)
shopFunctionsF::renderMail('user', $user->get('email'), $vars);
//get all super administrator
$query = 'SELECT name, email, sendEmail' .
' FROM #__users' .
' WHERE LOWER( usertype ) = "super administrator"';
$this->_db->setQuery( $query );
$rows = $this->_db->loadObjectList();
$vars['doVendor']=false;
// get superadministrators id
foreach ( $rows as $row )
{
if ($row->sendEmail)
{
//$message2 = sprintf ( JText::_( 'COM_VIRTUEMART_SEND_MSG_ADMIN' ), $row->name, $sitename, $name, $email, $username);
//$message2 = html_entity_decode($message2, ENT_QUOTES);
//JUtility::sendMail($mailfrom, $fromname, $row->email, $subject2, $message2);
//shopFunctionsF::renderMail('user', $row->email, $vars);
}
}
}
Please review the above code and clarify.
Thanks Advance
This is still an open question - is there anyone that can help us with this?
Can Anybody provide suggestions for original post.
Thanks in advance.
Why it is like this I assume is because it isn't recommended to have account activation in the shop.
It is hard to imagine a cart being completed if the visitor had to wait on an admin to authenticate them!
As the code stands it will never send to an admin as on line 626 the config is read
if ($useractivation == '1' or $useractivation == '2') {
$doUserActivation=true;
}
but that just sets the $doUserActivation to true - but doesn't pass which type of activation
if you really wanted to approve registrations as an admin surely it's simpler to get them to first register with Joomla?
If not do something like pass the 1 or 2 to $doUserActivation and use that in the sendRegistrationEmail() function to choose who to send the email to