Поддержка Плагины Создание рубрики для пользователя при регистрации

  • Решено skiv

    (@skiv)


    Здравствуйте! Возникла необходимость создания категории для пользователя (при регистрации), в которой в последующем мог бы создавать записи.
    Есть такой плагин Symbiosis. Подходит и работает хорошо: он создает рубрики для каждого пользователя с его именем.

    Подскажите, пожалуйста, возможно ли его подправить, чтобы он создавал категории, определенной в настройке wordpress «Основная рубрика»? Заранее большое спасибо)))

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Автор skiv

    (@skiv)

    не совсем он правда хорошо работает: не позволяет админу публиковать посты в других категориях((

    Автор skiv

    (@skiv)

    Справился с частью задачи: исправил плагин, чтобы он создавал рубрику с именем пользователя после регистрации в рубрике по умолчанию, установленную в настройках wordpress.
    Осталась одна проблема с правами: никак не хочет изменять рубрику под админом у уже написанных постов или же создаваемых — упорно ставит их в «админскую» рубрику, созданную плагином.
    ЕСли кто может помочь, буду рад, или в какую сторону там смотреть? Заранее большое спасибо.

    P. S. Думаю, что там нужно куда-то вставить такое:
    get_usermeta($user_id, 'user_level') < 8
    Вот куда))))

    Автор skiv

    (@skiv)

    Получилось «отделить» админа: теперь ему можно писать в любую категорию, а то плагин не позволял этого делать))))))
    Осталось скрыть некоторые панельки при написании поста от простых пользователей (например, категории)

    Если кому понадобится.
    Переписал одноименную функцию в плагине так:

    function symbiosis_post_save($input) {
      global $user_level;
    
      $home = get_usermeta($_POST['post_author'], 'symbiosis_category');
      $output = array();
    
      if ( $user_level < 8 ) {
    	  $output[] = $home;
      } else {
      foreach($input as $item) {
          $output[] = $item;
      }
      }
      return $output;
    }

    и еще подправил одну функцию, чтобы брал рубрику, указанную по умолчанию в wordpress для публикации записей:

    function symbiosis_update_term($user_id, $taxonomy, $user_name = null) {
      $current = get_usermeta($user_id, 'symbiosis_'. $taxonomy);
      $data['name'] = $user_name;
      $data['parent'] = get_option('default_category');
      if(!empty($current)) {
        if(is_null($user_name)) {
          wp_delete_term($current, $taxonomy);
        }
        else {
          wp_update_term($current, $taxonomy, $data);
        }
      }
      elseif(!is_null($user_name)) {
        $exists = get_term_by('name', $user_name, $taxonomy);
        if(!empty($exists)) {
          $new['term_id'] = $exists->term_id;
        }
        else {
          $new = wp_insert_term($user_name, $taxonomy, $data);
        }
        update_usermeta($user_id, 'symbiosis_'. $taxonomy, $new['term_id']);
        update_usermeta($user_id, 'symbiosis_default', $new['term_id']);
      }
    }

    плагин работает у меня. потестировал. правда еще не выложил на рабочий сайт 🙂

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Спасибо, что поделились.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Создание рубрики для пользователя при регистрации» закрыта для новых ответов.