<?php /** * Module Name: No Plugin Installation * Description: Disabled the plugin installation from repository * Main Module: plugins_themes * Author: SecuPress * Version: 1.1 */ defined( 'SECUPRESS_VERSION' ) or die( 'Something went wrong.' ); if ( is_admin() ) { add_action( 'admin_print_styles-plugins.php', 'secupress_no_plugin_install_tab_css' ); /** * Hide the "Add new plugin" link next to the page title. * * @since 1.0 */ function secupress_no_plugin_install_tab_css() { ?><style>h1 a.page-title-action,h2 a.add-new-h2{display:none}</style><?php } add_action( 'load-plugin-install.php', 'secupress_no_plugin_install_page_redirect' ); /** * Forbid access to the plugin installation page. * * @since 1.0 */ function secupress_no_plugin_install_page_redirect() { if ( ! isset( $_GET['tab'] ) || 'plugin-information' !== $_GET['tab'] ) { secupress_die( __( 'You do not have sufficient permissions to install plugins on this site.', 'secupress' ), '', array( 'force_die' => true ) ); } } add_action( 'check_admin_referer', 'secupress_avoid_install_plugin' ); /** * Forbid plugin installation. * * @since 1.0 * * @param (string) $action The nonce action. */ function secupress_avoid_install_plugin( $action ) { if ( 'plugin-upload' === $action || strpos( $action, 'install-plugin_' ) === 0 ) { secupress_die( __( 'You do not have sufficient permissions to install plugins on this site.', 'secupress' ), '', array( 'force_die' => true ) ); } } add_action( 'admin_menu', 'secupress_remove_new_plugins_link', 100 ); /** * Remove the "Add new plugin" item from the admin menu. * * @since 1.0 */ function secupress_remove_new_plugins_link() { global $submenu; unset( $submenu['plugins.php'][10] ); } } if ( isset( $_FILES['pluginzip'] ) ) { secupress_die( __( 'You do not have sufficient permissions to install plugins on this site.', 'secupress' ), '', array( 'force_die' => true ) ); }