Gary Posted January 6, 2019 Share Hello, It's my first time, I installed ClicShopping without problem. I create an account and look the GRPD. I would if it's possible to include a new rule because I need to include a specific tracking. Thank you Quote Link to post
Solution Patrick Posted January 6, 2019 Solution Share Hello Gary, Welcome in this new forum and e-commerce solution. look this directory : /includes/Module/Hooks/Shop/Account For example, if you look the file DeleteAccount, you will see 2 files : AccountGdprDeleteAccount ==> this file display the information AccountGdprCallDeleteAccount ==> this files make the action process. That I know, maybe @ClicShopping can confirm that, the files must start by this name : AccountGdpr .....php Good luck Quote Link to post
ClicShopping Posted January 6, 2019 Share @Patrick ,Yes it's exact, the system identifies this element AccountGdpr . All the files with this will be included inside GRPD / GDPR customer account Quote Link to post
Grimoire Posted March 1, 2019 Share (edited) Hello, Could you help me to create a new GRPD hooks, It's in relation with this post https://www.clicshopping.org/forum/topic/98-adverttisement-sms/?tab=comments#comment-308 If I understand well I must create 2 files, One to display called AccountGdprSms and one AccountGdprDeleteSms. After I must create a new field inside customers_gdpr called no_sms Is like this AccountGdprSms namespace ClicShopping\OM\Module\Hooks\Shop\Account; use ClicShopping\OM\CLICSHOPPING; use ClicShopping\OM\Registry; use ClicShopping\OM\HTML; class AccountGdprNoIp { protected $sms; public function getSms() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Customer = Registry::get('Customer'); $Qgdpr = $CLICSHOPPING_Db->prepare('select no_sms from :table_customers_gdpr where customers_id = :customers_id '); $Qgdpr->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qgdpr->execute(); $sms = $Qgdpr->valueInt('no_sms'); return $sms; } public function display() { $output = '<div>'; $output .= '<label class="checkbox-inline">'; $output .= HTML::checkboxField('no_sms', $this->getSms(), $this->getSms()); $output .= '</label>'; $output .= CLICSHOPPING::getDef('module_account_customers_gdpr_no_sms'); $output .= '</div>'; return $output; } } and for AccountGdprDeleteSms <?php /** * * @copyright 2008 - https://www.clicshopping.org * @Brand : ClicShopping(Tm) at Inpi all right Reserved * @Licence GPL 2 & MIT * @licence MIT - Portion of osCommerce 2.4 * @Info : https://www.clicshopping.org/forum/trademark/ * */ namespace ClicShopping\OM\Module\Hooks\Shop\Account; use ClicShopping\OM\CLICSHOPPING; use ClicShopping\OM\Registry; use ClicShopping\OM\HTML; class AccountGdprCallNoSms { public function execute() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Customer = Registry::get('Customer'); $Qcheck = $CLICSHOPPING_Db->prepare('select customers_id, no_sms from :table_customers_gdpr where customers_id = :customers_id '); $Qcheck->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qcheck->execute(); if ($Qcheck->fetch() === false) { $CLICSHOPPING_Db->save('customers_gdpr', ['customers_id' => $CLICSHOPPING_Customer->getID()]); } else { if (!is_null($_POST['no_sms'])) { $no_sms = 1; } else { $no_sms = 0; } $Qupdate = $CLICSHOPPING_Db->prepare('update :table_customers_gdpr set no_sms = :no_sms, customers_id = :customers_id '); $Qupdate->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qupdate->bindInt(':no_sms', no_sms); $Qupdate->execute(); } } } Edited March 1, 2019 by Grimoire 3 Quote Link to post
Ryan Gil Posted March 1, 2019 Share Hello, Thank you to share your code. I think, it's the right way to make that. Quote Link to post
Julie Posted March 1, 2019 Share @Grimoire, It's could be better if you can include a code to create automatically the new field inside the database. you can include this in your code (in AccountGdprSms) private static function installNewField() { $CLICSHOPPING_Db = Registry::get('Db'); $Qcheck = $CLICSHOPPING_Db->query("show columns from :table_account_grpd 'no_sms'"); $check = $Qcheck->fetch(); if ($check === false) { $sql = <<<EOD ALTER TABLE :table_account_grpd ADD no_sms tynint(1) NULL AFTER no_ip_address; EOD; $CLICSHOPPING_Db->exec($sql); } } and write inside display() function this code static::installNewField() It must work. 3 Quote Link to post
Foster Posted March 21, 2019 Share @Grimoire, @Julie, Thank you, a newbie like me it's interesting to understand how works ClicShopping. It's simple when we tried to use a new tool. 1 Quote Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.