Ограничения доставки. Корректная проверка родительского класса

Рейтинг: 1.0000  
На голосовании
Предложил Пользователь 40761 06.04.2018 10:48:52

Ограничения доставки. Корректная проверка родительского класса

В файле
/bitrix/modules/sale/admin/delivery_ajax.php

Стоит явная проверка на родителя:
if(get_parent_class($className) != 'Bitrix\Sale\Delivery\Restrictions\Base')
Что неверно. При создании ограничения сейчас ожидается, что ограничение это прям непосредственный потомок Base. Если же ограничение наследуется от другого ограничения, то будет выброшено исключение с ошибкой про неверное наследование.

Проверку нужно изменить на такую:
if(!is_subclass_of($className, 'Bitrix\Sale\Delivery\Restrictions\Base'))
В этом случае наследование будет работать корректно и можно будет изменять типовые ограничения

Рейтинг: 0  
Пользователь 390462 13.04.2018 22:40:37
Или if instanceof