// Put this in functions.php or a small plugin file
add_action(‘wpforms_process_complete’, ‘bbb_wpforms_after_submit’, 10, 4);
function bbb_wpforms_after_submit($fields, $entry, $form_data, $entry_id){
// Replace with your form ID if you want to limit
$target_form_id = 123; // <- set your WPForms ID
if( intval($form_data['id']) !== $target_form_id ) return;// Parse fields - adjust field names exactly as in form config
$data = array();
foreach($fields as $f){
if(!empty($f['name'])) $data[$f['name']] = sanitize_text_field($f['value']);
}$email = isset($data['email']) ? $data['email'] : (isset($data['Email']) ? $data['Email'] : '');
$name = isset($data['name']) ? $data['name'] : (isset($data['Name']) ? $data['Name'] : '');
$phone = isset($data['phone']) ? $data['phone'] : (isset($data['Phone']) ? $data['Phone'] : '');
$leader = isset($data['leader']) ? $data['leader'] : '';// Mailchimp server-side subscription example (replace placeholders)
$mc_api_key = get_option('bbb_mailchimp_api_key'); // save via wp-admin or update_option
$mc_list_id = get_option('bbb_mailchimp_list_id'); // save list id in optionsif(!$mc_api_key || !$mc_list_id) return; // not configured// Mailchimp requires datacenter from API key suffix e.g. us20
list($key, $dc) = explode('-', $mc_api_key);
$dc = $dc ?: 'us1';
$url = "https://{$dc}.api.mailchimp.com/3.0/lists/{$mc_list_id}/members/";$body = array(
'email_address' => $email,
‘status’ => ‘subscribed’,
‘merge_fields’ => array(‘FNAME’ => $name, ‘PHONE’ => $phone, ‘LEADER’ => $leader)
);$args = array(
‘body’ => json_encode($body),
‘headers’ => array(
‘Authorization’ => ‘Basic ‘ . base64_encode(‘user:’ . $mc_api_key),
‘Content-Type’ => ‘application/json’
),
‘timeout’ => 15
);$response = wp_remote_post($url, $args);// Optional: log or handle errors
if(is_wp_error($response)){
error_log(‘Mailchimp error: ‘ . $response->get_message());
}
}