public function listen(MC4WP_Request $request)
{
if (!$request->post->get('_mc4wp_form_id')) {
return false;
}
try {
$form = mc4wp_get_form($request->post->get('_mc4wp_form_id'));
} catch (Exception $e) {
return false;
}
// where the magic happens
$form->handle_request($request);
$form->validate();
// store submitted form
$this->submitted_form = $form;
// did form have errors?
if (!$form->has_errors()) {
// form was valid, do something
$method = 'process_' . $form->get_action() . '_form';
call_user_func(array($this, $method), $form, $request);
} else {
$this->get_log()->info(sprintf("Form %d > Submitted with errors: %s", $form->ID, join(', ', $form->errors)));
}
$this->respond($form);
return true;
}