К общей сумме товара в корзине прибавить значение
Подскажите как при формировании общей суммы в корзине товара прибавить значение тв поля этого товара
public function status($data = array())
{
$status = array(
'total_count' => 0,
'total_cost' => 0,
'total_weight' => 0,
);
foreach ($this->cart as $item) {
if (empty($item['ctx']) || $item['ctx'] == $this->ctx) {
$status['total_count'] += $item['count'];
$status['total_cost'] += ($item['price'] * $item['count']) + значение тв поля p1;
$status['total_weight'] += $item['weight'] * $item['count'];
}
}
return array_merge($data, $status);
}
Комментарии: 1
Внутри цикла нужно получить значене tv для кадждого товара (можно это сделать конечно и вне цикла одним запросом но чуть сложнее, также можно делать данную операцию в момент формирования корзины и запихивать значение TV в массив $cart — так наверное наиболее правильно).
$resource = $this->modx->getObject('modResource', ['id' => $item['id']]);
$tvValue = $resource->getTVValue('tvName');
Ну и потом подставить значение в вычисление total_cost.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.