Ошибка в руководстве по плагину "Удалить компонент"
Я пытаюсь следовать этому руководству "Удалить компонент" , Но получаю следующую ошибку:
"Uncaught Error: Cannot use object of type Magento\Checkout\Block\Checkout\LayoutProcessor\Interceptor as array in".
Код плагинов:
class removeCheckoutComponent {
public function aroundProcess($jsLayout) {
unset($jsLayout['components']['checkout']['children']['steps']['%path_to_target_node%']);
return $jsLayout;
}
}
Почему это не работает? Конечный результат, которого я пытаюсь достичь, - удалить выбор города со страницы оформления заказа.
2
Author: user3748173, 2016-12-03
1 answers
Проблема в том, что вы не используете правильную подпись. Вокруг плагинов следуйте этой подписи:
function aroundMethod ($subject, \Closure $proceed, $arg1, $arg2, etc...)
Где $subject
- экземпляр класса, метод которого перехватывается, $proceed
- делегат метода, а затем следуют аргументы для вызова метода.
Для вашего варианта использования у вас должно быть:
function aroundProcess (\Magento\Checkout\Block\Checkout\LayoutProcessor $subject, \Closure $proceed, $jsLayout)
{
unset($jsLayout['components']['checkout']['children']['steps']['%path_to_target_node%']);
return $proceed($jsLayout);
}
Более подробная информация здесь: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html
3
Author: Aaron Allen, 2016-12-04 08:59:06