Плагин доставки customFields Есть решение

В плагине доставки, вставляю текстовое поле такого вида:

public function customFields(waOrder $order)
    {
        return array(
            'address' => array(
                'control_type' => waHtmlControl::INPUT,
                'title' => 'ПВЗ',
            )
        );
    }

как к нему привязать дополнительные атрибуты required и disabled, и прочие произвольные.

1 ответ

  • 1
    Михаил Ушенин Webasyst 8 ноября 2016 12:25 # Решение
    return array(
        'address' => array(
            'control_type' => waHtmlControl::INPUT,
            'title' => 'ПВЗ',
            'disabled' => true, //пример
        )
    );

    Другие доступные для установки свойства элементов управления перечислены в описании параметра $params метода getControl() класса waHtmlControl.

    • +1
      Martin256 Martin256 9 ноября 2016 08:45 #

      перепутал readonly c disabled, с readonly все ок, прицепилось, необходимо еще и required. В документации его нету, и способа прописать походу тоже? Может есть какое то "костыльное" решение кроме как JS

      • +2
        Михаил Ушенин Михаил Ушенин Webasyst 9 ноября 2016 09:38 #

        Попробуйте зарегистрировать свой элемент управления и использовать его.

        • +2
          Михаил Ушенин Михаил Ушенин Webasyst 9 ноября 2016 09:40 #

          Я предлагаю это сделать, чтобы создать свой клон элемента waHtmlControl::INPUT, но с возможностью передать в него параметр для установки атрибута required, который пока что не поддерживается в системном элементе.

          • +1
            Martin256 Martin256 11 ноября 2016 08:52 #

            Спасибо за помощь, есть еще один момент, как в плагине доставки в методе calculate() получить текущие значения полей из метода customFields().

            Это нужно для того что бы на шаге подтверждения заказа, повторно (почему там стоимость пересчитывается заново), верно рассчитать стоимость доставки.

            • +2
              info@ravencode.ru info@ravencode.ru 11 ноября 2016 10:09 #
              в плагине доставки в методе calculate() получить текущие значения полей из метода customFields().

              в этой версии не знаю, но в прошлых эти поля добавлялись в заказ и соответственно в расчете не участвовали. можно попробовать поискать в $this->params['address'] или $this->address (не проверял).

              почему там стоимость пересчитывается заново

              используйте кеширование результатов


Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите