$message, 'data' => $data, 'time' => current_time('timestamp'), )); self::save_plugin_error($plugin_id, $errors); } public static function get_plugin_error($plugin_id) { $errors = get_option('berocket_plugin_error_'.$plugin_id); if( ! is_array($errors) ) $errors = array(); return $errors; } public static function save_plugin_error($plugin_id, $errors) { if( count($errors) > 5000 ) { $i = 0; foreach($errors as $error_id => $error) { if($i > 100) break; $i++; unset($errors[$error_id]); } } update_option('berocket_plugin_error_'.$plugin_id, $errors); } public static function get_plugin_error_ajax() { $plugin_id = br_get_value_from_array($_POST, 'plugin_id'); if( empty($plugin_id) ) { $plugin_id = br_get_value_from_array($_GET, 'plugin_id'); } $plugin_id = sanitize_key($plugin_id); $plugin_id = intval($plugin_id); if( ! empty($plugin_id) && ( ! empty($_POST['clear_errors']) || ! empty($_GET['clear_errors']) ) ) { self::clear_plugin_errors($plugin_id); } echo self::get_plugin_error_html($plugin_id); wp_die(); } public static function clear_plugin_errors($plugin_id) { self::save_plugin_error($plugin_id, array()); } public static function get_plugin_error_html($plugin_id) { if( empty($plugin_id) ) { return ''; } $block_id = $plugin_id; $errors = self::get_plugin_error($plugin_id); $errors = array_reverse($errors); $html = '

Error List

'; $html .= '
'; if( count($errors) ) { foreach($errors as $error) { $html .= '

'.date('Y-m-d h:i:s',br_get_value_from_array($error, 'time', current_time('timestamp'))) .''.br_get_value_from_array($error, 'message', 'No error message').'

'; if( ! empty($error['data']) ) { $error_data = print_r($error['data'], true); if( is_array($error['data']) ) { $error_data = substr($error_data, 8); $error_data = substr($error_data, 0, -2); } $html .= '
'.$error_data.'
'; } $html .= '
'; } $html .= ''; } else { $html .= '

Plugin doesn\'t have any errors

'; } $html .= '
'; return $html; } } new BeRocket_error_notices(); }