示例#1
0
}
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);
            }
        }
    }
}