make Acajoom CB plugin save subscriptions on registration page

CB 1.2.2
Acajoom 5.1.0
CB plugin for Acajoom 1.2

file: components/com_comprofiler/plugin/user/plug_acajoomcbplugin/acajoom_cb.php

find the function saveRegistrationTab()
 
function saveRegistrationTab($tab, &$user, $ui, $postdata) {

 global $ueConfig;

 require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
 $erro = new xerr( __FILE__ , __FUNCTION__ );

 if ($user->user_id >0 ) {

 $erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
 if (!$erro->Eck(__LINE__ ,  '7002')    ) {

 $this->_setErrorMSG(_ACA_ERROR);
 return;
 }

 }
return;
}


replace by:


function saveRegistrationTab($tab, &$user, $ui, $postdata) {
/*
 global $ueConfig;

 require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
 $erro = new xerr( __FILE__ , __FUNCTION__ );

 if ($user->user_id >0 ) {

 $erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
 if (!$erro->Eck(__LINE__ ,  '7002')    ) {

 $this->_setErrorMSG(_ACA_ERROR);
 return;
 }

 }
 */        

 //get subscriptions from form as array
 $subscriptions = JRequest::getVar('subscribed', null, 'post', 'array');        
 $subscriptions_temp = array();
 while($subscription = each($subscriptions)){            
 $subscriptions_temp[] = $subscription['key'];    
 }

 //if there are any subscriptions
 if(count($subscriptions_temp)){


 $user_id = $user->user_id;
 $username = $user->username;
 $email = $user->email;

 //add user as subscriber
 $database = JFactory::getDBO();                
 $database->setQuery( "INSERT INTO #__acajoom_subscribers SET user_id='$user_id', name='$username', email='$email', receive_htm='1', confirmed='1', params='' ");
 $database->query();

 //get subscribers id
 //$subscriber_id = $database->insertid();  don't know why that does not work
 $database->setQuery("SELECT id "
 ."FROM #__acajoom_subscribers "
 ."WHERE user_id='$user_id' "
 ."LIMIT 1 "
 );
 $rows = $database->loadObjectList();
 foreach($rows as $row){    
 $subscriber_id = $row->id;
 }            

 //add subscriptions
 for($n = 0; $n < count($subscriptions_temp); $n++){
 $subscription_id = $subscriptions_temp[$n];
 $database->setQuery( "INSERT INTO #__acajoom_queue SET type='1', subscriber_id='$subscriber_id', list_id='$subscription_id' ");
 $database->query();
 }
 }






 return;
 }

 

 
Follow Us On Twitter