diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml index 67b1e95e3084663f375efad98714f295ac897c41..6ed486f4c0b4ae21234947626e3f2749aa226d57 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml @@ -9,7 +9,7 @@ ?> <?php /** @var $block \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options */ ?> -<div class="fieldset-wrapper" id="product-custom-options-wrapper"> +<div class="fieldset-wrapper" id="product-custom-options-wrapper" data-block="product-custom-options"> <div class="fieldset-wrapper-title"> <strong class="title"> <span><?php /* @escapeNotVerified */ echo __('Custom Options') ?></span> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml index 3403d4447f82f705375a32e5467793aabd2dff4d..ef38f34b168c37ddd3ddf1972af4e13ff4bdf8ef 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml @@ -88,7 +88,7 @@ require([ ], function(jQuery){ jQuery(function ($) { - var fieldSet = $('#Custom_Options'); + var fieldSet = $('[data-block=product-custom-options]'); fieldSet.customOptions(<?php /* @escapeNotVerified */ echo $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode( [ 'fieldId' => $block->getFieldId(), diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index b7a16ce3db853a02f454b58af0d72e6e6d32dc31..3c7163a2227314abb80979fa1ff1b4a3d2626350 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -216,7 +216,7 @@ define([ var widget = this, currentElement = $(event.target), parentId = '#' + currentElement.closest('.fieldset-alt').attr('id'), - group = currentElement.find('[value="' + currentElement.val() + '"]').closest('optgroup').attr('label'), + group = currentElement.find('[value="' + currentElement.val() + '"]').closest('optgroup').attr('data-name'), previousGroup = $(parentId + '_previous_group').val(), previousBlock = $(parentId + '_type_' + previousGroup), tmpl; diff --git a/lib/internal/Magento/Framework/View/Element/Html/Select.php b/lib/internal/Magento/Framework/View/Element/Html/Select.php index ab54697632aceffbda35a6fee7debca60dc6e3d8..2b240270ba74f6f8ff30de729049b379558a8010 100644 --- a/lib/internal/Magento/Framework/View/Element/Html/Select.php +++ b/lib/internal/Magento/Framework/View/Element/Html/Select.php @@ -154,16 +154,18 @@ class Select extends \Magento\Framework\View\Element\AbstractBlock if ($isArrayOption && is_array($option)) { $value = $option['value']; $label = (string)$option['label']; + $name = $option['label'] instanceof \Magento\Framework\Phrase ? $option['label']->getText() : $label; $params = !empty($option['params']) ? $option['params'] : []; } else { $value = (string)$key; $label = (string)$option; + $name = $label; $isArrayOption = false; $params = []; } if (is_array($value)) { - $html .= '<optgroup label="' . $label . '">'; + $html .= '<optgroup label="' . $label . '" data-name="' . $name . '">'; foreach ($value as $keyGroup => $optionGroup) { if (!is_array($optionGroup)) { $optionGroup = ['value' => $keyGroup, 'label' => $optionGroup];