将文件上载到Uploads文件夹时向自定义用户角色发送电子邮件通知

时间:2017-10-17 作者:R1ddler

我已经编写了一个自定义php,允许我的模板页面中的用户从前端上传新创建的子文件夹中的文件user_login 作为其名称uploads 文件夹因此,将上载根文件夹,并在用户的子文件夹中存储所有文件。这是我的密码。

<form enctype="multipart/form-data" action="" method="POST" class="centered">   

<p></p>

<p>
Select a document to upload
</p>

<?php 


$user = wp_get_current_user();

$dirname = $user->user_login;

$upload_dir   = wp_upload_dir();
// creates a user subdir for the files
if ( isset( $current_user->user_login ) && ! empty( $upload_dir[\'basedir\'] ) ) {
    $user_dirname = $upload_dir[\'basedir\'].\'/\'.$current_user->user_login;
        if ( ! file_exists( $user_dirname ) ) {
        wp_mkdir_p( $user_dirname );
    }
}


if(isset($_FILES[\'document\'])){

$errors = array();

$document = $_FILES[\'document\'][\'name\'];
$file_tmp = $_FILES[\'document\'][\'tmp_name\'];

if(empty($errors)==true){
         move_uploaded_file($file_tmp,"/$user_dirname/".$document);
         echo "The file was uploaded successfully!";
      }else{
         print_r($errors);
      }

}

?>


<input type="file" name="document" class="centered" value="">
<p></p>
<input type="submit" value="Upload Document" name="submit">

</form>
正如你所看到的,我没有使用任何WP功能,因为我不是很有经验,但我想创建一个action (我相信这是一个正确的词)它在每次文件上传到uploads文件夹时都会发送电子邮件通知。我需要使用什么钩子和/或以什么方式修改代码才能使用wordpress操作?

我发现了这个动作publish_post 这提供了一个创建帖子时如何发送电子邮件的示例。然而,我的代码不会创建帖子,而且在我有一个批处理程序进行上传的情况下,它也不会工作。上传文件时是否有触发我可以使用的操作?

我的背景是Laravel,所以我仍在学习WP的工作方式,主要使用PHP,但对WP功能的使用有限。

1 个回复
最合适的回答,由SO网友:Sneha Agarwal 整理而成

您可以使用wp\\u邮件功能https://developer.wordpress.org/reference/functions/wp_mail/ 在文件成功上载到您的目录后,向任何人发送电子邮件。您不需要在此处执行任何操作

成功上载文件后将其添加到您的代码中

if(empty($errors)==true){
         move_uploaded_file($file_tmp,"/$user_dirname/".$document);
         echo "The file was uploaded successfully!";
         wp_mail(..);
      }else{
         print_r($errors);
      }

}

结束

相关推荐

将文件直接上传到媒体库wp-Content\\Uploads

我想使用自动过程复制\\wp content\\uploads\\中的非WordPress文件夹,并在媒体库中自动注册文件。我可以使用这样一个过程来上传文件,然后使用Add From Server注册它们(http://wordpress.org/plugins/add-from-server/) 或FTP中的类似介质。但这似乎是过度的人力投入。LR/博客(http://www.photographers-toolbox.com/products/lrblog.php) 似乎能够保存到WP并同时注册文件。