1

多くの人にメールを送信できるプラグインを使用していますx。「名前」と「メールアドレス」を入力するだけです。これらのエントリはそれぞれfriend_name[0]&という名前friend_email[0]です。入力フィールドを追加および削除するための+&ボタンがあります。-の数値は、$keyフィールドの数に対して増減します。$keysエントリーフォームの変更を確認しました。

フォームが送信され、ループを介して処理されると、電子メールはすべて送信されますが、最後に入力された電子メールにのみ送信されます。したがって、5 つの名前と 5 つの電子メールを入力すると、次のデータが送信されます。

名前: John Doe 1 電子メール: JohnDoe5@gmail.com

名前: John Doe 2 電子メール: JohnDoe5@gmail.com

名前: John Doe 3 電子メール: JohnDoe5@gmail.com

名前: John Doe 4 電子メール: JohnDoe5@gmail.com

名前: John Doe 5 電子メール: JohnDoe5@gmail.com

ループは次のとおりです。

function invfr_sendmail() {
$post = ( !empty( $_POST ) ) ? true : false;

if( $post ) {
    $subject = invfr_get_settings( 'subject' );
    $message = invfr_get_settings( 'message' );
    $friends = $_POST['friend_email'];
    $headers = "From:" . $_POST['user_name'] . " <" . $_POST['user_email']. ">" . "\r\n";
    $errors = array();
    foreach ( $friends as $key => $friend ) {
        $name = stripslashes( $_POST['friend_name'][$key] );
        $email = trim( $_POST['friend_email'][$key] );

        // Check name
        if( !$name )
            $errors[] = '#friend_name-' . $key;

        if( !$email )
            $errors[] = '#friend_email-' . $key;

        if( $email && !is_email( $email ) )
            $errors[] = '#friend_email-' . $key;
    }

    // send email 
    if( !$errors ) {
        foreach ( $friends as $key => $friend )
            $mail = wp_mail( $email, invfr_tokens_replacement( $subject, $_POST, $key ), invfr_tokens_replacement( $message, $_POST, $key ), invfr_tokens_replacement( $headers, $_POST, $key ) );
        if( $mail )
            echo 'sent';
    }
4

1 に答える 1