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'
);
}
}
}
}
}
}