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.
This filter allows changing the Entry formatter class to change how the entry is displayed.
Usage
add_filter( 'frm_entry_formatter_class', 'change_entry_formatter_class', 10, 2);
Parameters
- $formatter_class (string): Entry formatter class name.
- $atts (array): See FrmEntriesController::show_entry_shortcode() for more details.
Examples
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;
}
Add custom formatter class for email
This code adds a custom entry formatter class and allows you to override specific entry formatting functions. It’s treated like a plain_text result but uses a custom behavior for displaying the add_plain_text_row. Use [default-message format="custom"] in your email message to display the message with <br/> for line breaks and a . after the label. This example changes the formatter so it will show like:
Field Label.
Answer
Field Label 2.
Answer 2
add_filter( 'frm_entry_formatter_class', 'use_custom_formatter_class', 10, 2 );
function use_custom_formatter_class( $class, $atts ) {
if ( 'custom' === $atts['format'] ) {
return 'CustomEntryFormatter';
}
return $class;
}
class CustomEntryFormatter extends FrmEntryFormatter {
public function __construct( $atts ) {
parent::__construct( $atts );
$this->format = 'plain_text_block';
}
protected function add_plain_text_row( $label, $display_value, &$content ) {
$display_value = $this->prepare_display_value_for_plain_text_content( $display_value );
$content .= wp_kses_post( $label . '.<br/>' . $display_value ) . '<br>';
}
}