nc_netshop_item_collection
коллекции объектов
В корзине ($netshop->get_cart_contents() или $netshop->cart->get_items()) и в заказе ($order->get_items()) список товаров представлен в виде коллекции nc_netshop_item_collection.
Коллекция (наследуется от nc_record_collection) реализует интерфейсы Iterator, ArrayAccess, Countable:
$collection = $order->get_items();
$number_of_items = count($collection);
foreach ($collection as $item) {
echo $item['Name'];
}
$index = "300:11"; // по умолчанию ключом в коллекции является строка, составленная из ID компонента и ID объекта
echo $collection[$index]['ItemPrice'];
Некоторые методы коллекции, которые могут быть полезны:
| Метод | Описание |
|---|---|
| $coll->get_field_sum($property) | Сумма значений по указанному свойству товаров с учётом количества (∑ Field × Qty) |
| Следующие методы доступны для всех коллекций nc_record_collection: | |
| $coll->where($option_or_method, $value, $comparison_operator = '==', array $method_arguments = null) |
Создаст новую коллекцию, в которой у всех элементов: |
| $coll->where_all(array $conditions) |
Вернёт новую коллекцию, в которой элементы удовлетворяют всем условиям $conditions. $collection->where_all(array(
array('site_id', 1),
array('comment_count', 1, '>=')
)); |
| $coll->first($option_or_method = null, $value = null, $comparison_operator = '==', array $method_arguments = null) |
Если вызван без параметров — вернёт первый элемент. Если вызван с параметрами — аналогично методу where() |
| $coll->any($option_or_method, $value, $comparison_operator = '==', array $method_arguments = null) |
Вернёт истину, если хоть у одного элемента коллекции значение или результат выполнения метода совпадает с указанным значением |
| $coll->all($option_or_method, $value, $comparison_operator = '==', array $method_arguments = null) |
Вернёт истину, если у всех элементов коллекции значение или результат выполнения метода совпадает с указанным значением |
| $coll->sum($property) |
Сумма значений по указанному свойству элементов коллекции. Например: $cart->get_items()->sum('TotalPrice') — стоимость всех товаров в корзине (со скидкой) |
| $coll->min($property), $coll->max($property) | Минимальное / максимальное значение свойства |
| $coll->set_index_option($property) | Переиндексировать коллекцию по указанному свойству (должно быть уникальным, иначе элементы коллекции могут быть потеряны). |