Доброго времени суток.
Если открыть файл 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>');}}
может, кто ещё добавить варианты...