Как переопределить форму review_cart в ubercart - PullRequest
1 голос
/ 07 апреля 2010

Мне нужно написать модуль, который отправляет данные заказа в службу оплаты, как, скажем, PayPal. Им нужно, чтобы данные были отправлены из формы с элементами, которые выглядят примерно так (обратите внимание на повторяющееся имя):

<input name="ORDER_PNAME[]" type="hidden" value="CD Player">
<input name="ORDER_PNAME[]" type="hidden" value="Geanta voiaj 2L">

Это делает невозможным переопределение формы простым редактированием $ form в module_form_alter (), поскольку «ORDER_PNAME []» будет дублирующим ключом в $ form.

Так что мне нужно обойти всю систему обработки друпальных форм. Я посмотрел и обнаружил, что могу перезаписать переменную $ form в uc_cart_checkout_review обычными данными формы html (см. http://api.ubercart.org/api/function/uc_cart_checkout_review/2 строка 4).

Как правильно это сделать?

1 Ответ

0 голосов
/ 08 апреля 2010

На правах обходного пути:
Вы можете добавить необходимые элементы формы, используя элемент разметки:

$form['your_name'] = array(
    '#type'  => 'markup',
    '#value' => '<input name="ORDER_PNAME[]" type="hidden" value="CD Player">
                 <input name="ORDER_PNAME[]" type="hidden" value="Geanta voiaj 2L">',
);


Если вам не нужно перенаправлять пользователя на эту страницу сервиса электронных платежей, просто отправьте данные, вы можете использовать curl для публикации необходимых данных. Смежный вопрос: Автоматическая отправка формы (cURL) .

...