我开发了一个模块来在信用卡付款后跟踪 cookie,因为 Google Analytics 不会跟踪我网站上的所有订单。 我将 Tarteaucitron 服务用于 GDPR。 使用信用卡以外的所有付款,我都可以检索 cookie 的状态(真或假)。 对于信用卡付款,我没有任何反馈。
您知道为什么没有检索到 cookie 吗? 我可以使用另一个钩子来帮助我做我需要的事情吗?
感谢您的帮助。
我使用以下代码(基于钩子 actionObjectOrderAddAfter):
public function hookActionObjectOrderAddAfter($params)
{
$payment = $params['object']->payment;
$date_add = $params['object']->date_add;
$total_paid_tax_incl = $params['object']->total_paid_tax_incl;
$reference = $params['object']->reference;
$rgpd = isset($_COOKIE['tarteaucitron']) && !empty($_COOKIE['tarteaucitron']) ? $_COOKIE['tarteaucitron'] : 'N/D';
$sql_select = 'SELECT id_order FROM `' . _DB_PREFIX_ . 'orders` WHERE `reference` = "'.$reference.'"';
$id_order = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql_select);
$sql = array();
$sql[] = 'INSERT INTO `' . _DB_PREFIX_ . 's2m_trackingpaiement` (`id_order`, `reference`, `total_paid_tax_incl`, `rgpd`, `payment`, `date_add`, `hook`)
VALUES ("'.$id_order.'", "'.$reference.'", "'.$total_paid_tax_incl.'", "'.$rgpd.'", "'.$payment.'", "'.$date_add.'", "actionObjectOrderAddAfter")';
foreach ($sql as $query) {
if (Db::getInstance()->execute($query) == false) {
return false;
}
}
}