Rendre le module mailjet GDPR


  • legacy

    Bonjour,

    Voici une astuce pour rendre le module mailjet RGPD

    Avant toute chose la version du module utilisée est la 3.4.14 disponible ici :

    https://github.com/mailjet/prestashop-mailjet-plugin-apiv3/releases

    Ouvrir le fichier mailjet.php

    A la fin du fichier ajouter avant le dernier }

        public function hookActionExportGDPRData($customer)
        {
            if (!Tools::isEmpty($customer['email']) && Validate::isEmail($customer['email'])) {
    
                if (!$customer) {
                    return false;
                }
    
                $initialSynchronization = new HooksSynchronizationSingleUser(MailjetTemplate::getApi());
                $customerMailJet = $initialSynchronization->getCustomerByEmail($customer['email']);
                
                if( !$customerMailJet || empty($customerMailJet) ) {
                    return json_encode($this->l('Mailjet : Unable to export customer using email.'));
                }
    
    
                $dateAdd = new DateTime($customerMailJet->Data[0]->CreatedAt);
                $dateLastActivity = new DateTime($customerMailJet->Data[0]->LastActivityAt);      
    
                $return[] = [
                    $this->l('Email') => $customerMailJet->Data[0]->Email,
                    $this->l('Date add') => $dateAdd->format('Y-m-d H:i:s'),
                    $this->l('Newsletters sended') => $customerMailJet->Data[0]->DeliveredCount,
                    $this->l('Last Activity') =>  $dateLastActivity->format('Y-m-d H:i:s'), 
                ];
    
                return  json_encode($return);
    
            }
        }
    
        public function hookRegisterGDPRConsent($param)
        {
    
            return;
        }
    
    

    Ouvrir le fichier classes/hooks/synchronization/SingleUser.php

    Ajouter à la fin juste avant le dernier }

        /**
         * Get Contact information by email
         * @param string $email
         * @return object
         */
        public function getCustomerByEmail($email)
        {
            $apiOverlay = $this->getApiOverlay();
    
            $contact= $apiOverlay->getContactByEmail($email);
    
            if (!$contact) {
                return false;
            }
    
            return $contact;
    
        }
    
    

    Greffer le module sur le deux nouveaux hooks

    Enjoy !

    0_1530016824018_mail-jet-gdpr.png

    Dans la logique on a pas besoin du hook delete car il y a déjà une action sur les hook pour ça ... au pire c'est quelques lignes de codes


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.