jared
  • 0
Эксперт

Ограничение количества страниц, которые пользователи могут создавать в пользовательских типах записей

  • 0

Есть ли способ ограничить количество страниц, которые пользователь может создать в пользовательском типе сообщений? Это было бы довольно эффективно для коммерческих плагинов WP, и я делаю один, но столкнулся с небольшой проблемой, и мне нужно выяснить, как это сделать. Спасибо.

Share
  1. Посмотрите мой плагин Bainternet Posts Creation Limits. Этот плагин поможет вам ограничить количество постов/страниц/пользовательских типов постов, которые каждый пользователь может создавать на вашем сайте. Это как раз то, что вам нужно.

    Обновлять

    откройте bapl.php и измените функцию bapl_limit_post_count в строке 44:

    if ( current_user_can('manage_options') ) {}else{ 
                if (isset($postt[$curent_type])){
                    //$postt= bapl_getOptions('bapl');
                    foreach ($postt as $key => $option){
                        if ($key = $curent_type) {
                            $ptname = $key;
                            $limit = $option;
                            break;
                        }
                    }
                    //print_r($postt);
                    $count_posts = count(get_posts(array('author'=>$current_user->ID,'post_type',$ptname)));
    
                    if ($count_posts >= $limit){
                        //wp_die( __('You Can't Create any more pages of this type.') );
                        bapl_not_allowed();
                        exit;
                    }
                }
            }
    

    к:

            if (isset($postt[$curent_type])){
                foreach ($postt as $key => $option){
                    if ($key = $curent_type) {
                        $ptname = $key;
                        $limit = $option;
                        break;
                    }
                }
                $count_posts = count(get_posts(array('author'=>$current_user->ID,'post_type',$ptname)));
    
                if ($count_posts >= $limit){
    
                    bapl_not_allowed();
                    exit;
                }
            }
    

    таким образом, администратор тоже ограничен.

    Далее вам нужно будет изменить функцию bapl_getOptions и установить там значения по умолчанию. И, наконец, вы, вероятно, не захотите удалять панель управления администратора этого плагина, поэтому закомментируйте строку 69, где она говорит:

    add_action('admin_menu', 'bapl_menu');
    
    • 0
    • Превосходно! Я заметил, что он говорит не пробовать это с пользователем-администратором, так как они никогда не ограничены. Есть ли способ переопределить это? Для коммерческого плагина, например моего плагина, у меня будут разные типы лицензий. Лицензия на одно использование позволяет размещать только около 10 сообщений. Лицензия разработчика будет бессрочной. Это всегда будет для администратора.

      • 0
    • Да, вы можете сделать это, и это довольно просто, я посмотрю код, когда вернусь домой, и обновлю свой ответ.

      • 0

Оставить ответ

You must login to add an answer.