/** * 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); } }
/** * 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); } }