本文整理汇总了PHP中OrderItem::hasMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP OrderItem::hasMethod方法的具体用法?PHP OrderItem::hasMethod怎么用?PHP OrderItem::hasMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OrderItem
的用法示例。
在下文中一共展示了OrderItem::hasMethod方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updateSessionCart
/**
* If this order is still a cart, we save a copy of the items and
* the subtotal in the session for the quick cart dropdown to be
* usable even on static cached pages.
*
* @param OrderItem $item
* @param Buyable $buyable
* @param int $quantity
*/
protected function updateSessionCart($item, $buyable, $quantity)
{
if (!session_id() || !$buyable) {
return;
}
$cart = !empty($_SESSION['Cart']) ? $_SESSION['Cart'] : array('Items' => array(), 'SubTotal' => 0.0);
if ($quantity > 0) {
if (!isset($cart['Items'][$buyable->ID])) {
$prod = $item->Product();
$img = $prod ? $prod->Image() : null;
$img = $img ? $img->getThumbnail() : null;
// TODO: the key here should probably include the classname (or cover the diff bt Products and Variations)
$cart['Items'][$buyable->ID] = array('ThumbURL' => $img ? $img->RelativeLink() : '', 'Link' => $prod ? $prod->RelativeLink() : '', 'Title' => $item->TableTitle(), 'SubTitle' => $item->hasMethod('SubTitle') ? $item->SubTitle() : '', 'UnitPrice' => $item->obj('UnitPrice')->Nice(), 'Quantity' => $quantity, 'RemoveLink' => $item->removeallLink());
} else {
// update the quantity if it's already present
$cart['Items'][$buyable->ID]['Quantity'] = $quantity;
}
} else {
// remove the item if quantity is 0
unset($cart['Items'][$buyable->ID]);
}
// recalculate the subtotal
$cart['SubTotal'] = $this->owner->obj('SubTotal')->Nice();
// and the total number of items
$cart['TotalItems'] = 0;
foreach ($cart['Items'] as $item) {
$cart['TotalItems'] += $item['Quantity'];
}
$_SESSION['Cart'] = $cart;
}