Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый день друзья!

Подскажите, пожалуйста, как вывести amount (количество) и price (цену) возле номера заказа в ЛК?

Чтобы получилось так:

Ваш заказ №1 (3шт, по 100$);

Ваш заказ №2 (1шт, по 300$);

Ссылка на сообщение
Поделиться на другие сайты

Что-то типа такого? https://yadi.sk/i/GausVT-movx5f

 

да, только в личном кабинете пользователя. и без каких либо скриптов)) просто цифры)

Ссылка на сообщение
Поделиться на другие сайты

да, только в личном кабинете пользователя. и без каких либо скриптов)) просто цифры)

 

Сомнительно, что кто Вам подскажет, как это сделать без скриптов...

То есть надо по щучьему велению, по Вашему хотению.

Тогда Вам к проруби...

 

Добрый день друзья!

Подскажите, пожалуйста, как вывести amount (количество) и price (цену) возле номера заказа в ЛК?

Чтобы получилось так:

Ваш заказ №1 (3шт, по 100$);

Ваш заказ №2 (1шт, по 300$);

 

И образец записей у Вас бессмысленный, как будто не знаете, что такое заказ...

Ссылка на сообщение
Поделиться на другие сайты

Сомнительно, что кто Вам подскажет, как это сделать без скриптов...

То есть надо по щучьему велению, по Вашему хотению.

Тогда Вам к проруби...

 

 

И образец записей у Вас бессмысленный, как будто не знаете, что такое заказ...

 

имелось введу без jQuery, JS потому что на скрине видно что используются

а образец просто навел пример, потому как бывают разные люди

Ссылка на сообщение
Поделиться на другие сайты

имелось введу без jQuery, JS потому что на скрине видно что используются

а образец просто навел пример, потому как бывают разные люди

 

Обычно разные люди знают, что в заказе не бывает

 

Ваш заказ №1 (3шт, по 100$);

 

а бывают НЕСКОЛЬКО товаров по РАЗНЫМ ценам...

 

Подскажите, пожалуйста, как вывести amount (количество) и price (цену) возле номера заказа в ЛК?

Надо добавлять код в view/UserView.php и в шаблоне.

Если готовы оплачивать - обращайтесь...

Изменено пользователем Kors
Ссылка на сообщение
Поделиться на другие сайты

Может кто-то направит на верный путь.

Делаю в UserView.php в метод пост — $purchases

код как в OrderView.php

    $purchases = $this->orders->get_purchases(array('order_id'=>intval($order->id)));
    if(!$purchases)
      return false;
    
    $products_ids = array();
    $variants_ids = array();
    foreach($purchases as $purchase)
    {
      $products_ids[] = $purchase->product_id;
      $variants_ids[] = $purchase->variant_id;
    }
    $products = array();
    foreach($this->products->get_products(array('id'=>$products_ids)) as $p)
      $products[$p->id] = $p;

    $variants = array();
    foreach($this->variants->get_variants(array('id'=>$variants_ids)) as $v)
      $variants[$v->id] = $v;
      
    foreach($variants as $variant)
      $products[$variant->product_id]->variants[] = $variant;

    foreach($purchases as &$purchase)
    {
      if(!empty($products[$purchase->product_id]))
        $purchase->product = $products[$purchase->product_id];
      if(!empty($variants[$purchase->variant_id]))
      {
        $purchase->variant = $variants[$purchase->variant_id];
      }
    }

 

и в конец добавляю:

$this->design->assign('purchases', $purchases); 

но выводит ошибки, purchases не принимает

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

Сделал сам. Но есть небольшой баг...в шаблоне user.tpl либо пропадает номер заказа, либо выводит огромный список заказов одних и тех же...подскажите как исправить?

 

в UserView.php

 

после:

if(empty($this->user)) 
{
...
}

вставляем:

    $purchases = $this->orders->get_purchases(array('orders'));
    if(!$purchases)
      return false;

после:

$this->design->assign('orders', $orders);

вставляем:

$this->design->assign('purchases', $purchases); 

идем в design/theme/user.tpl и находим и после:

{foreach name=orders item=order from=$orders}

вставляем:

{foreach $purchases as $purchase}

и в средине пишем (тоже меняем и правим под себя):

                  {($purchase->price)|convert} {$currency->sign} 

                  {($purchase->amount)|convert} {$cart->total_products|plural:'товар':'товаров':'товара'}
Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

Бред)

Если хотите, чтобы работало - сначала надо у массива orders выбрать id

Потом выбрать purchases по этим id

А потом привязать purchases к orders

Ссылка на сообщение
Поделиться на другие сайты

Бред)

 

Именно так.

 

Бред начинается у Вас с первой строки Вашего нового кода:

 

$purchases = $this->orders->get_purchases(array('orders'));

Сделал сам. Но есть небольшой баг...в шаблоне user.tpl либо пропадает номер заказа, либо выводит огромный список заказов одних и тех же...подскажите как исправить?

 

Скорее всего, это у Вас БОЛЬШОЙ баг - выводит все заказанные товары - и от своих заказов и от чужих, а Вы этого не замечаете, так как тестируете на малом числе заказов.

