добавить флажок для отправки формы на электронную почту (используя WP MAIL?) - PullRequest
0 голосов
/ 23 января 2012

Я ДЕЙСТВИТЕЛЬНО был бы признателен за любую помощь в этом.

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

Когда установлен этот флажок, я хотел бы отправить форму на указанный адрес электронной почты через Wordpress, поскольку используемый мной плагин использует эту систему. Я включил код ниже:

Извините, что так много кода, но я не хочу пропустить что-либо

// email settings
$ecard_title = get_option('ecard_title');
$ecard_body_intro = get_option('ecard_body_intro');
$ecard_body_additional = get_option('ecard_body_additional');
$ecard_body_footer = get_option('ecard_body_footer');

if(isset($_POST['ecard_send'])) {
    if(get_option('ecard_captcha_display') == '1') {
        if($_POST['ecard_robot'] == 'spa') {
            $subject            = $ecard_title;
            $ecard_to           = $_POST['ecard_to'];
            $ecard_from         = $_POST['ecard_from'];
            $ecard_email_from   = $_POST['ecard_email_from'];
            $ecard_mail_from    = $_POST['ecard_email_from'];
            $ecard_mail_message = stripslashes($_POST['ecard_message']);

            $ecard_message  = '';
            $ecard_message  .= '<p>'.$ecard_body_intro.' <strong>'.$ecard_from.'</strong> ('.$ecard_email_from.')!</p>';
            $ecard_message  .= '<p>'.$ecard_mail_message.'</p>';
            $ecard_message  .= '<p>'.ecards_thumbcatcher($ecard_width, $ecard_title).'</p>';
            $ecard_message  .= '<p>'.$ecard_body_additional.'</p>';
            $ecard_message  .= '<p>'.$ecard_body_footer.' '.'<a href="'.get_permalink().'">'.get_permalink().'</a></p>';

            // send email using WordPress function
            $headers = 
                "MIME-Version: 1.0\n".
                "From: ".$ecard_email_from."\n".
                "Content-Type: text/html; charset=\"".get_settings('blog_charset')."\"\n";

            $mail = wp_mail($ecard_to, $subject, $ecard_message, $headers);

            if($mail) {
                echo '<p><strong>'.__('eCard sent successfully!', 'ecards').'</strong></p>';
                update_option('ecard_counter', ($ecard_counter + 1));
            }
            else
                echo '<p><strong>'.__('eCard was not sent!', 'ecards').'</strong></p>';
        }
        else {
            echo '<p><strong>'.__('Wrong verification code!', 'ecards').'</strong></p>';
        }
    }
    else {
        $subject            = $ecard_title;
        $ecard_to           = $_POST['ecard_to'];
        $ecard_from         = $_POST['ecard_from'];
        $ecard_email_from   = $_POST['ecard_email_from'];
        $ecard_mail_message = stripslashes($_POST['ecard_message']);

        $ecard_message  = '';
        $ecard_message  .= '<p>'.$ecard_body_intro.' <strong>'.$ecard_from.'</strong> ('.$ecard_email_from.')!</p>';
        $ecard_message  .= '<p>'.$ecard_mail_message.'</p>';
        $ecard_message  .= '<p>'.ecards_thumbcatcher($ecard_width, $ecard_title).'</p>';
        $ecard_message  .= '<p>'.$ecard_body_additional.'</p>';
        $ecard_message  .= '<p>'.$ecard_body_footer.' '.'<a href="'.get_permalink().'">'.get_permalink().'</a></p>';

        // send email using WordPress function
        $headers = 
            "MIME-Version: 1.0\n".
            "From: ".$ecard_email_from."\n".
            "Content-Type: text/html; charset=\"".get_settings('blog_charset')."\"\n";

        $mail = wp_mail($ecard_to, $subject, $ecard_message, $headers);

        if($mail) {
            echo '<p><strong>'.__('eCard sent successfully!', 'ecards').'</strong></p>';
            update_option('ecard_counter', ($ecard_counter + 1));
        }
        else
            echo '<p><strong>'.__('eCard was not sent!', 'ecards').'</strong></p>';
    }
}

$output = '';

$output .= '<div class="ecard-container">';
    $output .= '<h3 id="cta">'.get_option('ecard_cta').'</h3>';
    $output .= '<form action="#" method="post">';
        $output .= '<p><input type="text" name="ecard_from" size="30" /> '.__('Your name', 'ecards').'</p>';
        $output .= '<p><input type="text" name="ecard_email_from" size="30" /> '.__('Your email address', 'ecards').'</p>';
        $output .= '<p><input type="text" name="ecard_to" size="30" /> '.__('Your friend email address', 'ecards').'</p>';
        $output .= '<p>'.__('eCard message', 'ecards').'<br /><textarea name="ecard_message" rows="6" cols="60"></textarea></p>';

        if(get_option('ecard_captcha_display') == '1') {
            $output .= '<p>'.__('Type the first 3 letters of <strong>spam</strong>', 'ecards').' <input name="ecard_robot" type="text" /></p>';
        }

        $output .= '<hr />';
        $output .= '<p><input type="submit" name="ecard_send" value="'.__('Send eCard Now!', 'ecards').'" /></p>';
    $output .= '</form>';
$output .= '</div>';

return $output;

}

1 Ответ

0 голосов
/ 23 января 2012

В вашей форме добавьте флажок:

    $output .= '<p><input type="checkbox" name="mailing_list" value="1">'.__('Join our mailing list', 'ecards').'</p>';

В коде обработки, сразу над строкой комментария "// отправить письмо с помощью функции WordPress", добавьте следующее:

 // send mailing list request to administrator
 if ($_POST['mailing_list'] == '1') { 
     $mailinglist_subject = "Mailing List Request from " . $ecard_from;
     $mailinglist_body = $ecard_from . " has requested to be added to the mailing list.\n\nTheir e-mail address is: " . $ecard_email_from;
     wp_mail("mailinglistrequests@mysite.com", $mailinglist_subject, $mailinglist_body);
 }

Это должно сделать это.

ПРИМЕЧАНИЕ: Я не тестировал этот код, но он должен дать вам представление о том, как заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...