Ошибка "Не удается прочитать свойство 'Indexedoptions'" при удалении поля компании (Удалить поле проверки)
Мне нужно удалить поле компании со страницы оформления заказа. Я пытаюсь следовать этому руководству "Удалить компонент". Но я получаю следующую ошибку:
Uncaught TypeError: Cannot read property 'indexedOptions' of undefined(…) region.js:59
Мой файл плагинов:
public function aroundProcess(\Magento\Checkout\Block\Checkout\LayoutProcessor $subject, \Closure $proceed, $jsLayout) {
unset($jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']
['children']['shippingAddress']['children']['shipping-address-fieldset']['children']['company']);
return $jsLayout;
}
Кто-нибудь может объяснить мне, пожалуйста, что я делаю не так?
1
Author: user3748173, 2016-12-04
1 answers
Я нашел решение на этой странице https://github.com/magento/magento2/issues/4425
И рабочий код:
public function aroundProcess(\Magento\Checkout\Block\Checkout\LayoutProcessor $subject, \Closure $proceed, $jsLayout) {
$ret = $proceed($jsLayout);
unset($ret['components']['checkout']['children']['steps']['children']['shipping-step']
['children']['shippingAddress']['children']['shipping-address-fieldset']['children']['company']);
return $ret;
}
Из этой документации по плагину Я также обнаружил проблему: "Также стоит отметить, что вы несете ответственность за пересылку аргументов из плагина в вызываемый объект "продолжить"". Я добавляю подпись функции плагина из ответа @Aaron Allen в мой предыдущий пост , чтобы было понятнее всем, кто это было бы необходимо.
function aroundMethod ($subject, \Closure $proceed, $arg1, $arg2, etc...)
1
Author: user3748173, 2017-04-13 12:55:02