Ссылка на сообщение
Поделиться на другие сайты

Именно так.

 

Бред начинается у Вас с первой строки Вашего нового кода:

 

 

Скорее всего, это у Вас БОЛЬШОЙ баг - выводит все заказанные товары - и от своих заказов и от чужих, а Вы этого не замечаете, так как тестируете на малом числе заказов.

 

а Kors как всегда, ничего путевого, но надо написать

Ссылка на сообщение
Поделиться на другие сайты

Бред)

Если хотите, чтобы работало - сначала надо у массива orders выбрать id

Потом выбрать purchases по этим id

А потом привязать purchases к orders

 

спасибо, посижу, попробую

Ссылка на сообщение
Поделиться на другие сайты

Бред)

Если хотите, чтобы работало - сначала надо у массива orders выбрать id

Потом выбрать purchases по этим id

А потом привязать purchases к orders

 

если выводить как в OrderView массив

$purchases = $this->orders->get_purchases(array('orders_id'=>intval($orders->id)));

то сразу ошибка идет

Ссылка на сообщение
Поделиться на другие сайты

Потому что вы лепите непонятно что и куда, абсолютно не разбираясь в этом. :)

$orders->id = ПОЛНЫЙ БРЕД

Ссылка на сообщение
Поделиться на другие сайты

Потому что вы лепите непонятно что и куда, абсолютно не разбираясь в этом. :)

$orders->id = ПОЛНЫЙ БРЕД

 

а что не бред?

выше вы указывали:

 

 

Если хотите, чтобы работало - сначала надо у массива orders выбрать id
Ссылка на сообщение
Поделиться на другие сайты

Вот именно, я имел в виду, что надо обойти весь массив $orders, у каждого элемента найти id и собрать НОВЫЙ масссив с этими АйДи.

А если вы хотите волшебную строчку - то это вам к колдунам, а не программистам :)

Зачем у вас в профиле написано Программирование, если вы не имеете понятия, что такое МАССИВ???

И как с ним нужно работать?

Ссылка на сообщение
Поделиться на другие сайты

Вот именно, я имел в виду, что надо обойти весь массив $orders, у каждого элемента найти id и собрать НОВЫЙ масссив с этими АйДи.

А если вы хотите волшебную строчку - то это вам к колдунам, а не программистам :)

Зачем у вас в профиле написано Программирование, если вы не имеете понятия, что такое МАССИВ???

И как с ним нужно работать?

 

в лифте тоже много чего написано, а если любите пообсуждать на форуме Simpla вместо самой темы которую задают, то могу написать что написано в моем лифте

Ссылка на сообщение
Поделиться на другие сайты

Если хотите готовый код - за 10-20 долл с удовольствием вам помогу.

Если хотите на халяву - придется немного подумать.

Я вам дал направление.

Ждите, может быть кто-то выложит вам все готовое :)

Удачи!

Ссылка на сообщение
Поделиться на другие сайты

Если хотите готовый код - за 10-20 долл с удовольствием вам помогу.

Если хотите на халяву - придется немного подумать.

Я вам дал направление.

Ждите, может быть кто-то выложит вам все готовое :)

Удачи!

 

чет 10-20 долларов многовато звучит за такое...это ведь не модуль!

Ссылка на сообщение
Поделиться на другие сайты

а что не бред?

выше вы указывали:

 

Костя правильно все указал. нужно делать например так.

заменить в UserView.php

$orders = $this->orders->get_orders(array('user_id'=>$this->user->id));

на

$orders = array();
$orders_ids = array();
foreach($this->orders->get_orders( array('user_id'=>$this->user->id) ) as $o) {
    $orders_ids[] = $o->id;
    $orders[$o->id] = $o;
}

if(!empty($orders)) {
	$purchases = $this->orders->get_purchases(array('order_id'=>$orders_ids));
	
	foreach($purchases as $p)
		$orders[$p->order_id]->purchases[] = $p;
}

 

а не совать все подряд непонимая что как работает и тем более еще в метод пост. вы же делаете это кому-то как программист и не за спасибо

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

Костя правильно все указал. нужно делать например так.

заменить в UserView.php

$orders = $this->orders->get_orders(array('user_id'=>$this->user->id));

на

$orders = array();
$orders_ids = array();
foreach($this->orders->get_orders( array('user_id'=>$this->user->id) ) as $o) {
    $orders_ids[] = $o->id;
    $orders[$o->id] = $o;
}

if(!empty($orders)) {
	$purchases = $this->orders->get_purchases(array('order_id'=>$orders_ids));
	
	foreach($purchases as $p)
		$orders[$p->order_id]->purchases[] = $p;
}

 

а не совать все подряд непонимая что как работает и тем более еще в метод пост. вы же делаете это кому-то как программист и не за спасибо

 

за спасибо или не за спасибо, это вопрос уже другой, но 10-20$ за несколько строк это перебор. как говорится "меньше кусай, на дольше хватит"

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

Вот же му**к! Ему все разжевали, готовый код дали, а оно еще чем-то и недовольно...

Хоть бы спасибо сказал!

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...