/** * Add a Mailchimp subscriber to a CiviCRM Group. */ static function mailchimpWebhookSubscribe($request_data) { $contacts = CRM_CiviMailchimp_Utils::getContactsWithPrimaryOrBulkEmail($request_data['email'], FALSE); if (empty($contacts)) { $mailchimp_contact = CRM_CiviMailchimp_Utils::createContactFromMailchimpRequest($request_data); } else { $mailchimp_contact = $contacts[0]; } CRM_CiviMailchimp_Utils::addContactToGroup($mailchimp_contact, $request_data['list_id']); }
/** * Add a Mailchimp subscriber to a CiviCRM Group. */ static function mailchimpWebhookSubscribe($request_data) { $config = CRM_Core_Config::singleton(); if ($config->debug) { $request_data_log = print_r($request_data, TRUE); CRM_Core_Error::debug_log_message("Mailchimp Webhook Request [subscribe]: \nSearching for contacts with the following data.\n{$request_data_log}"); } $contacts = CRM_CiviMailchimp_Utils::getContactsWithPrimaryOrBulkEmail($request_data['email'], FALSE); if (empty($contacts)) { $mailchimp_contact = CRM_CiviMailchimp_Utils::createContactFromMailchimpRequest($request_data); if ($config->debug) { $request_data_log = print_r($mailchimp_contact, TRUE); CRM_Core_Error::debug_log_message("Mailchimp Webhook Request [subscribe]: \nExisting contact not found, so a new contact record was created with the following details.\n{$request_data_log}"); } } else { $mailchimp_contact = $contacts[0]; if ($config->debug) { $request_data_log = print_r($mailchimp_contact, TRUE); CRM_Core_Error::debug_log_message("Mailchimp Webhook Request [subscribe]: \nExisting contact found with the following details.\n{$request_data_log}"); } } CRM_CiviMailchimp_Utils::addContactToGroup($mailchimp_contact, $request_data['list_id']); }
function testAddContactToGroup() { $params = CRM_CiviMailchimp_UtilsTest::sampleContactParams(); $contact = CRM_Contact_BAO_Contact::create($params); $mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettingsTest::createTestGroupAndSyncSettings('Test group testAddContactToGroup'); // Test that the contact is not in the group $contact_added_to_group = CRM_Contact_BAO_GroupContact::isContactInGroup($contact->id, $mailchimp_sync_setting->civicrm_group_id); $this->assertFalse($contact_added_to_group); // Test that the contact is in the group CRM_CiviMailchimp_Utils::addContactToGroup($contact, $mailchimp_sync_setting->mailchimp_list_id); $contact_added_to_group = CRM_Contact_BAO_GroupContact::isContactInGroup($contact->id, $mailchimp_sync_setting->civicrm_group_id); $this->assertTrue($contact_added_to_group); }