} if (is_object($jsonObj)) { $campaignmonitor = Module::getInstanceByName('campaignmonitor'); $blocknewsletter = Module::getInstanceByName('blocknewsletter'); foreach ($jsonObj->Events as $event) { $emailAddress = $event->EmailAddress; $customerByMail = Customer::getCustomersByEmail($emailAddress); if ($customerByMail) { $customer = new Customer($customerByMail[0]['id_customer']); if ($event->Type == 'Deactivate') { $customer->newsletter = false; } if ($event->Type == 'Subscribe' || $event->Type == 'Update') { $customer->newsletter = true; } $customer->save(); } else { $id_shop = null; // set shop context for each subscriber if (Shop::isFeatureActive()) { $id_shop = $campaignmonitor->getCustomFieldValue('ps Shop ID', $event->CustomFields); Shop::setContext(Shop::CONTEXT_SHOP, $id_shop); } // check if subscribed via newsletter module and unsubscribe if true $registerStatus = $blocknewsletter->isNewsletterRegistered($emailAddress); if ($registerStatus === 1 && $event->Type == 'Deactivate') { CampaignMonitor::unregisterFromPsNewsletter($emailAddress, $registerStatus, $id_shop); } } } }