Description
Filter the feed settings fields (typically before they are rendered on the Feed Settings edit view).
Usage
The base filter which would run for all add-on feeds would be used like so:
add_filter( 'gform_addon_feed_settings_fields', 'your_function_name', 10, 2 );
You can target a specific add-on with the following variation of this hook:
add_filter( 'gform_{ADDON_SLUG}_feed_settings_fields', 'your_function_name', 10, 2 );
See the Gravity Forms Add-On Slugs article for a list of possible slugs.
Parameters
Parameter | Type | Description |
---|---|---|
$feed_settings_fields | array | An array of feed settings fields which will be displayed on the Feed Settings edit view. See the Settings API for further details on the structure of the array. |
$addon | object | The current instance of the GFAddon object which extends GFFeedAddOn or GFPaymentAddOn (i.e. GFCoupons, GF_User_Registration, GFStripe). |
Examples
1. Add a Custom Setting to the First Section of All Feeds
add_filter( 'gform_addon_feed_settings_fields', 'add_custom_addon_setting', 10, 2 );
function add_custom_addon_setting( $feed_settings_fields, $addon ) {
$feed_settings_fields[0]['fields'][] = array(
'name' => 'my_custom_setting',
'label' => 'My Custom Setting',
'type' => 'text'
);
return $feed_settings_fields;
}
2. Add a Custom Setting After the “Send Email” Setting for All User Registration Feeds
This example shows how the add_field_after() helper can be used to add a new setting after a specific existing setting.
add_filter( 'gform_gravityformsuserregistration_feed_settings_fields', function( $feed_settings_fields, $addon ) {
$feed_settings_fields = $addon->add_field_after( 'sendEmail', array(
array(
'name' => 'my_custom_setting',
'label' => 'My Custom Setting',
'type' => 'text'
)
), $feed_settings_fields );
return $feed_settings_fields;
}, 10, 2 );
3. Remove ‘Password’ Setting for User Registration Feeds for a Specific Form
This example shows how the remove_field() helper can be used to remove one of the settings.
add_filter( 'gform_gravityformsuserregistration_feed_settings_fields', function( $feed_settings_fields, $addon ) {
$form = $addon->get_current_form();
if ( $form['id'] == 1 ) {
$feed_settings_fields = $addon->remove_field( 'password', $feed_settings_fields );
}
return $feed_settings_fields;
}, 10, 2 );
4. Add a Custom Setting to Certain Payment Add-Ons
This example shows how an add-on which uses the Add-On Framework, in this example it’s the User Registration Add-On, can add a custom setting to add-ons which extend GFPaymentAddOn and support subscription cancellations.
public function init() {
parent::init();
add_filter( 'gform_addon_feed_settings_fields', array( $this, 'add_subscription_feed_setting' ), 10, 2 );
}
public function add_subscription_feed_setting( $feed_settings_fields, $addon ) {
$addon_supports_subscriptions = $addon instanceof GFPaymentAddOn && $addon->method_is_overridden( 'cancel', 'GFPaymentAddOn' );
if ( $addon_supports_subscriptions ) {
$ur_settings = array(
'title' => esc_html__( 'User Registration Options', 'gravityformsuserregistration' ),
'tooltip' => sprintf(
'<h6>%s</h6> %s',
esc_html__( 'User Registration Options', 'gravityformsuserregistration' ),
esc_html__( 'The selected form also has a User Registration feed. These options allow you to specify how you would like the PayPal and User Registration Add-ons to work together.', 'gravityformuserregistration' )
),
'fields' => array(),
'dependency' => array(
'field' => 'transactionType',
'values' => array( 'subscription' )
),
);
$ur_settings['fields'][] = array(
'name' => 'cancellationActionUser',
'label' => esc_html__( 'Update User on Cancel', 'gravityformsuserregistration' ),
'type' => 'checkbox_and_select',
'checkbox' => array(
'label' => esc_html__( 'Update user when subscription is cancelled.', 'gravityformsuserregistration' )
),
'select' => array(
'choices' => $this->get_update_user_actions_choices()
),
);
$feed_settings_fields = array_merge( $feed_settings_fields, array( $ur_settings ) );
}
return $feed_settings_fields;
}
Further Reading
For more details on adding and removing fields from the settings, see the Helper Functions article.
The Settings API category includes a number of examples showing how you can implement various field types.
Placement
This code can be used in the functions.php file of the active theme, a custom functions plugin, a custom add-on, or with a code snippets plugin.
See also the PHP section in this article: Where Do I Put This Code?
Source Code
This filter is located in GFFeedAddOn::get_feed_settings_fields() in /includes/addons/class-gf-feed-addon.php.
Since
This filter was added in Gravity Forms 2.0.