本文整理汇总了PHP中Magento\Weee\Helper\Data::getWeeeAttributesForBundle方法的典型用法代码示例。如果您正苦于以下问题:PHP Data::getWeeeAttributesForBundle方法的具体用法?PHP Data::getWeeeAttributesForBundle怎么用?PHP Data::getWeeeAttributesForBundle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Weee\Helper\Data
的用法示例。
在下文中一共展示了Data::getWeeeAttributesForBundle方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Change default JavaScript templates for options rendering
*
* @param \Magento\Framework\Event\Observer $observer
* @return $this
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$response = $observer->getEvent()->getResponseObject();
$options = $response->getAdditionalOptions();
/** @var \Magento\Catalog\Model\Product $product */
$product = $this->registry->registry('current_product');
if (!$product) {
return $this;
}
if ($this->weeeData->isEnabled() && !$this->weeeData->geDisplayIncl($product->getStoreId()) && !$this->weeeData->geDisplayExcl($product->getStoreId())) {
// only do processing on bundle product
if ($product->getTypeId() == \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE) {
if (!array_key_exists('optionTemplate', $options)) {
$calcPrice = $this->getWhichCalcPriceToUse($product->getStoreId());
$options['optionTemplate'] = '<%- data.label %>' . '<% if (data.' . $calcPrice . '.value) { %>' . ' +<%- data.' . $calcPrice . '.formatted %>' . '<% } %>';
}
foreach ($this->weeeData->getWeeeAttributesForBundle($product) as $weeeAttributes) {
foreach ($weeeAttributes as $weeeAttribute) {
if (!preg_match('/' . $weeeAttribute->getCode() . '/', $options['optionTemplate'])) {
$options['optionTemplate'] .= sprintf(' <%% if (data.weeePrice' . $weeeAttribute->getCode() . ') { %%>' . ' (' . $weeeAttribute->getName() . ': <%%- data.weeePrice' . $weeeAttribute->getCode() . '.formatted %%>)' . '<%% } %%>');
}
}
}
if ($this->weeeData->geDisplayExlDescIncl($product->getStoreId())) {
$options['optionTemplate'] .= sprintf(' <%% if (data.weeePrice) { %%>' . '<%%- data.weeePrice.formatted %%>' . '<%% } %%>');
}
}
}
$response->setAdditionalOptions($options);
return $this;
}
示例2: execute
/**
* Modify the options config for the front end to resemble the weee final price
*
* @param \Magento\Framework\Event\Observer $observer
* @return $this
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
if ($this->weeeData->isEnabled()) {
$priceConfigObj = $observer->getData('configObj');
try {
/** @var \Magento\Catalog\Model\Product $product */
$product = $this->registry->registry('current_product');
$weeeAttributesForBundle = $this->weeeData->getWeeeAttributesForBundle($product);
$priceConfig = $this->recurConfigAndInsertWeeePrice($priceConfigObj->getConfig(), 'prices', $this->getWhichCalcPriceToUse($product->getStoreId(), $weeeAttributesForBundle), $weeeAttributesForBundle);
$priceConfigObj->setConfig($priceConfig);
} catch (\Exception $e) {
return $this;
}
}
return $this;
}
示例3: testGetWeeeAttributesForBundle
public function testGetWeeeAttributesForBundle()
{
$prodId1 = 1;
$prodId2 = 2;
$fptCode1 = 'fpt' . $prodId1;
$fptCode2 = 'fpt' . $prodId2;
$weeeObject1 = new \Magento\Framework\DataObject(['code' => $fptCode1, 'amount' => '15.0000']);
$weeeObject2 = new \Magento\Framework\DataObject(['code' => $fptCode2, 'amount' => '15.0000']);
$testArray = [$prodId1 => [$fptCode1 => $weeeObject1], $prodId2 => [$fptCode2 => $weeeObject2]];
$this->weeeTax->expects($this->any())->method('getProductWeeeAttributes')->will($this->returnValue([$weeeObject1, $weeeObject2]));
$productSimple = $this->getMock('\\Magento\\Catalog\\Model\\Product\\Type\\Simple', ['getId'], [], '', false);
$productSimple->expects($this->at(0))->method('getId')->will($this->returnValue($prodId1));
$productSimple->expects($this->at(1))->method('getId')->will($this->returnValue($prodId2));
$productInstance = $this->getMock('\\Magento\\Bundle\\Model\\Product\\Type', [], [], '', false);
$productInstance->expects($this->any())->method('getSelectionsCollection')->will($this->returnValue([$productSimple]));
$store = $this->getMock('\\Magento\\Store\\Model\\Store', [], [], '', false);
/** @var \Magento\Catalog\Model\Product $product */
$product = $this->getMock('\\Magento\\Bundle\\Model\\Product', ['getTypeInstance', 'getStoreId', 'getStore', 'getTypeId'], [], '', false);
$product->expects($this->any())->method('getTypeInstance')->will($this->returnValue($productInstance));
$product->expects($this->any())->method('getStoreId')->will($this->returnValue(1));
$product->expects($this->any())->method('getStore')->will($this->returnValue($store));
$product->expects($this->any())->method('getTypeId')->will($this->returnValue('bundle'));
$registry = $this->getMock('Magento\\Framework\\Registry', [], [], '', false);
$registry->expects($this->any())->method('registry')->with('current_product')->will($this->returnValue($product));
$this->assertEquals($testArray, $this->helperData->getWeeeAttributesForBundle($product));
}
示例4: execute
/**
* Change default JavaScript templates for options rendering
*
* @param \Magento\Framework\Event\Observer $observer
* @return $this
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$response = $observer->getEvent()->getResponseObject();
$options = $response->getAdditionalOptions();
/** @var \Magento\Catalog\Model\Product $product */
$product = $this->registry->registry('current_product');
if (!$product) {
return $this;
}
// if the Weee module is enabled, then only do processing on bundle products
if ($this->weeeData->isEnabled() && $product->getTypeId() == \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE) {
if ($this->taxData->priceIncludesTax() && $this->taxData->displayPriceExcludingTax()) {
// the Tax module might have set up a default, but we will re-decide which calcPrice field to use
unset($options['optionTemplate']);
}
if (!array_key_exists('optionTemplate', $options)) {
$calcPrice = $this->getWhichCalcPriceToUse($product->getStoreId());
$options['optionTemplate'] = '<%- data.label %>' . '<% if (data.' . $calcPrice . '.value) { %>' . ' +<%- data.' . $calcPrice . '.formatted %>' . '<% } %>';
}
if (!$this->weeeData->isDisplayIncl($product->getStoreId()) && !$this->weeeData->isDisplayExcl($product->getStoreId())) {
// we need to display the individual Weee amounts
foreach ($this->weeeData->getWeeeAttributesForBundle($product) as $weeeAttributes) {
foreach ($weeeAttributes as $weeeAttribute) {
if (!preg_match('/' . $weeeAttribute->getCode() . '/', $options['optionTemplate'])) {
$options['optionTemplate'] .= sprintf(' <%% if (data.weeePrice' . $weeeAttribute->getCode() . ') { %%>' . ' (' . $weeeAttribute->getName() . ': <%%- data.weeePrice' . $weeeAttribute->getCode() . '.formatted %%>)' . '<%% } %%>');
}
}
}
}
if ($this->weeeData->isDisplayExclDescIncl($product->getStoreId())) {
$options['optionTemplate'] .= sprintf(' <%% if (data.weeePrice) { %%>' . '<%%- data.weeePrice.formatted %%>' . '<%% } %%>');
}
}
$response->setAdditionalOptions($options);
return $this;
}