Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // ini_set("display_errors", 1);
- $errors = array();
- $data = array();
- // Required fields
- $fields = array(
- 'family' => array('/^[\pL\pPd]+$/siu', 'Фамилия'),
- 'first-name' => array('/^[\pL\pPd]+$/siu', 'Имя'),
- 'phone' => array('/^.+$/siu', 'Телефон'),
- 'email' => array('/^[\pL\.\-\_]+\@[\pL\.\-\_]+\.[\pL]+$/siu', 'E-Mail'),
- 'cof_passportend' => array('/^(\d+)\-(\d+)\-(\d+)$/siu', 'Срок действия паспорта')
- );
- foreach ($fields as $key => $rex) {
- $data[$key] = empty($_POST[$key]) ? '' : trim($_POST[$key]);
- if (empty($data[$key])) {
- $errors[$key] = 'Поле "'.$rex[1].'" не заполнено';
- continue;
- }
- if (preg_match($rex[0], $data[$key])) continue;
- $errors[$key] = 'Поле "'.$rex[1].'" заполнено некорректно';
- }
- $data['phone'] = preg_replace("/[^0-9]/", "", $data['phone']);
- $pe = new DateTime($data['cof_passportend'].' 00:00:00');
- $nw = new DateTime();
- if ($nw >= $pe) $errors['cof_passportend'] = 'Ваш паспорт просрочен';
- $tvr = $modx->getObject('modTemplateVarResource', array(
- 'tmplvarid' => 11,
- 'contentid' => $modx->resource->get('id')
- ));
- if ($tvr) {
- $nw = new DateTime($tvr->get('value'));
- if ($nw >= $pe) $errors['cof_passportend'] = 'Ваш паспорт будет просрочен';
- }
- // Errors
- if (!empty($errors)) return $AjaxForm->error('В форме содержатся ошибки!', $errors);
- // Other fields
- $fields = array(
- 'surname', 'cof_country', 'cof_passport',
- 'cof_food_preferences', 'cof_boat_experience', 'cof_medical_info'
- );
- foreach ($fields as $key) $data[$key] = strip_tags(empty($_POST[$key]) ? '' : trim($_POST[$key]));
- // MiniShop
- $miniShop2 = $modx->getService(
- 'minishop2',
- 'miniShop2',
- MODX_CORE_PATH.'components/minishop2/model/minishop2/',
- $scriptProperties
- );
- if (!($miniShop2 instanceof miniShop2)) return $AjaxForm->error('Ошибка сервиса магазина!');
- $scriptProperties['json_response'] = true;
- $miniShop2->initialize($modx->context->key, $scriptProperties);
- // User
- $uid = $modx->user->isAuthenticated('web') ? $modx->user->getOne('Profile')->get('id') : 0;
- // Fullname
- $fname = array();
- foreach (array('lastname', 'name', 'surname') as $k) {
- if (empty($data[$key])) continue;
- $fname[] = $data[$key];
- }
- $fname = implode(' ', $fname);
- // Cart
- $miniShop2->cart->clean();
- $miniShop2->order->clean();
- // Fields
- $miniShop2->order->add('user_id' , $uid);
- $miniShop2->order->add('receiver' , $fname);
- $miniShop2->order->add('phone' , $data['phone']);
- $miniShop2->order->add('email' , $data['email']);
- $miniShop2->order->add('delivery' , 2); // id метода доставки
- $miniShop2->order->add('payment' , 1); // id метода оплаты
- // Process
- $res = $miniShop2->cart->add($modx->resource->get('id'), 1, $_POST['options']);
- $res = $miniShop2->order->submit();
- if ($res['success']) {
- $modx->sendRedirect($modx->makeUrl($modx->resource->get('id')));
- }
- return $AjaxForm->success('Форма успешно отправлена. Сейчас вы перейдете на страницу оплаты.');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement