CF7 отправка писем каждому получателю по отдельности

С помощью этого скрипта вы сможете заставить CF7 для определенной формы отправлять письма для каждого получателя по отдельности а не одно письмо для всех.

add_action('wpcf7_before_send_mail', function ($contact_form) {
 
    $submission = WPCF7_Submission::get_instance();
 
    $id = $contact_form->id; //получаем id формы
    $mail = $contact_form->prop( 'mail' );
    $recipient = explode( ',', $mail['recipient']);
 
    //используем данный хук только для определенной формы 
    if($id == 10155) {
        if ($recipient) {
            if (is_array($recipient)) {
                foreach ($recipient as $email) {
                    $r = array();
                    $p = array();
                    $data = $submission->get_posted_data();
                    if (is_array($data)) {
                        foreach ($data as $k => $v) {
                            $r[] = '[' . $k . ']';
                            $p[] = $v;
                        }
                    }
 
                    $body = str_replace($r, $p, $mail['body']);
                    wp_mail( $email, $mail['subject'], $body, 'From: '.$mail['sender'] );
                }
 
                //чтобы cf7 завершил выполнения своей работы отправляем письмо на выдуманый email
                $mail['recipient'] = 'robot@test.com';
                $contact_form->set_properties(array('mail' => $mail));
            }
        }
    }
});