Use a custom class for the success message

add_filter( ‘frm_main_feedback’, ‘frm_custom_feedback_class’, 20, 3 ); function frm_custom_feedback_class( $message, $form, $entry_id ) { if ( $form->id == 125 ) { //Replace with the ID of your form $message = str_replace(‘frm_message’, ‘my_custom_class’, $message ); } return $message; }Continue reading

Show a message when trying to edit

add_action(‘frm_display_form_action’, ‘close_my_form’, 20, 3); function redirect_edit_form( $params, $fields, $form ) { global $frm_vars; $edit_attempt = isset( $_GET[‘entry’] ); $editing_entry = isset( $frm_vars[‘editing_entry’] ) ? $frm_vars[‘editing_entry’] : 0; if ( $edit_attempt && ! $editing_entry ) { echo ‘You do not have…Continue reading

Populate a field with categories

add_filter(‘frm_setup_new_fields_vars’, ‘frm_populate_categories’, 20, 2); add_filter(‘frm_setup_edit_fields_vars’, ‘frm_populate_categories’, 20, 2); function frm_populate_categories( $values, $field ) { if ( $field->id == 125 ) { //replace 125 with the ID of the field to populate // Adjust your category aruments as needed $category_args =…Continue reading

Auto populate multiple rows in a repeater

add_filter(‘frm_setup_new_fields_vars’, ‘frm_auto_populate_repeating_fields’, 20, 2); function frm_auto_populate_repeating_fields( $values, $field ) { if ( $field->id == 24094 ) {//Replace with the ID of your field if ( ! isset( $_POST[‘item_meta’][ $field->id ] ) ) { $first_field = 123; $second_field = 124; $values[…Continue reading

Set the minimum date for second repeating date field

add_action(‘frm_date_field_js’, ‘start_and_end_dates_repeating’, 10, 2); function start_and_end_dates_repeating($field_id, $options){ $days_between = 0;// Change 0 to the number of days that should be between the start and end dates $field_one = ‘field_pickup‘;// Change pickup to the KEY of the first date field $field_two…Continue reading

Move description

add_filter(‘frm_custom_html’, ‘frm_move_field_description’, 20, 2); function frm_move_field_description( $default_html, $field_type ) { $start_description = ‘[if description]’; $end_description = ‘[/if description]’; $description_start_pos = strpos( $default_html, $start_description ); $description_end_pos = strpos( $default_html, $end_description ); if ( $description_start_pos === false || $description_end_pos === false )…Continue reading

Round robin assignments

add_filter( ‘frm_validate_field_entry’, ‘frm_set_value_based_on_order’, 15, 3 ); function frm_set_value_based_on_order( $errors, $posted_field, $posted_value ) { if ( $posted_field->id == 175 ) { //change 175 to the ID of your group name field $group_id = $_POST[‘item_meta’][174] % 2;//change 174 to your auto_id field…Continue reading

Replace ampersand character reference

add_filter( ‘frm_email_value’, ‘frm_replace_ampersand’, 15, 3); function frm_replace_ampersand( $value, $meta, $entry ){ if ( $meta->field_id == 25 ) { //change 25 to the ID of your field $value = str_replace(“&”,”&”,$value); } return $value; }Continue reading

Store uploaded file URL in custom field

add_filter( ‘frm_new_post’, ‘create_a_custom_field’, 10, 2 ); function create_a_custom_field( $post, $args ) { $field_id = 25; // change 25 to the id of the file upload field if ( isset( $_POST[‘item_meta’][ $field_id ] ) ) { $field_value = sanitize_text_field( $_POST[‘item_meta’][ $field_id…Continue reading