Перейти к содержимому


Фотография
- - - - -

Автоматичекое заполнение полей зарегистрированных пользователей при формировании заказа

рецепт заказ корзина

Сообщений в теме: 4

#1 i001

i001

Отправлено 11 January 2014 - 23:36

*
Популярное сообщение!

Править будем всего лишь один файл
 
\media\zoo\applications\jbuniversal\templates\basket.php
сразу после этого 

else
{
    echo '<p>' . JText::_('JBZOO_CART_ITEMS_NOT_FOUND') . '</p>';
}

38 строка
 
вставляем следующее

if ($user->id)
{
  // print_r($user);
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($){
            $('input[name="elements[d99453d3-f892-4a05-b303-1ffa8d4e26df][0][value]"]').val('<?=$user->name?>');
            $('input[name="elements[b7f89cb5-90e9-44f5-ac90-d46874f86042][0][value]"]').val('<?=$user->email?>');
        });
    </script>
    <?
}

сверяем id элементов и подсталяем свои вместо этих
d99453d3-f892-4a05-b303-1ffa8d4e26df
b7f89cb5-90e9-44f5-ac90-d46874f86042
 
Первый это имя зарегистрированного пользователя
Второй e-mail
При наличии дополнительных полей в профиле дополняем скрипт по аналогии. 


Сообщение отредактировал i001: 30 September 2015 - 10:08

  • 5

#2 .polega.

.polega.

Отправлено 15 January 2014 - 11:23

А можно ли подобным образом заполнить не текстовое поле, а элемент "Related Items" ?

 

Например, есть элемент "Агент"

screenshot_ 2014-01-15 11.53.13.jpg

Можно-ли, получив ИД зарегистрированного пользователя

<?php // Получаем ID текущего пользователя Joomla
     $user = JFactory::getUser();
     $user_id = $user->id;
?>

поставить ему в соответствие элемент "Агент", как-то так:

<?php if($user_id == 111):
         $agent_id = '222'
      endif; ?>

и потом подставить через скрипт

$('input[name="elements[<ИД поля Агент(Related Items)>][0][value]"]').val('<php echo $agent_id; ?>');

Попробовал сделать, не вышло. А текстовые поля скрипт заполняет правильно.

Наверное для Related Items нужны изменения в самом скрипте?


  • 0

#3 masterxoloda

masterxoloda

Отправлено 21 January 2014 - 21:14

Спасибо! Всё получилось, вот только телефон не могу вывести - в форме регистрации этот пункт выведен через стандартный плагин "Пользователь-Профиль"


  • 0

#4 Giadastar

Giadastar

Отправлено 18 May 2014 - 08:56

Спасибо! Всё получилось, вот только телефон не могу вывести - в форме регистрации этот пункт выведен через стандартный плагин "Пользователь-Профиль"

Для полей из плагина "Пользователь-Профиль"

$db = JFactory::getDBO();
$sql = "SELECT profile_key, profile_value FROM #__user_profiles WHERE (user_id='".$user->id."')";
$db->setQuery($sql);
$list = $db->loadObjectList();
if ($list) {
	foreach($list as $user) {
		$data = json_decode($user->profile_value);
		$data ? $data : str_replace('"', '',$user->profile_value);
		$arr[$user->profile_key] = $data;
	}
}

$phone = $arr["profile.phone"];
$street = $arr["profile.address1"];   
$city = $arr["profile.city"];
$region = $arr["profile.region"];
$postal_code = $arr["profile.postal_code"];

?>
    <script type="text/javascript">
        jQuery(document).ready(function($){
			$('input[name="elements[c1b20e16-3869-40db-95b9-2c8fd0a8649f][0][value]"]').val('<?php echo $phone?>');
			$('input[name="elements[eaa47ed0-55e9-440d-beb2-8979ab5a7df5][0][value]"]').val('<?php echo $street?>');
			$('input[name="elements[c2e23d15-41c5-4406-b7fa-0db873105c78][0][value]"]').val('<?php echo $city?>');
			$('input[name="elements[4d7a1cab-9f68-488d-a101-4a1d7a1d7111][0][value]"]').val('<?php echo $region?>');
			$('input[name="elements[dc9abe7b-8bc8-4916-b2c5-d87770d08416][0][value]"]').val('<?php echo $postal_code?>');
			
        });
    </script>
    <?php

  • 2

#5 Евгения

Евгения

Отправлено 19 July 2014 - 20:49

Спасибо Вам большущее. Человечище!!! :)))


  • 0

"Это бессмысленно" - сказал разум. "Это нелепо" - заметил опыт. "Это бесполезно" - отрезал здравый смысл. "О! Вот так нормально!" - обрадовался клиент.

Что, где лежит (тема-сборник про пути к файлам)






Темы с аналогичным тегами рецепт, заказ, корзина

Click to return to top of page in style!