+ wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin );
+ $_wp_plugin_file = $plugin;
+ include_once( WP_PLUGIN_DIR . '/' . $plugin );
+ $plugin = $_wp_plugin_file; // Avoid stomping of the $plugin variable in a plugin.
+
+ if ( ! $silent ) {
+ /**
+ * Fires before a plugin is activated.
+ *
+ * If a plugin is silently activated (such as during an update),
+ * this hook does not fire.
+ *
+ * @since 2.9.0
+ *
+ * @param string $plugin Plugin path to main plugin file with plugin data.
+ * @param bool $network_wide Whether to enable the plugin for all sites in the network
+ * or just the current site. Multisite only. Default is false.
+ */
+ do_action( 'activate_plugin', $plugin, $network_wide );
+
+ /**
+ * Fires as a specific plugin is being activated.
+ *
+ * This hook is the "activation" hook used internally by
+ * {@see register_activation_hook()}. The dynamic portion of the
+ * hook name, `$plugin`, refers to the plugin basename.
+ *
+ * If a plugin is silently activated (such as during an update),
+ * this hook does not fire.
+ *
+ * @since 2.0.0
+ *
+ * @param bool $network_wide Whether to enable the plugin for all sites in the network
+ * or just the current site. Multisite only. Default is false.
+ */
+ do_action( 'activate_' . $plugin, $network_wide );
+ }
+