【问题标题】:PHP form sends multiple emails after submissionPHP表单提交后发送多封电子邮件
【发布时间】:2017-09-26 05:10:39
【问题描述】:

所以我为我的 wordpress 网站创建了一个 PHP 表单,因为 Contact form 7 太重并且大大降低了它的速度。

但我在一页上的多个“项目”上有相同的联系表,因此该联系表在一页上使用了不止一次。因此,当发件人根据页面上的项目数量单击提交时,表单将发送相同数量的电子邮件...

现在联系表格 7 不会在您提交时执行此操作,它只会向我发送一封电子邮件。所以有一种方法可以做到,我只是不知道,因为我是 PHP 新手。

任何帮助都会很棒。这是我的发送表单代码,但如果您需要其他任何内容,请告诉我。加油伙计们:

// Sending form to admin
    if ($error == false) {
        // Hook to support plugin Contact Form DB
        //do_action( 'name_before_send_mail', $form_data );
        $to = $name_atts['email_to'];

        if ($name_atts['hide_subject'] != "true") {
            $subject = "(".get_bloginfo('name').") " . $form_data['form_subject'];
        } else {
            $subject = get_bloginfo('name');
        }
        $message = $form_data['form_name'] . "\r\n\r\n" . $form_data['form_email'] . "\r\n\r\n" . $form_data['form_message'] . "\r\n\r\n" . sprintf( esc_attr__( 'IP: %s' ), name_get_the_ip() ); 
        $headers = "Content-Type: text/plain; charset=UTF-8" . "\r\n";
        $headers .= "Content-Transfer-Encoding: 8bit" . "\r\n";
        $headers .= "From: ".$form_data['form_name']." <".$form_data['form_email'].">" . "\r\n";
        $headers .= "Reply-To: <".$form_data['form_email'].">" . "\r\n";

        if(wp_mail($to, $subject, $message, $headers) == true) { 
            $result = $name_atts['message_success'];
            $sent = true;
        } else {
            $result = $name_atts['message_error'];
            $fail = true;
        }       
    }

【问题讨论】:

  • 您是否通过 javascript onClick 按钮提交表单?它将一次提交所有表单(想象一下“Form1”、“Form1”和“Form1”)以及每个表单的电子邮件。您需要将每个表单重命名为不同的,以便发送 Form1 不会发送 Form2。
  • 这是我的提交按钮 不涉及JS

标签: php html wordpress forms web


【解决方案1】:

有一个钩子wpcf7_before_send_mail,您可以使用它来检查发布的数据,然后发送需要的邮件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-28
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    相关资源
    最近更新 更多