gform_campaignmonitor_field_value

Description

This filter can be used to modify a value before it is sent to Campaign Monitor.

Usage

The base filter which would run for all forms and all fields would be used like so:

add_filter( 'gform_campaignmonitor_field_value', 'your_function_name', 10, 4 );

To target a specific form append the form id to the hook name. (format: gform_campaignmonitor_field_value_FORMID)

add_filter( 'gform_campaignmonitor_field_value_10', 'your_function_name', 10, 4 );

To target a specific field append both the form id and the field id to the hook name. (format: gform_campaignmonitor_field_value_FORMID_FIELDID)

add_filter( 'gform_campaignmonitor_field_value_10_3', 'your_function_name', 10, 4 );

Parameters

ParameterTypeDescription
$valuestringThe value to be modified.
$form_idintegerThe ID of the form being processed.
$field_idstringThe ID of the field being processed.
$entryEntry ObjectThe entry currently being processed.

Examples

1. Use GF_Field::get_value_export

This example shows how you can have versions of the Campaign Monitor add-on older than 3.4 use GF_Field::get_value_export() to format the field value for export. Requires a minimum of Gravity Forms 1.9.12.4.

add_filter( 'gform_campaignmonitor_field_value', 'format_entry_value', 10, 4 );
function format_entry_value( $value, $form_id, $field_id, $entry ) {
	$form  = GFAPI::get_form( $form_id );
	$field = GFFormsModel::get_field( $form, $field_id );

	if ( is_object( $field ) ) {
		$value = $field->get_value_export( $entry, $field_id, true );
	}

	return $value;
}

2. Change Signature Value

This example shows how you can send the url of the signature image.

add_filter( 'gform_campaignmonitor_field_value', 'change_signature_value', 10, 4 );
function change_signature_value( $value, $form_id, $field_id, $entry ) {
	$form  = GFAPI::get_form( $form_id );
	$field = GFFormsModel::get_field( $form, $field_id );

	if ( is_object( $field ) && $field->get_input_type() == 'signature' ) {
		$value = RGFormsModel::get_upload_url_root() . 'signatures/' . $value;
	}

	return $value;
}

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

gf_apply_filters( 'gform_campaignmonitor_field_value', array( $form['id'], $field_id ), $field_value, $form['id'], $field_id, $entry );

This filter is located in GFCampaignMonitor::maybe_override_field_value() in class-gf-campaignmonitor.php.

Since

The base filter was added in version 2.5. The form and field specific versions were added in version 3.4.