发布产品后删除图片附件

时间:2019-01-16 14:41:48

标签: php woocommerce

我正在使用Amazon S3存储我的产品图像。这意味着在产品发布时,无需将它们保留在我的WordPress服务器上。 在我用来自动上传图片(以及用于imgix)的Media Cloud插件中,该设置可以在上传后立即删除图片。

由于必须在图像和产品元数据上执行某些映射作业,因此我必须将其关闭。完成映射和发布后,图像文件可能会被删除。

我已经使用以下代码尝试过:

$post_id = get_the_ID();
$post_thumbnail_id = get_post_thumbnail_id( $post_id );
wp_delete_file($post_thumbnail_id);

,但是它不起作用。有一个500白屏。该怎么办...?

1 个答案:

答案 0 :(得分:0)

我通过使用以下代码来完成这项工作:

// Delete the file from WordPress server after processing.
      $filename_only = wp_basename( get_attached_file( $post_thumbnail_id ) );
      $upload_dir = wp_upload_dir();
      $dir = $upload_dir['basedir'] .'/'. date('Y') . '/' . date ('m');
      $file = $dir . '/' . $filename_only;


      if ( ! empty ($file)){
       chdir($dir);
       unlink($filename_only);

      }

我先获取了文件名和上传目录。然后,我检查了目录中是否存在该文件,如果存在,则将工作目录更改为本地上载目录并删除该文件。