The gform_mailchimp_subscription Gravity Forms PHP filter allows you to modify the Mailchimp subscription object before it is executed.
Usage
add_filter( 'gform_mailchimp_subscription', 'my_function', 10, 6 );
Parameters
- $subscription (array): Subscription arguments. See the Mailchimp API documentation for a full list of supported properties.
- $list_id (string): Mailchimp list ID.
- $form (array): The form object.
- $entry (array): The entry object.
- $feed (array): The feed object.
- $member (array): The existing member object. False if the member does not currently exist in Mailchimp.
More information
See Gravity Forms Docs: gform_mailchimp_subscription
Examples
If a subscriber already exists, set them as subscribed
This will avoid the double opt-in for existing members.
add_filter( 'gform_mailchimp_subscription', 'update_existing', 10, 6 ); function update_existing( $subscription, $list_id, $form, $entry, $feed, $member ) { if ( $member ) { $subscription['status'] = 'subscribed'; } return $subscription; }
Set the signup timestamp
add_filter( 'gform_mailchimp_subscription', function( $subscription, $list_id, $form, $entry, $feed, $member ) { if ( ! $member ) { $subscription['timestamp_signup'] = date( DATE_ATOM ); } return $subscription; }, 10, 6 );
Set the Subscriber language
The following example uses the ICL_LANGUAGE_CODE constant provided by the WPML plugin to set the subscriber language.
add_filter( 'gform_mailchimp_subscription', 'gf_set_subscriber_language' ); function gf_set_subscriber_language( $subscription ) { // Use the language code provided by WPML to set the subscriber language. if ( defined( 'ICL_LANGUAGE_CODE' ) ) { $subscription['language'] = ICL_LANGUAGE_CODE; } return $subscription; }
Change email_type to text from the default HTML
add_filter( 'gform_mailchimp_subscription', function( $subscription, $list_id, $form, $entry, $feed, $member ) { // this will force all subscriptions to text format $subscription['email_type'] = 'text'; return $subscription; }, 10, 6 );