Вы здесь

Как передать дополнительный аргумент на страницу оформления заказа?

0

На сайте есть две кнопки "купить себе" и "купить в подарок" которые ведут на страницу оформления заказа /checkout
какие бы аргументы я туда не передавал
/checkout/agr
/checkout/46/arg
страница не найдена
а мне как то нужно построить условие, которое бы проверяло с какой кнопки мы попали на страницу checkout.
Ну а уже в зависимости от условия выводить/скрывать поля формы (с этим справлюсь)

Но выполнить проверку ума не приложу...

Версия Drupal: 
7.x
Категория: 
Form API
Вопрос задан 16.11.2017 - 10:51

Ответы

1

/checkout?arg

Ответ дан 16.11.2017 - 11:39
Аватар пользователя xandeadx
xandeadx
1542

Благодарю, то что надо)
но оказалось задача сложнее, в каталоге у каждого товара должна быть такие кнопки 2 сразу.
если знаю как настроить в правилах редирект на страницу chechout после добавления в корзину.
как с помощью js продублировать кнопки тоже знаю.
То вот как прокинуть аргумент из каталога уже не знаю.
это что то наверное в сторону hook_form копать надо...?

Комментарий оставлен 16.11.2017 - 11:55

что значит "прокинуть аргумент из каталога"?

Комментарий оставлен 16.11.2017 - 14:40

У меня идет каталог товаров
в нем только одна кнопка "добавить в корзину"
мне нужно как то сделать ее клона на которую повесить дополнительный флаг
при нажатии на кнопку товар добавляется в корзину и в этот же момент должен перенаправиться на страницу оформления заказа, которая должна как то понять какая кнопка была нажата перед добавлением в корзину.
В самой корзине я понял как можно сделать ссылки на checkout с дополнительными аргументами.
Спасибо за подсказку.

то есть идет каталог открыток к примеру с кнопками "купить себе" "купить в подарок" при нажатии на кнопку мы попадаем на страницу оформления заказа форму которой будем кастомизировать в зависимости от кнопки.

Но перед кастомизацией checkoutа надо разобраться как катомизировать кнопку)

Комментарий оставлен 16.11.2017 - 16:07
/**
 * Implements hook_form_FORM_ID_alter(): commerce_cart_add_to_cart_form.
 */
function modulename_form_commerce_cart_add_to_cart_form_alter(&$form, &$form_state) {
  $form['buy'] = array(
    '#type' => 'submit',
    '#value' => 'Buy',
  );

  $form['#submit'][] = 'modulename_form_commerce_cart_add_to_cart_form_submit';
}

/**
 * Add to cart form custom submit.
 */
function modulename_form_commerce_cart_add_to_cart_form_submit($form, &$form_state) {
  if ($form_state['clicked_button']['#value'] == $form['buy']['#value']) {
    $form_state['redirect'] = array('checkout/' . $form_state['line_item']->order_id, array('query' => array('arg' => 'arg')));
  }
}
Комментарий оставлен 16.11.2017 - 17:07