// 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()); } }
Translate »
滚动至顶部