本文整理匯總了PHP中Sylius\Component\Promotion\Model\PromotionSubjectInterface::getChannel方法的典型用法代碼示例。如果您正苦於以下問題:PHP PromotionSubjectInterface::getChannel方法的具體用法?PHP PromotionSubjectInterface::getChannel怎麽用?PHP PromotionSubjectInterface::getChannel使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Sylius\Component\Promotion\Model\PromotionSubjectInterface
的用法示例。
在下文中一共展示了PromotionSubjectInterface::getChannel方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getPromotions
/**
* {@inheritdoc}
*/
public function getPromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channel = $subject->getChannel();
$promotions = $this->promotionRepository->findActiveByChannel($channel);
return $promotions;
}
示例2: getActivePromotions
/**
* @param PromotionSubjectInterface $subject
*
* @return array
*/
protected function getActivePromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
if (null === $this->promotions) {
$channel = $subject->getChannel();
$this->promotions = $this->repository->findActiveByChannel($channel);
}
return $this->promotions;
}
示例3: getPromotions
/**
* {@inheritdoc}
*/
public function getPromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channel = $subject->getChannel();
if (null === $channel) {
throw new \InvalidArgumentException('Order has no channel, but it should.');
}
$promotions = $this->promotionRepository->findActiveByChannel($channel);
return $promotions;
}
示例4: execute
/**
* {@inheritdoc}
*/
public function execute(PromotionSubjectInterface $subject, array $configuration, PromotionInterface $promotion)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channelCode = $subject->getChannel()->getCode();
if (!isset($configuration[$channelCode]) || !isset($configuration[$channelCode]['percentage'])) {
return false;
}
$filteredItems = $this->priceRangeFilter->filter($subject->getItems()->toArray(), array_merge(['channel' => $subject->getChannel()], $configuration[$channelCode]));
$filteredItems = $this->taxonFilter->filter($filteredItems, $configuration[$channelCode]);
$filteredItems = $this->productFilter->filter($filteredItems, $configuration[$channelCode]);
if (empty($filteredItems)) {
return false;
}
foreach ($filteredItems as $item) {
$promotionAmount = (int) round($item->getUnitPrice() * $configuration[$channelCode]['percentage']);
$this->setUnitsAdjustments($item, $promotionAmount, $promotion);
}
return true;
}