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) | Переиндексировать коллекцию по указанному свойству (должно быть уникальным, иначе элементы коллекции могут быть потеряны). |