Dynamically change the URL users are redirected to if more control is needed than the basic conditional statements allow, i.e. http://[if 25 equals="Option 1"]site-a.com[/if 25][if 25 equals="Option 2"]site-b.com[/if 25][if 25 equals="Option 3"]site-c.com[/if 25].
Usage
add_filter('frm_redirect_url', 'return_page', 9, 3);
Parameters
- $url (string)
- $form (object)
- $params (array that includes $param['action'] for update vs create differentiation)
Examples
Basic example
add_filter('frm_redirect_url', 'return_page', 9, 3);
function return_page($url, $form, $params){
if($form->id == 5){ //change 5 to the ID of the form to redirect
$field_id = 125; //change 125 the the ID of the radio or dropdown field
if($_POST['item_meta'][$field_id] == 'Option 1') {
$url = 'http://example.com/redirect-here';
} else if($_POST['item_meta'][$field_id] == 'Option 2') {
$url = 'http://example.com/redirect-here';
} else {
$url = 'http://example.com/redirect-here'; //if neither Option 1 or Option2 are selected, redirect to this URL
}
}
return $url;
}
More advanced example
add_filter('frm_redirect_url', 'return_page', 9, 3);
function return_page($url, $form, $params){
if($form->id == 5){ //change 5 to the ID of the form to redirect
$field_id = 25; //change 25 the the ID of the radio or dropdown field
if($_POST['item_meta'][$field_id] == 'A'){
if($_POST['item_meta'][26] == 'Option 1'){ //change 26 to the id of second field
$url = 'http://example.com/redirect-here';
}else if($_POST['item_meta'][26] == 'Option 2'){
$url = 'http://example.com/redirect-here';
}else{
$url = 'http://example.com/redirect-here';
}
}else if($_POST['item_meta'][$field_id] == 'B'){
$url = 'http://example.com/redirect-here';
}else if($_POST['item_meta'][$field_id] == 'C'){
$url = 'http://example.com/redirect-here';
}
}
return $url;
}
Change URL when updating
Use this code to change the redirect URL when an entry is being updated.
add_filter('frm_redirect_url', 'return_page', 9, 3);
function return_page($url, $form, $params){
if(!isset($params['action'])){
$params['action'] = FrmAppHelper::get_param('frm_action');
}
if($form->id == 5 and $params['action'] == 'update'){ //change 5 to the id of your form
$url = 'http://example.com/redirect-page';
}
return $url;
}
If you would like to add your own example, click here.
Have something to add?
Click here to provide feedback on this page.