Тема: Обновление профиля пользователя при оформлении заказа [Решено]
Добрый день, скажите реально ли сделать такое?
Пользователь(зарегистрированный) оформляет заказ, там будет поле "номер паспорта" он его заполняет и данные заносятся в его профиль?в ячеку "passport"
Если я буду делать это доп. модулем мне нужен этот хук orm.beforewrite.shop-order? А в хуке что ? запрос на обновление ячейки в таблице users?
Создаем собственный модуль
passport/config/handlers.inc.php
<?php
namespace Passport\Config;
use \RS\Orm\Type as OrmType;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this->bind('orm.afterwrite.shop-order');
}
public static function ormAfterwriteShopOrder ($data)
{
/**
* @var \Shop\Model\Orm\Order
*/
$order = $data['orm'];//Получаем объект заказа
$flag = $data['flag'];//флаг
if (!empty($order['userfields_arr']['passport'])) {
$user = $order->getUser();
$user['passport'] = $order['userfields_arr']['passport']; //В userfields_arr - находятся значения кастомных полей, добавленных в настройках модуля админки.
$user->update();
}
}
}
passport/config/file.inc.php
<?php
namespace Passport\Config;
use \RS\Orm\Type;
class File extends \RS\Orm\ConfigObject
{
}
passport/config/module.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<defaultValues>
<name multilanguage="true">Добавления поля паспорт</name>
<description multilanguage="true">Добавления поля паспорт</description>
<version>1.0.0.0</version>
<author>My mod</author>
</defaultValues>
</config>