<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
		<link>http://forum.readyscript.ru/topic/869/obnovlenie-profilya-polzovatelya-pri-oformlenii-zakaza-resheno/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/869/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Обновление профиля пользователя при оформлении заказа [Решено]».]]></description>
		<lastBuildDate>Wed, 31 Aug 2016 07:23:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4428/#p4428</link>
			<description><![CDATA[<p>Данные не бывают из неоткуда</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 31 Aug 2016 07:23:48 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4428/#p4428</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4425/#p4425</link>
			<description><![CDATA[<p>Спасибо все получилось. Скажите а без создания дополнительного поля через модуль &quot;Магазин&quot; ни как нельзя обойтись?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Tue, 30 Aug 2016 13:19:19 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4425/#p4425</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4423/#p4423</link>
			<description><![CDATA[<p>Общий алгоритм должен быть такой.</p><p>1. Создаете дополнительное поле через настройки модуля магазин для заказа.<br />2. Затем навешивайтесь на событие orm.afterwrite.shop-order, и обновите поле user_passport у объекта пользователя</p><p>Кол в обработчике afterwrite заказа, будет схематично такой:</p><div class="codebox"><pre><code>$user = $order-&gt;getUser();
$user[&#039;ПОЛЕ ПАССПОРТА В БД ЮЗЕРА&#039;] = $order[&#039;userfields_arr&#039;][&#039;АЛИАС ПОЛЯ ПАСПОРТА ЗАКАЗА&#039;]; //В userfields_arr - находятся значения кастомных полей, добавленных в настройках модуля админки.
$user-&gt;update();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 30 Aug 2016 09:52:24 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4423/#p4423</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4420/#p4420</link>
			<description><![CDATA[<p>Но этого же мало, нужно добавить запрос на запись в таблицу users при оформлении заказа?</p><div class="codebox"><pre><code>&lt;?php
namespace Passport\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
function init()
    {
        $this
            -&gt;bind(&#039;orm.init.users-user&#039;);
    }
    
   
    public static function ormInitUsersUser (\Users\Model\Orm\User $user) 
    {
        $user-&gt;getPropertyIterator()-&gt;append(array(
            &#039;user_passport&#039; =&gt; new OrmType\Varchar(array(
                    &#039;maxLength&#039; =&gt; &#039;50&#039;,
                    &#039;description&#039; =&gt; t(&#039;Номер паспорта&#039;),
            )),

        ));
    } 
 
}</code></pre></div><p><strong>address.tpl</strong><br /></p><div class="codebox"><pre><code>&lt;tr&gt;
                    &lt;td class=&quot;key&quot;&gt;Номер паспорта:&lt;/td&gt;
                    &lt;td class=&quot;value&quot;&gt;
                        &lt;input name=&quot;user_passport&quot; value=&quot;&quot; maxlength=&quot;255&quot;  size=&quot;64&quot; type=&quot;text&quot; /&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Tue, 30 Aug 2016 07:47:52 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4420/#p4420</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4419/#p4419</link>
			<description><![CDATA[<p>Ой. Прошу прощения, точно. <strong>orm.init.users-user</strong>, что-то перепутал под конец дня <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Tue, 30 Aug 2016 07:29:10 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4419/#p4419</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4418/#p4418</link>
			<description><![CDATA[<p><strong>Закусило Александр,</strong> Но если я подвешусь на <strong>orm.init.shop-order</strong> то поле добавиться, в таблице order, а мне нужно что бы оно было в таблице users. И вот у меня возникает вопрос, <strong>как мне делать запись в таблицу users при оформлении заказа</strong></p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Tue, 30 Aug 2016 05:01:34 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4418/#p4418</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4411/#p4411</link>
			<description><![CDATA[<p>Ну тогда Вам надо вешаться на <strong>orm.init.shop-order</strong> и добавить там поле паспорта.<br />А в самих шаблонах <strong>address.tpl</strong> и <strong>profile.tpl</strong> Вашей темы добавить поле как и все остальные там выводятся.<br />Видео урок по добавлению полей есть у меня в видео уроках:<br /><a href="https://www.youtube.com/watch?v=KoF2IyGPj9U&amp;list=PLh6R2ixK62TjPL31OFFGG2fL4X2UTC6Aw&amp;index=1">https://www.youtube.com/watch?v=KoF2IyG … mp;index=1</a></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Mon, 29 Aug 2016 16:29:20 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4411/#p4411</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4409/#p4409</link>
			<description><![CDATA[<p><strong>Ярослав,</strong> Вы совершенно правы. Поэтому хотелось бы, что бы боле<strong> &quot;Номер пасспорта&quot;</strong> присутствовало и в профиле и при оформлении заказа</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Mon, 29 Aug 2016 13:08:07 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4409/#p4409</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4408/#p4408</link>
			<description><![CDATA[<p>Сейчас данное поле стало очень актуально. Многие ТК требуют паспортные данные получателя при отправке (Деловые линии, ПЭК)</p>]]></description>
			<author><![CDATA[null@example.com (Ярослав)]]></author>
			<pubDate>Mon, 29 Aug 2016 12:55:56 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4408/#p4408</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4406/#p4406</link>
			<description><![CDATA[<p><strong>Закусило Александр,</strong> Да именно так. В профиле то оно сейчас есть(Благодаря установке модуля &quot;Акт, счет, договор для заказа в PDF&quot;). Вот хотелось бы еще при оформлении заказа, что бы можно было его заполнять</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Mon, 29 Aug 2016 05:02:51 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4406/#p4406</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4404/#p4404</link>
			<description><![CDATA[<p>Вам надо, чтобы и у него в профиле было обязательно?</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Fri, 26 Aug 2016 13:53:56 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4404/#p4404</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4400/#p4400</link>
			<description><![CDATA[<p>Здравствуйте! Зайдите в настройки модуля &quot;Магазин&quot;, там можно добавить дополнительные поля к заказу штатно. Или в настройках модуля &quot;Пользователи&quot; доступны дополнительные поля для профиля.</p>]]></description>
			<author><![CDATA[null@example.com (Ярослав)]]></author>
			<pubDate>Fri, 26 Aug 2016 12:19:27 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4400/#p4400</guid>
		</item>
		<item>
			<title><![CDATA[Обновление профиля пользователя при оформлении заказа [Решено]]]></title>
			<link>http://forum.readyscript.ru/post/4399/#p4399</link>
			<description><![CDATA[<p>Добрый день, скажите реально ли сделать такое?<br />Пользователь(зарегистрированный) оформляет заказ, там будет поле <strong>&quot;номер паспорта&quot;</strong> он его заполняет и данные заносятся в его профиль?в ячеку <strong>&quot;passport&quot;</strong></p><p>Если я буду делать это доп. модулем мне нужен этот хук <strong>orm.beforewrite.shop-order</strong>? А в хуке что ? запрос на обновление ячейки в таблице users?</p><p><span class="bbu">Создаем собственный модуль</span></p><p><strong>passport/config/handlers.inc.php</strong><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Passport\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
function init()
    {
        $this-&gt;bind(&#039;orm.afterwrite.shop-order&#039;);
    }
    
    public static function ormAfterwriteShopOrder ($data) 
    {
        /**
        * @var \Shop\Model\Orm\Order
        */ 
        $order = $data[&#039;orm&#039;];//Получаем объект заказа
        $flag = $data[&#039;flag&#039;];//флаг
        
        if (!empty($order[&#039;userfields_arr&#039;][&#039;passport&#039;])) {
        $user = $order-&gt;getUser();
        $user[&#039;passport&#039;] = $order[&#039;userfields_arr&#039;][&#039;passport&#039;]; //В userfields_arr - находятся значения кастомных полей, добавленных в настройках модуля админки.
        $user-&gt;update();
        }
    }
 
}</code></pre></div><p><strong>passport/config/file.inc.php</strong><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Passport\Config;
use \RS\Orm\Type;


class File extends \RS\Orm\ConfigObject
{
   
    
}</code></pre></div><p><strong>passport/config/module.xml</strong><br /></p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;config&gt;
    &lt;defaultValues&gt;    
        &lt;name multilanguage=&quot;true&quot;&gt;Добавления поля паспорт&lt;/name&gt;
        &lt;description multilanguage=&quot;true&quot;&gt;Добавления поля паспорт&lt;/description&gt;        
        &lt;version&gt;1.0.0.0&lt;/version&gt;
        &lt;author&gt;My mod&lt;/author&gt;      
    &lt;/defaultValues&gt;
&lt;/config&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Fri, 26 Aug 2016 10:06:55 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/4399/#p4399</guid>
		</item>
	</channel>
</rss>
