2013-11-16 2 views
0

Я создаю плагин wp, который почти как crm-система.Wordpress - Частная Upload Folder

Я хочу, чтобы зарегистрированные пользователи в бэкэнд Wordpress могли загружать файлы (pdf, doc, png) и прикреплять эти файлы к своим записям клиентов.

Я понимаю, как это сделать с точки зрения базы данных и с точки зрения того, как загружать файлы и т.д.

я хотел бы, чтобы ограничить доступ к файлам в качестве администратора или только пользователь загрузки. Общественный пользователь или другой пользователь не должен иметь доступ к этим загруженным файлам.

Вы бы создали новую папку для загрузки для каждого пользователя в непубличной папке и получили доступ к файлу только через плагин, программно проверяющий учетные данные?

Есть ли известный или лучший способ сделать это?

ответ

1
/* =============================================== 
* RESTRICT - SHOW ONLY OWN ATTACHMENTS 
=================================================*/ 

add_filter('posts_where', 'o99_attachments_wpquery_where'); 

function o99_attachments_wpquery_where($where){ 
    global $current_user; 

    if(is_user_logged_in()){ 
     // we spreken over een ingelogde user 
     if(isset($_POST['action'])){ 
      // library query 
      if($_POST['action'] == 'query-attachments' && !current_user_can('level_10') ){ // o99 add optional user_can. remove if not needed 
       $where .= ' AND post_author='.$current_user->data->ID; 
      } 
     } 
    } 

    return $where; 
} 

Примечание - это пример и должен быть хорошо - настроены в соответствии с вашими потребностями.

Также имейте в виду, что фильтр posts_where очень мощный и он изменяет запрос. используйте с осторожностью и удалите фильтр, если и когда он не нужен.

Смежные вопросы