'; echo'
'; if(!empty($page_speed['mobile'])){ self::score_graph($page_speed, 'mobile'); echo '
' . esc_html__('Audits', 'siteseo-pro') . '
' . esc_html__('Opportunities', 'siteseo-pro') . '
' . esc_html__('Diagnostics', 'siteseo-pro') . '
'; self::audit_tabs($page_speed, 'mobile'); } echo'
'; echo'
'; if(!empty($page_speed['desktop'])){ self::score_graph($page_speed, 'desktop'); echo '
' . esc_html__('Audits', 'siteseo-pro') . '
' . esc_html__('Opportunities', 'siteseo-pro') . '
' . esc_html__('Diagnostics', 'siteseo-pro') . '
'; self::audit_tabs($page_speed, 'desktop'); } echo'
'; } static function score_graph(&$page_speed, $device){ // Score show for mobile $score = isset($page_speed[$device]['score']) ? $page_speed[$device]['score'] : null; $pagespeed_score = $score * 100; $pagespeed_color = self::set_status_color($pagespeed_score); echo '
' . esc_html($pagespeed_score) . '%
'; echo '
Good   Warning   Errors
'; if(!empty($page_speed['mobile']['fetchTime'])){ $fetch_time = $page_speed['mobile']['fetchTime']; $fetch_date = date_i18n(get_option('date_format'), strtotime($fetch_time)); $fetch_time = date('H:i', strtotime($fetch_time)); echo '
' . esc_html__('Captured at ', 'siteseo-pro') . esc_html($fetch_date) . ', ' . esc_html($fetch_time) . ' UTC
'; } } static function audit_tabs(&$page_speed, $device){ echo '
'; foreach($page_speed[$device] as $key => $audit){ if(isset($audit['title'])){ $get_icons_audit = self::set_dash_icons($audit['score']); $title_icon_audit = $get_icons_audit['title']; $description_icon_audit = $get_icons_audit['description']; echo '
'; echo '
'; echo $title_icon_audit . esc_html($audit['title']) . '
'; if(isset($audit['description'])){ echo '

'; echo $description_icon_audit . wp_kses_post(self::description_handle_with_url($audit['description'])) . '
'; } echo '
'; } } echo '
'; echo ''; echo ''; } static function set_status_color($score){ if($score >= 0 && $score < 49){ $status_color = '#ff0000;'; } elseif($score >= 50 && $score < 90){ $status_color = '#ffA500'; } elseif($score >= 90 && $score <= 100){ $status_color = '#008000'; } else{ $status_color = 'grey'; } return $status_color; } static function set_dash_icons($title_score){ $dashicons_title = ''; $dashicons_desc = ''; if($title_score > 0.90){ $title_icon = ''; $desc_icon = ''; } else if($title_score >= 0.50 && $title_score <= 0.89){ $title_icon = ''; $desc_icon = ''; } else{ $title_icon = ''; $desc_icon = ''; } return ['title' => $title_icon, 'description' => $desc_icon]; } static function description_handle_with_url($description){ preg_match('/\((https?.*)\)/', trim($description), $matches); if(empty($matches[0]) || empty($matches[1])){ return $description; } $url = $matches[1]; $description = str_replace($matches[0], '', $description); $description = preg_replace_callback('/\[(.*?)\]/', function($matches) use ($url){ return '' . esc_html($matches[1]) . ''; }, $description); return $description; } }