This article contains PHP code and is intended for developers. We offer this code as a courtesy, but don't provide support for code customizations or 3rd party development.
Modify the options included in a lookup field before they are displayed in the form.
Usage
add_filter( 'frm_filtered_lookup_options', 'change_lookup_options', 10, 2 );
Parameters
- $field (object) : The field the lookup field is using.
- $args (array)
- limit (int): The maximum number of options to include in the lookup field.
Examples
Add extra content to lookup options
This example adds more content around the values shown in a lookup field. It changes the options like '2.1', '2.2' to 'Version 2.1 is updated', 'Version 2.2 is updated'.
add_filter( 'frm_filtered_lookup_options', 'change_lookup_options', 10, 2 );
function change_lookup_options( $options, $args ) {
if ( $args['field']->id == 25 ) { // change 25 to the id of the field in the other form
foreach ( $options as $k => $option ) {
$options[ $k ] = 'Version ' . $option . ' is updated';
}
}
return $options;
}
Display User ID field with display name and ID in Lookup Field
There may be times when you want to use a Lookup field mapped to a User ID field from another form. By default, the User ID is shown rather than the display name. You can show the display name and the user ID as options with this example.
add_filter( 'frm_filtered_lookup_options', 'change_lookup_options', 10, 2 );
function change_lookup_options( $options, $args ) {
if ( $args['field']->id == 808) { // change 808 to the id of the user ID field from the other form
foreach ( $options as $k => $option ) {
$user = get_user_by('id', $option);
$value = $user->display_name;
$options[ $k ] = $value . ' - ID ' . $option;
}
}
return $options;
}
Replace 808 with the User ID field in your other form (the one that the lookup field is mapped to).
Populate with uploaded image path
This example will populate a lookup field with uploaded image path
add_filter( 'frm_filtered_lookup_options', 'change_lookup_options', 10, 2 );
function change_lookup_options( $options, $args ) {
if ( $args['field']->id === '25' ) { // change 25 to the id of the field in the other form
foreach ( $options as $k => $option ) {
$options[ $k ] = wp_get_attachment_url( $option );
}
}
return $options;
}
Show only future dates in a lookup field
Use this code snippet to show only future dates when using a date field in a lookup.
add_filter( 'frm_filtered_lookup_options', 'show_future_date', 10, 2 );
function show_future_date( $options, $args ) {
if ( $args['field']->id == 20116 ) { // change 20116 to the ID of the date field in the other form
foreach ( $options as $k => $option ) {
$theday=new DateTime($option);
$today= new DateTime("now");
if($theday < $today) {
unset($options[$k]);
}
}
//rsort($options); // Uncomment this to sort the dates by Latest date.
}
return $options;
}
Show image in Lookup list type
Use this code example to show images in a List type Lookup field.
add_filter( 'frm_filtered_lookup_options', 'show_lookup_image', 10, 2 );
function show_lookup_image( $options, $args ) {
if ( $args['field']->id === '20' ) { // Replace 20 with the ID of the field in the other form
foreach ( $options as $k => $option ) {
$options[$k]= "<img src='".wp_get_attachment_url( $option )."'>";
}
}
return $options;
}
Change the return format for date and time in lookup field
add_filter( 'frm_filtered_lookup_options', 'format_date_display', 10, 2 );
function format_date_display( $options, $args ) {
if ( $args['field']->id == 31427 ) { // change 31427 to the ID of the date field in the other form
foreach ( $options as $k => $option ) {
$option =new DateTime($option);
$options[$k]= date_format($option,"m/d/Y");;
}
}
return $options;
}
add_filter( 'frm_filtered_lookup_options', 'format_time_display', 10, 2 );
function format_time_display( $options, $args ) {
if ( $args['field']->id == 31428 ) { // change 31428 to the ID of the time field in the other form
foreach ( $options as $k => $option ) {
$options[$k]= date("h:i a",strtotime($option));
}
}
return $options;
}