Justik99
@Justik99
Изучаю WordPress путем поломок своей психики!

Как ограничить количество сайтов на WordPress мультисайт?

Добрый день.
Вопрос такой. Есть сетка сайтов на WordPress Мультисайты. Хотелось бы узнать, как можно ограничить количество создаваемых сайтов в этой сетке?
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
Доброго времени суток.
Если открыть файл wp-admin\network\site-new.php, то можно проследить как идет обработка:
Разработчики напрямую проверяют акшн и передачу данных без каких-либо крючков
if ( isset( $_REQUEST['action'] ) && 'add-site' === $_REQUEST['action'] ) {

после условия идет проверка check_admin_referer
т.е. мы можем приконектиться к этой проверки и запретить создание
Примеры

// 1
add_action('check_admin_referer',function($action){
	$blog_count=get_blog_count();
	if(is_network_admin()&&isset($_REQUEST['action'])&&'add-site'===$_REQUEST['action']&&$blog_count==2){
		wp_die(__('Достигнут лимит','VAB'));
	}});

// 2
$blog_count=get_blog_count();
if(is_network_admin()&&isset($_REQUEST['action'])&&'add-site'===$_REQUEST['action']&&$blog_count==2){
    add_action('check_admin_referer',function($action){
        // if('add-blog'!==$action){return;}
        wp_die(__('Достигнут лимит','VAB'));
    });}

// ... другие аналоги



Варианты так себе:
Помимо в конце файла есть do_action( 'network_site_new_form' ); перед выводом в разметке кнопки для создания и далее подключаются стили и скрипты. Можно воспользоваться add_action('network_site_new_form' и остановить все, что после
Пример

копки для создания не будет, а так же не подключится футер
require_once ABSPATH . 'wp-admin/admin-footer.php';


сам вариант собственно:
add_action('network_site_new_form','action_function_name_6729');
function action_function_name_6729(){
	$blog_count=get_blog_count();
	if($blog_count==2){exit();}
}


ну и как вариант мы можем полностью заглушить страницу через admin_print_scripts-site-new.php
правда создан акшн для подключения скриптов
Пример

add_action("admin_print_scripts-site-new.php",'my_admin_scripts');
function my_admin_scripts(){
  $blog_count=get_blog_count();
  if($blog_count==2){
		exit('<center><strong style="font-size:33px;">'.__('Достигнут лимит создания поддоменов','VAB').'</strong></center>');}}



может, кто ещё добавить варианты...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы