skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
Для сотрудников
»
Разработка
»
HostCMS
»
Статьи (по модулям)
»
Пользователи сайта
»
Бонус при регистрации
private:koding:hostcms:modules:siteuser:registration_bonus
Media Files
====== Бонус при регистрации ====== Если при регистрации пользователя необходимо начислять ему начальную сумму на лицевой счет, то можно воспользоваться следующим решением. - Создаем константы ''REGISTRATION_BONUS_VALUE'' и ''REGISTRATION_BONUS_CAPTION'', например:<code>REGISTRATION_BONUS_VALUE = 20 REGISTRATION_BONUS_CAPTION = Приветственный бонус за регистрацию</code> - Добавляем наблюдатель:<code php><?php defined('HOSTCMS') || exit('HostCMS: access denied.'); /** * Наблюдатель для отслеживания изменения цены товара и рассылки уведомлений по подпискам. * * @author Maxim Zasorin, KAD Systems (©) 2017 * @date 18-12-2017 */ class Siteuser_Observer_RegistrationBonus { /** * Сайты и интернет-магазины. * * @var array */ static protected $_sites = array( 7 => array(9) ); /** * Регистриует наблюдатель. * * @return void */ static public function attach() { Core_Event::attach('siteuser.onAfterCreate', array(__CLASS__, 'addRegistrationBonus')); } /** * Деактивирует наблюдатель. * * @return void */ static public function detach() { Core_Event::detach('siteuser.onAfterCreate', array(__CLASS__, 'addRegistrationBonus')); } /** * Добавляет бонус при регистрации. * * @param Siteuser_Model $oSiteuser * @return void */ static public function addRegistrationBonus(Siteuser_Model $oSiteuser) { // Если текущего сайта нет в списке или бонус не активирован, то прерываем выполнение if (!in_array(CURRENT_SITE, array_keys(self::$_sites)) || !defined('REGISTRATION_BONUS_VALUE')) { return; } foreach (self::$_sites[CURRENT_SITE] as $shopId) { $oShopSiteuserTransaction = Core_Entity::factory('Shop_Siteuser_Transaction'); $oShopSiteuserTransaction->shop_id = Core_Entity::factory('Shop', $shopId)->id; $oShopSiteuserTransaction->siteuser_id = $oSiteuser->id; try { $oShopSiteuserTransaction->active = 1; $oShopSiteuserTransaction->amount_base_currency = $oShopSiteuserTransaction->amount = floatval(REGISTRATION_BONUS_VALUE); $oShopSiteuserTransaction->type = 1; $oShopSiteuserTransaction->description = defined('REGISTRATION_BONUS_CAPTION') ? REGISTRATION_BONUS_CAPTION : 'Приветственный бонус за регистрацию'; $oShopSiteuserTransaction->save(); } catch (Exception $e) { // Ничего не делаем, если не удалось создать бонус } } } }</code> - В наблюдателе указывем для каких сайтов и интернет-магазинов должен работать бонус:<code php>/** * Сайты и интернет-магазины. * * @var array */ static protected $_sites = array( 7 => array(9) );</code> - Подключаем наблюдатель в bootstrap.php:<code php>Siteuser_Observer_RegistrationBonus::attach();</code> <wrap lo>Страницу создал Максим Засорин 12.01.18 в 09:49</wrap>
Save
Preview
Cancel
Edit summary
private/koding/hostcms/modules/siteuser/registration_bonus.1515740068.txt.gz
· Last modified: 12.01.18 в 09:54 by
maximzasorin_gmail.com
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top