Можно ли изменить $ form_state ['redirect'] предыдущего обратного вызова отправки? - PullRequest
1 голос
/ 20 марта 2019
function module_form_alter(&$form, $form_state, $form_id) {
  if($form_id == "user_login"){             
       $form['#submit'][] =  'module_userlogin_callback';          
     }
}

function module_userlogin_callback($form, $form_state){
    global $base_url;
    $current_path = $base_url . '/' .'about';
    $form_state['redirect']=$current_path;
}

Дело в том, что исходный обратный вызов отправки user_login_submit уже имеет $ form_state ['redirect'] на страницу профиля пользователя, и я хочу изменить это и перенаправить на страницу без переопределения исходной функции обратного вызова отправки.возможно? в настоящее время $ form_state ['redirect'], данное мной, не работает. Как я могу сбросить его и перенаправить на страницу?

1 Ответ

0 голосов
/ 28 марта 2019

У меня была похожая проблема, но я исправил ее, написав мою form_alter функцию в template.php, например:

your_theme_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_login') {
         $form['#submit'][] = 'your_theme_userlogin_callback';
    }
}
function your_theme_userlogin_callback(&$form, &$form_state) {
   $form_state['redirect'] = '$url';//your redirect url path
}
...