Класс Корзина покупок CodeIgniter: Как получить независимые значения в массиве?

Итак, у меня есть этот контроллер, использующий класс корзины покупок CodeIgniter на сайте электронной коммерции.

Работает нормально. Он загружает класс, добавляет товары в корзину, идет к оформлению заказа и завершает транзакцию. Но мне нужно получить некоторую информацию (например, название продукта, идентификатор, цена), когда пользователь на кассе, чтобы отправить его Mixpanel (который является инструментом аналитики).

Я добавил к своему контроллеру проверки этот код:

// Sends subscription information to mixpanel
$this->mixpanel_wrapper->people_set($aluno[0]->aluno_id, array(
'$first_name'    =>    $student[0]->student_first_name,
'$last_name'     =>    $student[0]->student_last_name,
'$email'         =>    $student[0]->student_email,
));
$this->mixpanel_wrapper->identify($student[0]->student_id);
$this->mixpanel_wrapper->track_something('Added to cart',  array ($this->cart->contents()));
// Ends mixpanel

Оно работает. В своей панели инструментов я вижу, что конкретный пользователь активировал событие «Добавлено в корзину». Но в свойствах этого события я вижу что-то вроде этого (номер «свойства» автоматически добавляется mixpanel:

Property: 0
{"ee55c5260c7d5fe7fe9bc73b0e0cc82c":{"name":"Product 1","price":"99.00","qty":"1","rowid":"ee55c5260c7d5fe7fe9bc73b0e0cc82c","id":"8","subtotal":99,"options":{"category":"business","teacher":"La Gracia","image":"cozinhando.png","type":"course","description":"Montar uma apresentação é como cozinhar. Se você faz um “catadão” e coloca tudo na panela, sem ordem ou critério, sai uma gororoba. Uma experiência saborosa exige cuidado e atenção na seleção e preparo dos ingredientes. Nesse curso, aprenda"}},"1bebb39e8f44062ff10639f452ea8f8f":{"name":"Product 2","price":"59.00","qty":"1","rowid":"1bebb39e8f44062ff10639f452ea8f8f","id":"7","subtotal":59,"options":{"category":"creativity","teacher":"Pedro Maciel Guimarães","image":"cover_almodovar.png","type":"course","description":"Conheça a evolução das obras de Almodóvar por duas matrizes únicas: a imitação e o intercâmbio de gêneros. Passando por suas comédias e dramas, veremos como Almodóvar pensou e produziu seus diversos trabalhos, desde suas primeiras referências"}}}

В этой корзине было 2 товара. «Продукт 1» и «продукт 2». Но на самом деле я должен увидеть что-то вроде этого:

Property: 0
Name: Product 1
Price: 99.00
Qty: 1
ID: 8

Property: 1
Name: Product 2
Price: 59.00
Qty: 1
ID: 7

Что нужно Mixpanel, так это чтобы я преобразовал его в массив, подобный этому, для установки нового пользователя:

$this->mixpanel_wrapper->people_set($aluno[0]->aluno_id, array(
'$first_name'       => $aluno[0]->aluno_primeiro_nome,
'$last_name'        => $aluno[0]->aluno_sobrenome,
'$email'            => $aluno[0]->aluno_email,
));

Кто-нибудь знает, как я могу получить конкретные данные из класса корзины покупателя CI? Что-то вроде этого:

$this->mixpanel_wrapper->track_something('User Logged In', array(
'Name'             => $this->cart->contents->name,
'Product ID'       => $this->cart->contents->id,
'Price'            => $this->cart->contents->price,
'Quantity'         => $this->cart->contents->qty,
));

Я думаю, что это может быть очень просто, но я застрял здесь (снова).

1

Решение

Это было бы не сильно отличается от того, когда вы показать корзину. Перебрать массив корзины, $this->cart->contents()и обрабатывать каждый элемент.

foreach ($this->cart->contents() as $item)
{
$this->mixpanel_wrapper->track_something('User Logged In', array(
'Name'             => $item['name'],
'Product ID'       => $item['id'],
'Price'            => $item['price'],
'Quantity'         => $item['qty'],
));
}

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]