Conditionally set quiz field as correct

add_filter( ‘frm_quiz_is_correct’, ‘is_quiz_correct’, 10, 2 ); function is_quiz_correct( $is_correct, $args ) { $target_field_id = 1246; // Change 1246 with your field ID if ( $target_field_id === (int) $args[‘field’]->id && ‘Alternative answer’ === $args[‘value’] ) { // Change the text for…Continue reading

Trigger an action on complete payment

add_action( ‘frm_payment_status_complete’, ‘frm_trigger_action_payment_complete’ ); function frm_trigger_action_payment_complete( $atts ) { $target_action_id = 450; // change 450 to your payment action ID if ( $atts[‘payment’]->status == ‘complete’ && $target_action_id === (int) $atts[‘payment’]->action_id ) { $to = get_option( ‘admin_email’ ); $subject = ‘Payment…Continue reading

Change user role on complete payment

add_action( ‘frm_payment_status_complete’, ‘frm_change_the_role’ ); function frm_change_the_role( $atts ) { $new_role = ‘contributor’; // change contributor to the new user role $entry = isset( $atts[‘entry’] ) ? $atts[‘entry’] : $atts[‘payment’]->item_id; if ( is_numeric( $entry ) ) { $entry = FrmEntry::getOne( $entry…Continue reading

Check for a correct answer

add_filter(‘frm_validate_field_entry’, ‘check_correct_answer’, 10, 3); function check_correct_answer( $errors, $posted_field, $value ) { $target_field_id = 1248; // change 1248 to the ID of the field to check $expected_answer = ‘Answer 1’; // change ‘Answer 1’ with the expected answer if ( $target_field_id…Continue reading

Allow switching from NPS to Text field

add_filter(‘frm_switch_field_types’, ‘frm_switch_nps_to_text_field’, 10, 2); function frm_switch_nps_to_text_field( $field_types, $args ) { if ( ‘nps’ === $args[‘type’] ) { $field_types[‘text’] = $args[‘field_selection’][‘text’]; } return $field_types; }Continue reading

Exclude a specific field from a summary field

add_filter( ‘frm_pro_fields_in_summary_values’, ‘exclude_field_from_summary’, 10, 2 ); function exclude_field_from_summary( $fields, $args ) { $target_form_id = 302; // Replace 302 with ID of your form if ( $target_form_id !== (int) $args[‘form_id’] ) { return $fields; } $field_id_to_remove = 1460; // Replace 1460…Continue reading

Set filename for CSV email attachment

add_filter(‘frm_csv_filename’, ‘change_csv_filename_attachment’, 10, 3); function change_csv_filename_attachment( $filename, $form, $args ) { if ( empty( $args[‘meta’] ) ) { return $filename; } $target_action_id = 158; // change 158 with the email form action ID $meta = $args[‘meta’]; if ( ! empty(…Continue reading

Change entry formatter class for a specific form

add_filter( ‘frm_entry_formatter_class’, ‘change_entry_formatter_class’, 10, 2); function change_entry_formatter_class($formatter_class, $atts) { if ( 10 == $atts[‘form_id’] ) { $formatter_class = ‘YourCustomEntryFormatter’; } return $formatter_class; }Continue reading