public static function load() { add_action('admin_notices', array(__CLASS__, 'admin_notices')); require_once MAINWP_WP_STREAM_INC_DIR . 'connector.php'; $connectors = array('comments', 'editor', 'installer', 'media', 'menus', 'posts', 'users', 'widgets', 'updraftplus', 'backupwordpress'); $classes = array(); foreach ($connectors as $connector) { include_once MAINWP_WP_STREAM_DIR . '/connectors/' . $connector . '.php'; $class = "MainWP_WP_Stream_Connector_{$connector}"; $classes[] = $class; } $exclude_all_connector = false; // Check if logging action is enable for user or provide a hook for plugin to override on specific cases if (!self::is_logging_enabled_for_user()) { $exclude_all_connector = true; } // Check if logging action is enable for ip or provide a hook for plugin to override on specific cases if (!self::is_logging_enabled_for_ip()) { $exclude_all_connector = true; } self::$connectors = apply_filters('mainwp_client_reports_connectors', $classes); foreach (self::$connectors as $connector) { self::$term_labels['stream_connector'][$connector::$name] = $connector::get_label(); } // Get excluded connectors $excluded_connectors = MainWP_WP_Stream_Settings::get_excluded_by_key('connectors'); foreach (self::$connectors as $connector) { // Check if the connectors extends the MainWP_WP_Stream_Connector class, if not skip it if (!is_subclass_of($connector, 'MainWP_WP_Stream_Connector')) { self::$admin_notices[] = sprintf(__("%s class wasn't loaded because it doesn't extends the %s class.", 'mainwp-child-reports'), $connector, 'MainWP_WP_Stream_Connector'); continue; } // Store connector label if (!in_array($connector::$name, self::$term_labels['stream_connector'])) { self::$term_labels['stream_connector'][$connector::$name] = $connector::get_label(); } $is_excluded_connector = apply_filters('mainwp_wp_stream_check_connector_is_excluded', in_array($connector::$name, $excluded_connectors), $connector::$name, $excluded_connectors); if ($is_excluded_connector) { continue; } if (!$exclude_all_connector) { $connector::register(); } // Add new terms to our label lookup array self::$term_labels['stream_action'] = array_merge(self::$term_labels['stream_action'], $connector::get_action_labels()); self::$term_labels['stream_context'] = array_merge(self::$term_labels['stream_context'], $connector::get_context_labels()); } do_action('mainwp_wp_stream_after_connectors_registration', self::$term_labels['stream_connector']); }
public static function log($message, $args, $object_id, $contexts, $user_id = null) { // Prevent inserting Excluded Context & Actions foreach ($contexts as $context => $action) { if (!MainWP_WP_Stream_Connectors::is_logging_enabled('contexts', $context)) { unset($contexts[$context]); } else { if (!MainWP_WP_Stream_Connectors::is_logging_enabled('actions', $action)) { unset($contexts[$context]); } } } if (count($contexts) == 0) { return; } $class = get_called_class(); return MainWP_WP_Stream_Log::get_instance()->log($class::$name, $message, $args, $object_id, $contexts, $user_id); }