как добавить возможность прикрепить файл в форму оформления заказа в Уберкарт?

Главные вкладки

Аватар пользователя love love 23 марта 2011 в 15:00

К форм оформления заказа в Уберкарте нужно добавить поле с возможностью прикрепить файл (с реквизитами, например) - как?
То есть как в стандартный набор полей оформления заказа в уберкарте добавить аплоад файла, и чтоб этот файл отправлялся вместе с письмом-заявкой на адрес магазина?

Комментарии

Аватар пользователя RainBowAM RainBowAM 23 марта 2011 в 21:22

Вариант (Потребуется свой модуль):

  1. Объявим свою панель для формы оформления заказа
    function ВАШ_МОДУЛЬ_checkout_pane() {
    $panes[] = array(
      'id' => 'ИД_ПАНЕЛИ',
      'callback' => 'ВАШ_ОБРАБОТЧИК',
      'title' => 'ЗАГОЛОВОК',
      'desc' => 'ОПИСАНИЕ',
      'weight' => 8, // Положение на форме
      'process' => TRUE, // Требуется ли обработка данных панели  между вводом и подтверждением
      'collapsible' => FALSE
    );
    return $panes;
    }
  2. Добавляем обработчик для нашей панельки
    function uc_checkout_pane_era_z($op, &$arg1, $arg2)
    {
      global $user;

      switch ($op)
      {
        // В это секции мы подготовм нужные поля формы для диалга с пользователем
        case 'view':
        {
          $contents['ИМЯ_ПОЛЯ'] = array(
            '#type' => 'input',
            '#title' => 'Просто бред',
            '#default_value' => 'джыаолдаолдыфвлджа',
          );
          $desciption = 'ОПИСАНИЕ ПАНЕЛИ';
          return array('description' => $description, 'contents' => $contents);
        }

        case 'process':
        {
          // в arg2['ИМЯ_ПОЛЯ'] находится значение поля
          // arg1->ИМЯ_ПОЛЯ можно или нужно сохранить данные для этапа подтверждения review
          // Можно сохранит в сессии ряд значений, для использования например на этаме отправки письма
          return TRUE; // если всё успешно
        }

        case 'review':
        {
          // Предпросмотр/подтверждение заказа
          $output = 'HTML'; // Генерируешь HTML сохранённое значение доступно в arg1->ИМЯ_ПОЛЕ
          return $output;
        }
      }
    }

  3. Включаем нашу панельку на всех или только нужных этапах в админке уберкарта.

Вот так примерно можно добавить свои поля... Добавляйте поля с файлом, грузите его куда нибудь, сохраняйте информацию в сессии, в триггере при оформлении заказа сделайте своё формирование письма с вложением файла... В общем фантазии побольше.

Аватар пользователя brusee brusee 23 декабря 2013 в 17:59

RainBowAM wrote:
Вариант (Потребуется свой модуль):

RainBowAM wrote:

Вот так примерно можно добавить свои поля... Добавляйте поля с файлом, грузите его куда нибудь, сохраняйте информацию в сессии, в триггере при оформлении заказа сделайте своё формирование письма с вложением файла... В общем фантазии побольше.

скопировал с вашего комментария код с соответствующими заменами. поля выводит и на странице оформления заказа и на странице подтверждения, однако в $arg2['ИМЯ_ПОЛЯ'] значение поля не передается в чем может быть причина?

Аватар пользователя brusee brusee 16 августа 2013 в 0:23

то же интересует эта тема. пробовал http://drupal.org/project/uc_webform_pane не разобрался как добавить данные из панели к заказу (у формы отдельная кнопка отправки формы)
сделал через добавление поля загрузки файла к товару https://drupal.org/project/uc_attribute_files