checkout_before_payment

Срабатывает перед вызовом предварительного метода prepare() шага оформления заказа «выбор способа оплаты» на странице оформления заказа в корзине.

Shop-Script

Входящие параметры (передаются по ссылке)

$params['step_id'] string Идентификатор шага оформления заказа.
$params['result'] array Значения, которые будут переданы JavaScript-коду и в шаблон соответствующего шага templates/actions/frontend/order/form/payment.html. Могут быть изменены плагином.
$params['data'] array Данные, которые передаются классу шага оформления заказа. Могут быть изменены плагином.
$params['data']['origin'] string Обозначение источника вызова: 'form' (полное формирование всей формы оформления заказа), 'calculate' (фоновое обновление части формы по мере изменения значений в ней покупателем) или 'create' (создание заказа после окончательного подтверждения покупателем).
$params['data']['order'] shopOrder Объект свойств заказа.
$params['data']['contact'] waContact Объект свойств авторизованного покупателя.
$params['data']['input'] array Данные, полученные из POST-запроса, сессии или другого источника.
$params['error_step_id'] string Идентификатор шага, на котором возникла ошибка. Может быть изменён плагином.
$params['errors'] array Сообщения об ошибках. Могут быть изменены плагином.
$params['errors'][]['text'] string Текст сообщения об ошибке.
… код плагина …

Результат работы плагина

Shop-Script

Пример кода плагина

PHP

public function checkoutBeforePayment(&$params)
{
    $selected_payment_id = ifset($params, 'data', 'input', 'payment', 'id', null);

    if (!shopMyPlugin::isEnabledPaymentMethod($selected_payment_id)) {    
        waLog::log(sprintf('Customer had selected payment option #%d right before it was disabled in backend.', $selected_payment_id), 'disabled-payment-options-selection.log');
    }
}