Reverse entry order in a repeater

add_filter(‘frmpro_fields_replace_shortcodes’, ‘reverse_entry_order_repeater’, 10, 4); function reverse_entry_order_repeater( $value, $tag, $atts, $field ) { if ( ! empty( $atts[‘foreach_entry_order’] ) && ‘desc’ === $atts[‘foreach_entry_order’] ) { arsort( $value ); } return $value; }Continue reading

Filter payment method

add_filter(‘frm_stripe_payment_method_types’, ‘filter_stripe_payment_method’, 10, 2); function filter_stripe_payment_method( $payment_method_types, $args ) { $map = array( 75 => array( ‘affirm’ ), 76 => array( ‘card’, ‘link’, ‘klarna’ ), ); $form_id = $args[‘form_id’]; if ( isset( $map[ $form_id ] ) ) { $payment_method_types =…Continue reading

Generate slug for the View detail page

add_filter(‘frm_validate_entry’, ‘key_as_slug’, 20, 2); function key_as_slug($errors, $values){ if ( $values[‘form_id’] == 40) { //Change 40 to the ID of your form $string = $_POST[‘item_meta’][21]; //change 21 to the ID of the first field (i.e. the business name field) $count =…Continue reading

Customize downloaded PDF filename to match post title

add_filter(‘frm_pdfs_export_file_name’, ‘use_post_title_for_pdf_filename’ , 10, 2); function use_post_title_for_pdf_filename( $file_name, $args ) { $target_form_id = 23; //Change 23 to the ID of the form. if ( $target_form_id !== (int) $args[‘entry’]->form_id ) { return $file_name; } $post_id = $args[‘entry’]->post_id; if ( ! $post_id…Continue reading

Add custom attribute to the modal button

add_filter(‘frm_modal_link’, ‘add_attr_modal_btn’, 10, 2); function add_attr_modal_btn( $link, $atts ) { $link = str_replace( ‘data-bs-toggle’, ‘data-custom-attr=”value” data-bs-toggle’, $link ); return $link; }Continue reading

Prevent redirect action when updating entry

add_filter(‘frm_success_filter’, ‘prevent_redirect_action’ , 10, 2); function prevent_redirect_action( $type, $form, $action ) { if ( $form->id != 5 || ‘update’ != $action ) { return $type; } if ( ‘redirect’ == $type ) { return ‘message’; } if ( is_array( $type…Continue reading

Apply a view for the attached PDF

add_filter( ‘frm_pdfs_email_attachment_args’, ‘add_view_to_attached_pdf’, 10, 2 ); function add_view_to_attached_pdf( $pdf_args, $args ) { $pdf_args[‘view’] = 10; // ID of view. $pdf_args[‘id’] = $args[‘entry’]->id; // Do this to show the detail view, otherwise, it shows the listing view. return $pdf_args; }Continue reading

Change the attached PDF file name

add_filter( ‘frm_pdfs_email_attachment_args’, ‘change_attached_pdf_file_name’, 10, 2 ); function change_attached_pdf_file_name( $pdf_args, $args ) { $pdf_args[‘filename’] = ‘stuff’; return $pdf_args; }Continue reading

Wrap all grid items inside a custom wrapper

add_filter( ‘frm_display_inner_content_before_add_wrapper’, ‘grid_view_custom_wrapper’, 10, 3 ); function grid_view_custom_wrapper( $inner_content, $view, $args ) { if ( ! empty( $args[‘is_grid_view’] ) ) { $inner_content = ‘<div class=”frm_grid_container”>’ . $inner_content . ‘</div>’; } return $inner_content; }Continue reading

Use custom font for specific entries

add_filter(‘frm_pdfs_css’, ‘custom_font_pdfs_css_entry’ ,10, 2); function custom_font_pdfs_css_entry( $css, $args ) { if ( empty( $args[‘id’] ) ) { // Check for entry ID. return $css; } if ( is_secondary_language_view( $args[‘id’] ) ) { return $css; } $custom_css = ‘body { font-family:…Continue reading