activity_types = include plugin_dir_path( ATKAI_PLUGIN_FILE ) . '/activities/types.php'; $this->logger = $logger; add_action( 'activated_plugin', array( &$this, 'atk_plugin_activated' ) ); add_action( 'deactivated_plugin', array( &$this, 'atk_plugin_deactivated' ) ); add_action( 'deleted_plugin', array($this, 'atk_plugin_deleted'), 10, 1); add_action('upgrader_process_complete', array($this, 'atk_plugin_update'), 10, 2); } public function atk_plugin_activated( $plugin ) { if ( false !== strpos( $plugin, '/' ) ) { $plugin_dir = explode( '/', $plugin ); $plugin_info = array_values( get_plugins( '/' . $plugin_dir[0] ) ); $plugin_info = array_shift( $plugin_info ); $plugin_name = $plugin_info['Name']; } if(!empty($plugin_name) ) { $this->check_new_plugin( $plugin, $plugin_name ); } $user_id = get_current_user_id(); // Get the current user ID $activity_type = $this->activity_types['plugin']['activation']; $description = 'Plugin activated: '. $plugin_name . ''; $this->logger->insert_log( $user_id, 'Plugin', $activity_type, $description, 'activation' ); } public function atk_plugin_deactivated( $plugin ) { if ( false !== strpos( $plugin, '/' ) ) { $plugin_dir = explode( '/', $plugin ); $plugin_info = array_values( get_plugins( '/' . $plugin_dir[0] ) ); $plugin_info = array_shift( $plugin_info ); $plugin_name = $plugin_info['Name']; } $user_id = get_current_user_id(); // Get the current user ID $activity_type = $this->activity_types['plugin']['deactivation']; $description = 'Plugin deactivated: '. $plugin_name . ''; $this->logger->insert_log( $user_id, 'Plugin', $activity_type, $description, 'deactivation' ); } public function atk_plugin_deleted( $plugin ) { if ( false !== strpos( $plugin, '/' ) ) { $plugin_dir = explode( '/', $plugin ); $plugin_info = array_values( get_plugins( '/' . $plugin_dir[0] ) ); $plugin_info = array_shift( $plugin_info ); $plugin_name = $plugin_info['Name']; } $user_id = get_current_user_id(); // Get the current user ID $activity_type = $this->activity_types['plugin']['deletion']; $description = 'Plugin deleted: '. $plugin_name . ''; $this->logger->insert_log( $user_id, 'Plugin', $activity_type, $description, 'deactivation' ); // Remove from info list $known_plugins = get_option('atk_known_plugins', array()); if (($key = array_search($plugin, $known_plugins)) !== false) { unset($known_plugins[$key]); update_option('atk_known_plugins', $known_plugins); } } private function check_new_plugin($plugin, $plugin_name ) { $known_plugins = get_option('atk_known_plugins', array()); if (!in_array($plugin, $known_plugins)) { // This is a new installation $known_plugins[] = $plugin; update_option('atk_known_plugins', $known_plugins); $user_id = get_current_user_id(); // Get the current user ID $activity_type = $this->activity_types['plugin']['installation']; $description = 'New plugin installed: '. $plugin_name . ''; $this->logger->insert_log( $user_id, 'Plugin', $activity_type, $description, 'deactivation' ); } } public function atk_plugin_update ($upgrader_object, $options) { // Check if it's a plugin update if ($options['action'] == 'update' && $options['type'] == 'plugin') { // Check if our plugin is updated if (isset($options['plugins']) && is_array($options['plugins'])) { foreach ($options['plugins'] as $plugin) { if ($plugin == plugin_basename(__FILE__)) { if ( false !== strpos( $plugin, '/' ) ) { $plugin_dir = explode( '/', $plugin ); $plugin_info = array_values( get_plugins( '/' . $plugin_dir[0] ) ); $plugin_info = array_shift( $plugin_info ); $plugin_name = $plugin_info['Name']; } $user_id = get_current_user_id(); // Get the current user ID $activity_type = $this->activity_types['plugin']['update']; $description = 'Plugin updated: '. $plugin_name . ''; $this->logger->insert_log( $user_id, 'Plugin', $activity_type, $description, 'deactivation' ); } } } } } }