![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-catalog/Block/Adminhtml/Product/Options/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Block\Adminhtml\Product\Options; use Magento\Store\Model\Store; /** * JSON products custom options * * @api * @since 100.0.2 */ class Ajax extends \Magento\Backend\Block\AbstractBlock { /** * Core registry * * @var \Magento\Framework\Registry */ protected $_coreRegistry = null; /** * @var \Magento\Catalog\Model\ProductFactory */ protected $_productFactory; /** * @var \Magento\Framework\Json\EncoderInterface */ protected $_jsonEncoder; /** * @param \Magento\Backend\Block\Context $context * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder * @param \Magento\Catalog\Model\ProductFactory $productFactory * @param \Magento\Framework\Registry $registry * @param array $data */ public function __construct( \Magento\Backend\Block\Context $context, \Magento\Framework\Json\EncoderInterface $jsonEncoder, \Magento\Catalog\Model\ProductFactory $productFactory, \Magento\Framework\Registry $registry, array $data = [] ) { $this->_jsonEncoder = $jsonEncoder; $this->_coreRegistry = $registry; $this->_productFactory = $productFactory; parent::__construct($context, $data); } /** * Return product custom options in JSON format * * @return string */ protected function _toHtml() { $results = []; /** @var $optionsBlock \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\Option */ $optionsBlock = $this->getLayout()->createBlock( \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\Option::class )->setIgnoreCaching( true ); $products = $this->_coreRegistry->registry('import_option_products'); if (is_array($products)) { foreach ($products as $productId) { $product = $this->_productFactory->create(); $product->setStoreId($this->getRequest()->getParam('store', Store::DEFAULT_STORE_ID)); $product->load((int)$productId); if (!$product->getId()) { continue; } $optionsBlock->setProduct($product); $results = array_merge($results, $optionsBlock->getOptionValues()); } } $output = []; foreach ($results as $resultObject) { $output[] = $resultObject->getData(); } return $this->_jsonEncoder->encode($output); } }