如何在使用 wordpress 以自定义表单提交之前获取图像 url 并发送邮件?

Posted

技术标签:

【中文标题】如何在使用 wordpress 以自定义表单提交之前获取图像 url 并发送邮件?【英文标题】:how to get image url and send mail before submiting in custom form using wordpress? 【发布时间】:2017-03-07 01:04:39 【问题描述】:

我在我的 Wordpress 主题中使用自定义表单 这是我的表格

HTML

<form accept-charset = "UTF-8" action = "https://forexmplesecondsite.com/get_form_data" method = "POST" target = "_blank" enctype="multipart/form-data">
    <label for="customer-name"> your name *</label>
    <input type="text" id="customer-name" name="customer-name" />
    <label for="company-name"> your company name *</label>
    <input type="text" id="company-name" name="company-name" />
    <input type="file" name="customer-logo" />
    <input type="submit" value="upload" id="upload-form">
</form>

jQuery

jQuery(document).ready(function ($) 
    $("#upload-form").click(function()
    <?php
    $to = 'mymail@email.com';
    $subject = "my mail subject";
    $message = "please check logo attachment";
    $headers = array(
        ‘From: My Name <myname@example.com>;',
        'BCC: My Other Name <myothername@example.com>;',
    );
    $attachments=$_FILES['customer-logo']['tmp_name'];
    wp_mail( $to, $subject, $message, $headers , $attachments );
    ?>
    );
);

当有人点击提交时,表单重定向到其他网站,我收到了邮件,但我看不到任何附件。

【问题讨论】:

你是 php 新手,我可以看到 :) 您需要处理上传的文件(move_uploaded_file( $tmpname, $target ))并使用$target作为附件 【参考方案1】:

更改$attachments=array($_FILES['customer-logo']['tmp_name']);,如果这不起作用,请将文件保存到目录并改为引用该目录+文件

编辑: 从我所见,您正在尝试在 js 点击事件上触发 php,这是不可能的,最好使用简单的表单或更复杂的 ajax 请求

【讨论】:

我正在尝试这个函数 wp_handle_upload();但我无法理解它的工作原理以及我在代码中的实际使用方式 您阅读文档了吗? 以及如何在提交表单之前保存图像 使用ajax和formData上传文件

以上是关于如何在使用 wordpress 以自定义表单提交之前获取图像 url 并发送邮件?的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 自定义表单在管理面板上提交数据视图?

Wordpress:如何在表单 GET 提交后使用 Rewrite 将 URL 变量添加到 URL

Wordpress 和 Ajax 表单提交

联系表单提交后如何重定向到感谢页面 - Wordpress 高级主题联系我们 php 模板 [关闭]

Wordpress 表单不提交数据

Wordpress以自定义大小插入文章附件链接到自定义大小