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

Я установил сайт WP MU и установил плагин на основной сайт MU. Я хочу, чтобы этот плагин включался на всех сайтах и ​​был скрыт от админов сайта, если это возможно. Я хочу, чтобы настройки плагина поступали от супер-сетевого сайта, а не админов сайта. На моей странице плагинов супер администратора я вижу это:

введите описание изображения здесь

Обратите внимание на ссылку Network Activate. Я включил его, но новые сайты не имеют настроек с основного сайта, а подключаемый модуль не скрыт (это не так важно, если оно скрыто или нет).

Solutions Collecting From Web of "Как настроить сетевой плагин по сети только с моими настройками?"

Для активации вашего плагина вам нужно написать несколько строк кода в плагине.

Установка WordPress выполняется из wp-admin / install.php. Мы стремимся к тому, чтобы определенные действия запускались после успешной установки, поэтому хорошее место для вставки нашего кода находится прямо над этим:

<h1><?php _e( 'Success!' ); ?></h1> 

Мы видим блок кода, который начинается с:

 if ( $error === false ) { $wpdb->show_errors(); $result = wp_install($weblog_title, $user_name, $admin_email, $public, '', $admin_password); extract( $result, EXTR_SKIP ); 

Я решил вставить наши действия после последней инструкции extract. Чтобы активировать плагины, я добавил:

 require_once( dirname( dirname( __FILE__ ) ) . '/wp-admin/includes/plugin.php' ); activate_plugin( dirname( dirname( __FILE__ ) ) . '/wp-content/plugins/plugin-dir-name/pluginfile.php' ); 

И для скрытия плагина из списка плагинов:

 /** * Filter the list of plugins according to user_login * * Usage: configure the variable $plugin_credentials, which holds a list of users and their plugins. * To give full access, put a simple string "ALL" * To grant only for some plugins, create an array with the Plugin Slug, * which is the file name without extension (akismet.php, hello.php) * * @return array List of plugins */ function wdm_plugin_permissions( $plugins ) { // Config $plugin_credentials = array( 'admin' => "ALL", 'other-admin' => array( 'akismet', ), 'another-admin' => array( 'akismet', 'hello', ), ); // Current user global $current_user; $username = $current_user->user_login; // Super admin, return everything if ( "ALL" == $plugin_credentials[ $username ] ) return $plugins; // Filter the plugins of the user foreach ( $plugins as $key => $value ) { // Get the file name minus extension $plugin_slug = basename( $key, '.php' ); // If not in the list of allowed plugins, remove from array if( !in_array( $plugin_slug, $plugin_credentials[ $username ] ) ) unset( $plugins[ $key ] ); } return $plugins; } add_filter( 'all_plugins', 'wdm_plugin_permissions' ); 

Вам необходимо изменить код в соответствии с вашими ролями пользователей.

Для кода скрытого плагина вы можете ссылаться на это