限制可以上传到产品库的图像数量,错误“文件为空”

时间:2016-10-20 13:32:16

标签: php wordpress woocommerce

我有供应商类别的用户,我想限制可以在没有任何插件的情况下上传到产品库的图像数量。我试过this variant,但它没有帮助我。

add_filter('wp_handle_upload_prefilter', 'limit_wp_handle_upload_prefilter');
function limit_wp_handle_upload_prefilter($file)
{
    global $current_user;
    if (get_post_type() == 'vendor' && in_array('vendor', $current_user->roles)) {
        if ($file['type'] == 'application/octet-stream' && isset($file['tmp_name'])) {
            $file_size = getimagesize($file['tmp_name']);
            if (isset($file_size['error']) && $file_size['error'] != 0) {
                $file['error'] = "Unexpected Error: {$file_size['error']}";
                return $file;
            } else {
                $file['type'] = $file_size['mime'];
            }
        }
        if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
            if (count(get_posts("post_type=attachment&post_parent={$post_id}")) > 4)
                $file['error'] = "Sorry, you cannot upload more than five (5) image.";
        }
        return $file;
    }
}

我收到此错误:

  

文件为空。请上传更实质的内容。此错误也可能是由于php.ini中的上传被禁用或者post_max_size被定义为小于php.ini中的upload_max_filesize而引起的错误

1 个答案:

答案 0 :(得分:0)

我有很多与此错误相关的问题。我认为这是由于与图片管理界面相关的某些权限所致。我解决了使用Role Editor Plugin的问题,并对有此问题的用户角色(即供应商)启用了“ edit_published_posts”(位于核心位置)。希望对您有所帮助。