Example #1
0
 /**
  * Create a petition in Civi: contact and activity
  *
  * @param $param
  */
 public function petition($param)
 {
     $contact = $this->createContact($param);
     $optInForActivityStatus = $this->optIn;
     if (!CRM_Speakcivi_Logic_Contact::isContactNeedConfirmation($this->newContact, $contact['id'], $this->groupId, $contact['values'][0]['is_opt_out'])) {
         $this->confirmationBlock = false;
         $optInForActivityStatus = 0;
     }
     $optInMapActivityStatus = array(0 => 'Completed', 1 => 'Scheduled');
     if ($this->addJoinActivity && !$this->optIn) {
         $optInMapActivityStatus[0] = 'optin';
     }
     $activityStatus = $optInMapActivityStatus[$optInForActivityStatus];
     $activity = $this->createActivity($param, $contact['id'], 'Petition', $activityStatus);
     CRM_Speakcivi_Logic_Activity::setSourceFields($activity['id'], @$param->source);
     if ($this->newContact) {
         CRM_Speakcivi_Logic_Contact::setContactCreatedDate($contact['id'], $activity['values'][0]['activity_date_time']);
         CRM_Speakcivi_Logic_Contact::setSourceFields($contact['id'], @$param->source);
     }
     $h = $param->cons_hash;
     if ($this->optIn == 1) {
         $this->sendConfirm($h->emails[0]->email, $contact['id'], $activity['id'], $this->campaignId, $this->confirmationBlock);
     } else {
         $language = substr($this->locale, 0, 2);
         $pagePost = new CRM_Speakcivi_Page_Post();
         $rlg = $pagePost->setLanguageGroup($contact['id'], $language);
         $pagePost->setLanguageTag($contact['id'], $language);
         if ($this->addJoinActivity) {
             CRM_Speakcivi_Logic_Activity::join($contact['id'], 'optIn:0', $this->campaignId);
         }
         if ($contact['values'][0]['preferred_language'] != $this->locale && $rlg == 1) {
             CRM_Speakcivi_Logic_Contact::set($contact['id'], array('preferred_language' => $this->locale));
         }
         $share_utm_source = 'new_' . str_replace('gb', 'uk', strtolower($this->country)) . '_member';
         $this->sendConfirm($h->emails[0]->email, $contact['id'], $activity['id'], $this->campaignId, false, $share_utm_source);
     }
 }
Example #2
0
 /**
  * Create a petition in Civi: contact and activity
  *
  * @param $param
  */
 public function petition($param)
 {
     $contact = $this->createContact($param);
     $optInForActivityStatus = $this->optIn;
     if (!$this->isContactNeedConfirmation($this->newContact, $contact['id'], $contact['values'][0]['is_opt_out'])) {
         $this->confirmationBlock = false;
         $optInForActivityStatus = 0;
     }
     $optInMapActivityStatus = array(0 => 'Completed', 1 => 'Scheduled');
     if ($this->addJoinActivity && !$this->optIn) {
         $optInMapActivityStatus[0] = 'optin';
     }
     $activityStatus = $optInMapActivityStatus[$optInForActivityStatus];
     $activity = $this->createActivity($param, $contact['id'], 'Petition', $activityStatus);
     CRM_Speakcivi_Logic_Activity::setSourceFields($activity['id'], @$param->source);
     if ($this->newContact) {
         $this->setContactCreatedDate($contact['id'], $activity['values'][0]['activity_date_time']);
     }
     $h = $param->cons_hash;
     if ($this->optIn == 1) {
         $this->sendConfirm($h->emails[0]->email, $contact['id'], $activity['id'], $this->campaignId, $this->confirmationBlock);
     } else {
         $language = substr($this->locale, 0, 2);
         $pagePost = new CRM_Speakcivi_Page_Post();
         $pagePost->setLanguageGroup($contact['id'], $language);
         $pagePost->setLanguageTag($contact['id'], $language);
         if ($this->addJoinActivity) {
             CRM_Speakcivi_Logic_Activity::join($contact['id'], 'optIn:0', $this->campaignId);
         }
         $this->sendConfirm($h->emails[0]->email, $contact['id'], $activity['id'], $this->campaignId, false);
     }
 }