高级自定义提交(ACF)前端表单不发送电子邮件。

时间:2017-03-28 17:15:15

标签: php forms email advanced-custom-fields

我正在使用acf表单向我的网站添加活动。它完美地添加了事件。我在用户提交电子邮件时尝试发送电子邮件。但是邮件没有用。这是我正在使用的代码

    <div class="event_forn_holder">


            <?php acf_form(array(


                'post_id'       => 'new_post',
                'new_post'      => array(
                    'post_type'     => 'events',
                    'post_status'       => 'pending'
                ),

                'html_updated_message'  => '<div id="event_message" class="alert alert-success"><p>Event has been submitted for review. Thanks</p></div>',
                'post_title' => false,
                'uploader' => 'basic',
            'field_groups' => array(3236),
                'submit_value'      => 'Submit Event'
            )); ?> 





            </div>

以下是我在functions.php中使用的代码

add_action('acf/save_post', 'acf_my_save_post');

function acf_my_save_post( $post_id ) {

    // bail early if not a contact_form post
    if( get_post_type($post_id) !== 'events' ) {

        return;

    }


    // bail early if editing in admin
    if( is_admin() ) {

        return;

    } 


    // vars
    $post = get_post( $post_id );


    // get custom fields (field group exists for content_form)
    $name = get_field('event_name', $post_id);
    $email = get_field('your_email', $post_id);


    // email data
    $to = 'mail@yahoo.com';
    $headers = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
    $subject = $post->post_title;
    $body = $post->post_content;


    // send email
    wp_mail($to, $subject, $body, $headers );

}

1 个答案:

答案 0 :(得分:0)

我只是将它与我​​拥有的几乎完全相同的功能进行了比较,除了它确实有效并向我发送电子邮件。我看到的唯一区别是,我的$ body变量以“\ r \ n”开头,然后是内容。

    $body = "\r\n" . $post->post_content;

除此之外,它可能会发送垃圾邮件。或许你有一些其他插件或代码与它发生冲突。