目前我有一个使用 Views 和 Drupal Commerce 模块的产品页面,该模块具有产品类别的排序功能(公开过滤器)。带有下拉列表/选择列表的表单有一个 GET 方法,因此类别 ID 会附加到 URL。我的目标是获取附加到 URL 的类别 ID 并将用户重定向到特定的产品页面,而不是仅将类别 ID 附加到 URL 的末尾。
我已经用谷歌搜索了有关此问题的答案,但没有一个有效。所以我所做的是我创建了一个自定义模块来实现 hook_form_alter 模块。我想向表单添加一个自定义提交处理程序,以便在第一次提交表单后,触发另一个提交以便从 URL 检索类别 ID,然后将用户重定向到特定页面。我的模块代码如下。
function custom_form_submit_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'views_exposed_form') {
$form['#submit'][] = 'my_custom_handler_submit';
}
}
function my_custom_handler_submit(&$form, &$form_state) {
if ($_GET['field_categories_tid'] == 13) {
$form_state['redirect'] = '/products/furnitures';
}
}
当我在启用 Devel 模块的情况下执行 kpr($form) 时,第一个函数会返回表单的值。第二个功能似乎根本没有被触发。我已经坚持了几天,经过大量研究后我真的无法弄清楚。我对 Drupal 比较陌生,希望有人能对此有所了解。非常感谢您的帮助!