3 nouveaux modules :
colorpictures
explorerpro
sampledatainstall
3 nouveaux modules :
colorpictures
explorerpro
sampledatainstall
Bonjour,
Nouveaux thèmes avec module :
Pour information :
Il y avait une faille de sécurité dans le module jmsslider.
Le module est installé avec les thèmes de https://www.joommasters.com/
La faille est dans le fichier ajax_jmsslider.php et permet d'uploader un fichier PHP sur le serveur (donc prise de contrôle de la boutique).
La faille existe si le module est présent, il n'y a pas besoin d'installer le module ni de l'activer.
La faille a été corrigé fin juillet dans le module.
Thomas
Génial !
Ca aide beaucoup je vais lister les modules que j'ai trouvé également, les codes on souvent été enlevé ou corrigé mais je n'ai pas souvent eu d'info sur les fixs.
2 ) module-sale-category-appliquer-une-reductionmettre-en-solde-tous-les-produits-dune-categorie
3 ) https://www.prestashop.com/forums/topic/196722-module-gratuit-changer-le-transporteur/
Oui c est possible en éditant les tpls et ajouter une variable dans les form
Il y a deux choses.
Un lien vers cette plateforme. ( obligatoire sur toutes les pages )
Et il faut également un médiateur. ( Les coordonnées doivent être dans les CGV )
Il existe plusieurs types :
Merci perso comme un con j'avais ajouté en dessous sans me demander pourquoi :
# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Voilà c'est corrigé.
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 !
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
StockAvailable::setQuantity($this->id, $id_product_attribute, $quantity);
Est bien appelé avec un $id_product_attribute.
Le problème c'est qu'il est relancé plus loin dedans avec un $id_product_attribute à 0
Salut,
Je deviens fou je ne comprends ce qu'il se passe et ça m'énerve.
Prestashop 1.6.1.18 tout neuf
Je m'explique je n'utilisais pas le module mailalerts pour les articles hors stock, j'ai décidé de l'installer. Il fonctionne très bien sauf que les clients ne reçoivent pas de mail quand je mets à jours les stocks.
Dans mon débug je bloque ici :
https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/classes/stock/StockAvailable.php#L507
Si je mets juste arpès cette ligne un d($id_product_attribute);
Il est set à 0 donc plus bas le
Hook::exec('actionUpdateQuantity',
array(
'id_product' => $id_product,
'id_product_attribute' => $id_product_attribute,
'quantity' => $stock_available->quantity
)
);
Ne fait pas travailler le module mailalerts car il a un ipa à 0 ...
Si je mets le d($id_product_attribute); juste avant pas de soucis.
J'ai donc remonté jusqu'à $this->upate(); et même dans ObjectModel je ne trouve pas d'ou ça vient.