mirror of
https://github.com/inretio/WordPress-Plugin-Boilerplate
synced 2024-12-22 20:03:53 +02:00
Update class-plugin-name.php
Added multisite activation/deactivation functionality.
This commit is contained in:
parent
f9ce10b207
commit
2a2050d7fb
1 changed files with 89 additions and 2 deletions
|
@ -67,6 +67,9 @@ class PluginName {
|
||||||
|
|
||||||
// Load plugin text domain
|
// Load plugin text domain
|
||||||
add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
|
add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
|
||||||
|
|
||||||
|
// Activate plugin when new blog is added
|
||||||
|
add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) );
|
||||||
|
|
||||||
// Add the options page and menu item.
|
// Add the options page and menu item.
|
||||||
// add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) );
|
// add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) );
|
||||||
|
@ -110,7 +113,22 @@ class PluginName {
|
||||||
* @param boolean $network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog.
|
* @param boolean $network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog.
|
||||||
*/
|
*/
|
||||||
public static function activate( $network_wide ) {
|
public static function activate( $network_wide ) {
|
||||||
// TODO: Define activation functionality here
|
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
|
||||||
|
if ( $network_wide ) {
|
||||||
|
// Get all blog ids
|
||||||
|
$blog_ids = self::get_blog_ids();
|
||||||
|
|
||||||
|
foreach ( $blog_ids as $blog_id ) {
|
||||||
|
switch_to_blog( $blog_id );
|
||||||
|
self::single_activate();
|
||||||
|
}
|
||||||
|
restore_current_blog();
|
||||||
|
} else {
|
||||||
|
self::single_activate();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self::single_activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,6 +139,75 @@ class PluginName {
|
||||||
* @param boolean $network_wide True if WPMU superadmin uses "Network Deactivate" action, false if WPMU is disabled or plugin is deactivated on an individual blog.
|
* @param boolean $network_wide True if WPMU superadmin uses "Network Deactivate" action, false if WPMU is disabled or plugin is deactivated on an individual blog.
|
||||||
*/
|
*/
|
||||||
public static function deactivate( $network_wide ) {
|
public static function deactivate( $network_wide ) {
|
||||||
|
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
|
||||||
|
if ( $network_wide ) {
|
||||||
|
// Get all blog ids
|
||||||
|
$blog_ids = self::get_blog_ids();
|
||||||
|
|
||||||
|
foreach ( $blog_ids as $blog_id ) {
|
||||||
|
switch_to_blog( $blog_id );
|
||||||
|
self::single_deactivate();
|
||||||
|
}
|
||||||
|
restore_current_blog();
|
||||||
|
} else {
|
||||||
|
self::single_deactivate();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self::single_deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a new site is activated with a WPMU environment.
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*
|
||||||
|
* @param int $blog_id ID of the new blog.
|
||||||
|
*/
|
||||||
|
public function activate_new_site( $blog_id ) {
|
||||||
|
if ( did_action( 'wpmu_new_blog' ) !== 1 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch_to_blog( $blog_id );
|
||||||
|
self::single_activate();
|
||||||
|
restore_current_blog();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all blog ids of blogs in the current network that are:
|
||||||
|
* - not archived
|
||||||
|
* - not spam
|
||||||
|
* - not deleted
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*
|
||||||
|
* @return array|false The blog ids, false if no matches.
|
||||||
|
*/
|
||||||
|
private static function get_blog_ids() {
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
|
// get an array of blog ids
|
||||||
|
$sql = "SELECT blog_id FROM $wpdb->blogs
|
||||||
|
WHERE archived = '0' AND spam = '0'
|
||||||
|
AND deleted = '0'";
|
||||||
|
return $wpdb->get_col( $sql );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired for each blog when the plugin is activated.
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private static function single_activate() {
|
||||||
|
// TODO: Define activation functionality here
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired for each blog when the plugin is deactivated.
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private static function single_deactivate() {
|
||||||
// TODO: Define deactivation functionality here
|
// TODO: Define deactivation functionality here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,4 +342,4 @@ class PluginName {
|
||||||
// TODO: Define your filter hook callback here
|
// TODO: Define your filter hook callback here
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue