Skip to main content
Version: 4


Jump To Section


This filter can be used to add new fields to the Appearance settings tab for individual PDFs. It's basically a Fields API and all validation, sanitising and saving is handled automatically for you.


$fields | array : An associative array that includes a breakdown of the field information. We go into more detail about what each field configuration setting does in our custom PDF configuration guide.


The following sample shows you how to add two new fields to the Appearance tab of the contextual PDF settings pages:

add_filter( 'gfpdf_form_settings_appearance', function( $fields ) {

* Ensure you prefix the array key and ID to prevent any conflicts

/* Add a colour picker to the General PDF Settings page */
$fields['prefix_border_colour'] = array(
'id' => 'prefix_border_colour',
'name' => __('Field Border Colour', 'prefix-text-domain' ),
'type' => 'color',
'desc' => __('Control the colour of the field border.', 'prefix-text-domain' ),
'std' => '#CCCCCC'

/* Add a Radio button to the General PDF Settings page */
$fields['prefix_my_custom_radio'] = array(
'id' => 'prefix_my_custom_radio',
'name' => 'My Custom Radio',
'desc' => 'This is my field description',
'type' => 'radio',
'options' => array(
'Yes' => __( 'Yes', 'prefix-text-domain' ),
'No' => __( 'No', 'prefix-text-domain' ),
'std' => __( 'No', 'prefix-text-domain' ),

return $fields;
} );

The following snippet shows you how to change the label of an existing field:

add_filter( 'gfpdf_form_settings_appearance', function( $fields ) {

if ( isset( $fields['pdf_size'] ) ) {
$fields['pdf_size']['name'] = __( 'Page Size', 'prefix-text-domain' );

return $fields;
} );

Source Code

This filter is located in the Helper_Options_Fields::get_registered_fields() method of /src/helper/Helper_Options_Fields.php.