Limit the number of times a date can be selected

add_filter(‘frm_validate_field_entry’, ‘my_custom_validation’, 10, 3); function my_custom_validation($errors, $posted_field, $posted_value){ if($posted_field->id == 125 and !is_admin()){ //change 125 to the ID of the date field $frmpro_settings = FrmProAppHelper::get_settings(); $selected_date = FrmProAppHelper::convert_date($posted_value, $frmpro_settings->date_format, ‘Y-m-d’); //get all the entries for that date $entries_for_date = FrmEntryMeta::get_entry_metas_for_field(125,…Continue reading

Limit responses for a set time period

add_filter(‘frm_validate_field_entry’, ‘my_custom_validation’, 10, 3); function my_custom_validation($errors, $posted_field, $posted_value){ if($posted_field->id == 25 and !is_admin()){ //change 25 to thema ID of the field to validate global $wpdb; $entry_id = (isset($_POST[‘id’])) ? $_POST[‘id’] : 0; $entries = $wpdb->get_col($wpdb->prepare(“SELECT item_id FROM ” . $wpdb->prefix…Continue reading

Change the value in a field

add_filter(‘frm_validate_field_entry’, ‘copy_my_field’, 10, 3); function copy_my_field($errors, $posted_field, $posted_value){ if ( $posted_field->id == 25 ) { //change 25 to the ID of the field to change $_POST[‘item_meta’][$posted_field->id] = $_POST[‘item_meta’][20]; //Change 20 to the ID of the field to copy } return…Continue reading

Require a minimum number of checked values

add_filter(‘frm_validate_field_entry’, ‘require_minimum_checkbox_number’, 10, 3); function require_minimum_checkbox_number( $errors, $field, $posted_value ){ if ( $field->id == 25 ) { $minimum = 4; if ( ! is_array ( $posted_value ) || ( is_array( $posted_value ) && count( $posted_value ) < $minimum ) )…Continue reading

Conditionally require a field

add_filter( ‘frm_validate_field_entry’, ‘conditionally_require_a_field’, 10, 3 ); function conditionally_require_a_field( $errors, $field, $value ) { if ( $field->id == 25 && trim( $value ) == ” ) { //change 25 to the ID of the field to require $other_field_value = $_POST[‘item_meta’][20]; //Change…Continue reading

Hide a field depending on a value in another

add_filter(‘frm_field_type’, ‘change_my_field_type’, 10, 3); function change_my_field_type($type, $field, $value){ if($field->id == 25){ //change 25 to the id of the field to conditionally hide global $my_required_id, $user_ID; if($my_required_id == $user_ID) //if current user is not an editor $type = ‘hidden’; //hide this…Continue reading

Order options by entry ID

add_filter(‘frm_data_sort’, ‘frm_my_data_sort’, 21, 2); function frm_my_data_sort( $options, $atts ) { if ( $atts[‘dynamic_field’][‘id’] == 100 ) { //change 100 to the ID of the Dynamic field ksort( $options );//sorts options by entry ID } return $options; }Continue reading

Remove duplicates from Dynamic field

add_filter(‘frm_data_sort’, ‘frm_remove_duplicates’, 21, 2); function frm_remove_duplicates( $options, $atts ) { if ( $atts[‘dynamic_field’][‘id’] == 100) { //change 100 to the ID of the Dynamic field $options = array_unique( $options ); } return $options; }Continue reading

Add custom option set

add_filter(‘frm_bulk_field_choices’, ‘add_custom_frm_options’); function add_custom_frm_options( $opts ){ $opts[‘Set Name’] = array(‘Option 1’, ‘Option 2’, ‘Option 3’); return $opts; }Continue reading

Only include categories with no parent

add_filter(‘frm_get_categories’, ‘frm_order_cats’, 10, 2); function frm_order_cats($args, $field){ if($field[‘id’] == 25){ //change 25 to the ID of your field $args[‘parent’] = 0; } return $args; }Continue reading