Jump to content

Recommended Posts

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

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

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

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

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

Link to post
Share on other sites

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

 

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

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

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

 

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

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

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

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

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

 

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

Link to post
Share on other sites

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

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

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

 

 

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

 

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

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

Link to post
Share on other sites

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

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

 

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

 

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

 

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

 

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

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

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

Edited by Kors
Link to post
Share on other sites

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

Делаю в 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 не принимает

Edited by n1c
Link to post
Share on other sites

Сделал сам. Но есть небольшой баг...в шаблоне 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:'товар':'товаров':'товара'}
Edited by n1c
Link to post
Share on other sites

Бред)

 

Именно так.

 

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

 

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

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

 

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

Link to post
Share on other sites

Именно так.

 

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

 

 

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

 

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

Link to post
Share on other sites

Бред)

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

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

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

 

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

Link to post
Share on other sites

Бред)

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

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

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

 

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

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

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

Link to post
Share on other sites

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

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

 

а что не бред?

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

 

 

Если хотите, чтобы работало - сначала надо у массива orders выбрать id
Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

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

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

 

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

Link to post
Share on other sites

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

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

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

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

Удачи!

Link to post
Share on other sites

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

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

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

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

Удачи!

 

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

Link to post
Share on other sites

а что не бред?

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

 

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

заменить в 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;
}

 

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

Edited by mishanya
Link to post
Share on other sites

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

заменить в 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$ за несколько строк это перебор. как говорится "меньше кусай, на дольше хватит"

Edited by n1c
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...