Как передать свои данные в чекаут процессе.

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

Аватар пользователя shanek shanek 28 марта 2017 в 10:55

Здравствуйте!!!

Есть drupal commerce модули shipping, flat rate, + кастомные.
Есть процесс checkout в 4 этапа.

1. Проверка всех данных о пользователе(checkout) и форма (customer_profile_shipping).
2. Выбор способа доставки(shipping) и форма (commerce_checkout_form_shipping)
3. Выбор способа оплаты (pay)
4. Проверка и соответственно создание заказа.

Задача
На втором этапе чекаута "Выбор способа доставки" если пользователь выбирает транспортную компанию необходимо подкидывать форму с полями типа введите паспортные данные. сделать форму обязательной к заполнению и по завершению процесса оформления эти данные записывать.
Форму сделал вот так.
$form['commerce_shipping']['field_customer_pasport_ser'] = array(
'#type' => 'textfield',
'#title' => t('Серия паспорта'),
'#default_value' => t(''),
'#required' => TRUE,
);
Она появляется там где надо в процессе на втором шаге.
Далее делаю подключаю файлик с jquery
//скрываю свою форму
$('#edit-commerce-shipping-customer-profile-shipping-field-customer-pasport-ser').hide();
$('label[for=edit-commerce-shipping-field-customer-pasport-ser]').hide();
//показываю свою форму тогда когда выбрана транспортная компания
if (($('input:radio:checked').val() == 'tk') ) {
$('#edit-commerce-shipping-customer-profile-shipping-field-customer-pasport-ser').fadeIn(500);
$('label[for=edit-commerce-shipping-field-customer-pasport-ser]').fadeIn(500);
Проблемма в том что никак понять не могу как по нажатию кнопки далее передать паспортные данные которые ввел пользователь из формы commerce_checkout_form_shipping(Форма доставки в которую я прикрутил свою форму ) В customer_profile_shipping(Инфо о пользователе у которого есть поля с паспортными данными.)

Бьюсь неделю с этой задачей пожалуйста потратьте на меня немного времени.

Комментарии

Аватар пользователя man-1982 man-1982 30 марта 2017 в 9:30

hook_commerce_checkout_complete - посмотрите его.
А в идеале вам надо посмотреть, какая форма вызывается дальше для этого вам нужно

<?php
function my_module_form_alter(&$form, &$form_state$form_id){
  
dpm(compact('form''form_state'), $form_id);
}
?>

$form, $form_state - будет видно текущее состояние формы. дальше уже дело техники. Подставить одни переменные из одних значений в другие