【问题标题】:add check box to post form to email (using WP MAIL?)添加复选框以将表单发布到电子邮件(使用 WP MAIL?)
【发布时间】:2012-01-23 15:13:05
【问题描述】:

非常感谢您对此提供任何帮助。

我正在创建一个电子贺卡供用户在情人节发送,我想编辑代码,以便我可以包含一个复选框,人们可以勾选该复选框以加入我们的邮件列表。

选中后,我想通过 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;

}

【问题讨论】:

    标签: php wordpress email


    【解决方案1】:

    在您的表单中,添加复选框:

        $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);
     }
    

    应该这样做。

    注意:我没有测试过这段代码,但它应该让你知道如何让它工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2015-02-01
      • 1970-01-01
      • 2011-10-05
      • 2011-08-01
      • 2012-01-19
      相关资源
      最近更新 更多