});
MailChimpWebhook::subscribe('unsubscribe', function ($data) use($API, $Subscribers) {
$Subscriber = $Subscribers->get_one_by('subscriberMailChimpID', $data['id']);
if ($Subscriber) {
$Subscriber->update_subscription($data['list_id'], 'unsubscribed');
}
$Lists = new PerchMailChimp_Lists($API);
$Lists->import();
});
MailChimpWebhook::subscribe('cleaned', function ($data) use($API, $Subscribers) {
$Subscriber = $Subscribers->get_one_by('subscriberMailChimpID', $data['id']);
if ($Subscriber) {
$Subscriber->update_subscription($data['list_id'], 'cleaned');
}
$Lists = new PerchMailChimp_Lists($API);
$Lists->import();
});
MailChimpWebhook::subscribe('upemail', function ($data) use($API, $Subscribers) {
$Subscriber = $Subscribers->get_one_by('subscriberEmail', $data['old_email']);
if ($Subscriber) {
$Subscriber->update(['subscriberEmail' => $data['new_email'], 'subscriberMailChimpID' => $data['new_id']]);
}
});
MailChimpWebhook::subscribe('campaign', function ($data) use($API) {
$Campaigns = new PerchMailChimp_Campaigns($API);
$Campaigns->import_one($data['id']);
$Lists = new PerchMailChimp_Lists($API);
$Lists->import();
});
# Uncomment for debug
#file_put_contents(time().'_log.txt', print_r(MailChimpWebhook::receive(), 1));