Changeset 3194918
- Timestamp:
- 11/22/2024 12:06:24 PM (15 months ago)
- Location:
- upkepr-maintenance/trunk
- Files:
-
- 6 edited
-
adminpage.php (modified) (3 diffs)
-
css/enchancestyle.css (modified) (6 diffs)
-
css/style.css (modified) (1 diff)
-
js/upkepr_script.js (modified) (12 diffs)
-
upkepr_vulnerability.php (modified) (20 diffs)
-
vulnerability.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
upkepr-maintenance/trunk/adminpage.php
r3132746 r3194918 34 34 </div> 35 35 </header> 36 <?php if (!empty($isConnected)) : ?> 37 <!-- <div class="container"> 38 <div class="upkepr-nav-pluginInfo"> 39 <h2 id="profile-nav" class="nav-tab-wrapper main-upkepr-ulactiv"> 40 <a class="upkep-nav-main-section-tab nav-tab <? //= ($tabSection == 'apikey') ? 'nav-tab-active' : '' 41 ?>" href="<? //= menu_page_url('upkepr-Maintenance', false) . '§ion=apikey' 42 ?>">Key Details</a> 43 <a class="upkep-nav-main-section-tab nav-tab <? //= ($tabSection == 'vulnerabilities') ? 'nav-tab-active' : '' 44 ?>" href="<? //= menu_page_url('upkepr-Maintenance', false) . '§ion=vulnerabilities&sub-section=all' 45 ?>">Vulnerabilities</a> 46 </h2> 47 </div> 48 </div> --> 49 <?php endif; ?> 50 <?php if (isset($isConnected) && !empty($isConnected)) : 51 $subsection = 'all'; 52 $pluginVulnebility = get_option('upkpr_vulnerability_all'); 53 ?> 54 55 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 56 57 <div class="vulnerability_section"> 58 <?= UPKPRRenderVulnerabiliy(strtolower('all'), $pluginVulnebility) ?> 59 </div> 60 <?php endif; ?> 61 <? //php if ($tabSection == 'apikey') : 62 ?> 63 <section class="wordpress-pulgin-welcome" id="upkr-formsection"> 64 <div class="container"> 65 <div class="cstm-card pulgin-welcome-banner"> 66 <div class="pulgin-welcome-banner-text"> 67 <h2 class="plugin-heading">Configure Key with <span class="highlight">Upkepr!</span></h2> 68 <p> 69 Upkepr is a suite of security-focused tools designed by WordPress experts to safeguard your WordPress site while enhancing performance and growth. 70 <br> 71 </p> 72 73 <form action="<?php echo esc_html($upkepr_admin_page); ?>" method="post"> 74 <div class=""> 75 <?php if ($tabSection == 'apikey') : ?> 76 77 <div class="key-configration-input-copy"> 78 <div class="key-configration-input"> 79 80 <input type="text" id="upkepr_maintainance_validationkey" value="<?php if (isset($_upkepr_maintainance_validationkey)) { 81 echo esc_html($_upkepr_maintainance_validationkey); 82 } ?>" readonly> 83 <i alt="upkepr" onclick="UPKPR_copykey()" class="fa-solid fa-copy"></i> 36 <div class="upker-summry-outer"> 37 <div class="sticky-links"> 38 <div class="upkepr-side-links scan-summry-left"> 39 <div class="scan-summry-header"> 40 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/health-report-icon.png" alt="site-logo 2"> 41 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Scan summary</h2> 42 </div> 43 <ul class="vulnerabiliti-side-link"> 44 <?php if (!empty($isConnected)) : ?> 45 <li class="nav-link active"><a href="javascript:void(0)" onclick="scrollToSection('.health-report-banner-header',this)" data-class="health-report-banner-header"><i 46 class="fa-solid fa-angles-right "></i> Vulnerabilities Summary</a> 47 </li> 48 <li class="nav-link"> 49 <a href="javascript:void(0)" 50 onclick="scrollToSection('.connection-page-table',this)" data-class="connection-page-table"><i class="fa-solid fa-angles-right "></i> 51 Detailed Vulnerabilities</a> 52 </li> 53 <li class="nav-link"> 54 <a href="javascript:void(0)" onclick="scrollToSection('.website-health-report',this)" data-class="website-health-report"><i 55 class="fa-solid fa-angles-right "></i> Website health report</a> 56 </li> 57 <li class="nav-link"> 58 <ul> 59 <li class="nav-link"> 60 <a href="javascript:void(0)" onclick="scrollToSectionSub('.scan-summry-main', '#scans-summry-tab1',this)" data-class="scan-summry-main-perfromance"> 61 Performance/Speed detail</a> 62 </li> 63 <li class="nav-link"><a href="javascript:void(0)" onclick="scrollToSectionSub('.scan-summry-main', '#scans-summry-tab2',this)" data-class="scan-summry-main-seo"> SEO</a></li> 64 </ul> 65 </li> 66 <?php endif; ?> 67 <li class="nav-link <?php if (empty($isConnected)) { 68 echo "active"; 69 } ?>"><a href="javascript:void(0)" 70 onclick="scrollToSection('.wordpress-pulgin-welcome',this)" data-class="wordpress-pulgin-welcome"><i 71 class="fa-solid fa-angles-right "></i> Configuration with UpKepr</a> 72 </li> 73 74 <li class="nav-link"><a href="javascript:void(0)" onclick="scrollToSection('.plan-and-connection',this)" data-class="plan-and-connection"><i 75 class="fa-solid fa-angles-right "></i> UpKepr Plan & Connection Status</a> 76 </li> 77 </ul> 78 </div> 79 </div> 80 <div class="right-side-summry"> 81 82 <?php if (!empty($isConnected)) : ?> 83 84 <?php endif; ?> 85 86 <?php if (isset($isConnected) && !empty($isConnected)) : 87 $subsection = 'all'; 88 $pluginVulnebility = get_option('upkpr_vulnerability_all'); 89 ?> 90 91 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 92 93 <div class="vulnerability_section"> 94 <?= UPKPRRenderVulnerabiliy(strtolower('all'), $pluginVulnebility) ?> 95 </div> 96 <?php endif; ?> 97 <? //php if ($tabSection == 'apikey') : 98 ?> 99 <section class="section wordpress-pulgin-welcome" <?php if (empty($isConnected)) { ?> style="margin-top: 0px;" <?php } ?> id="upkr-formsection"> 100 <div class="container"> 101 <div class="cstm-card pulgin-welcome-banner"> 102 <div class="pulgin-welcome-banner-text"> 103 <h2 class="plugin-heading">Configure Key with <span class="highlight">UpKepr!</span></h2> 104 <p> 105 UpKepr is a suite of security-focused tools designed by WordPress experts to safeguard your WordPress site while enhancing performance and growth. 106 <br> 107 </p> 108 109 <form action="<?php echo esc_html($upkepr_admin_page); ?>" method="post"> 110 <div class=""> 111 <?php if ($tabSection == 'apikey') : ?> 112 113 <div class="key-configration-input-copy"> 114 <div class="key-configration-input"> 115 116 <input type="text" id="upkepr_maintainance_validationkey" value="<?php if (isset($_upkepr_maintainance_validationkey)) { 117 echo esc_html($_upkepr_maintainance_validationkey); 118 } ?>" readonly> 119 <i alt="upkepr" onclick="UPKPR_copykey()" class="fa-solid fa-copy"></i> 120 </div> 121 </div> 122 <?php endif; ?> 123 <div class="health-report-banner-header"> 124 <div class="health-report-header-right"> 125 <?php if (empty($isConnected)) : ?> 126 <a href="javascript:void(0);" onclick="UPKPR_check_user('check',this)" class="primary-btn click-to-complete"> Click to complete setup </a> 127 <?php else : ?> 128 <!-- <a href="javascript:void(0);" onclick="UPKPR_check_connection('all',this)" class="primary-btn scan-now"> Scan Now </a> --> 129 <?php endif; ?> 130 <?php if ($tabSection == 'apikey') : ?> 131 <a href="#popup1" class="primary-btn " class="usButton">Regenerate</a> 132 <?php endif; ?> 133 </div> 84 134 </div> 85 135 </div> 86 <?php endif; ?> 87 <div class="health-report-banner-header"> 88 <div class="health-report-header-right"> 89 <?php if (empty($isConnected)) : ?> 90 <a href="javascript:void(0);" onclick="UPKPR_check_user('check',this)" class="primary-btn click-to-complete"> Click to complete setup </a> 91 <?php else : ?> 92 <!-- <a href="javascript:void(0);" onclick="UPKPR_check_connection('all',this)" class="primary-btn scan-now"> Scan Now </a> --> 93 <?php endif; ?> 94 <?php if ($tabSection == 'apikey') : ?> 95 <a href="#popup1" class="primary-btn " class="usButton">Regenerate</a> 96 <?php endif; ?> 136 <div id="popup1" class="overlay"> 137 <div class="popup signup-more-details-popup"> 138 <a class="close" href="#upkr-formsection">×</a> 139 <div class="signUpPopupPage"> 140 <h2>IMPORTANT <span class="highlight">ALERT</span></h2> 141 <p> Regenerating the key will render old key as invalid. If you have already used the old key in UpKepr, you 142 have to update new key in UpKepr.</p> 143 <?php wp_nonce_field("cwebcoupkeper_key_cstm", "cwebcoupkeper_key_cstm_field"); ?> 144 <input type="submit" name="cwebco_updatekey" class="usButton primary-btn" value="Yes, I am aware Update the Key"> 145 </div> 146 </div> 147 148 </div> 149 150 </form> 151 </div> 152 153 <div class="pulgin-welcome-banner-text"> 154 <h2 class="plugin-heading">How to Configure <span class="highlight">UpKepr</span></h2> 155 <ul class="how-configure-list"> 156 <li><strong>Add Your Website:</strong> Log in to UpKepr and add your WordPress website.</li> 157 <li><strong>Configure Connection:</strong> 158 <ul class="how-configure-inner-list"> 159 <li>Go to the WordPress CMS section in UpKepr.</li> 160 <li>Enter the key name and your WordPress admin username.</li> 161 </ul> 162 </li> 163 <li><strong>Connect:</strong> This will connect your UpKepr account with your WordPress site.</li> 164 <li><strong>Scan for Updates:</strong> Press the scan button in UpKepr inside the wordpress to fetch the latest information from your site.</li> 165 </ul> 166 </div> 167 </div> 168 </div> 169 </section> 170 <? //php endif; 171 ?> 172 173 <?php if ($tabSection == 'apikey') : 174 // Key details 175 ?> 176 177 <?php elseif ($tabSection == 'vulnerabilities') : ?> 178 <p class="upkpr-success " style=" text-align: center; font-size: 15px; color: #6f746f;display: none;"></p> 179 <p class="upkpr-errors errors error" style=" text-align: center; font-size: 15px;display: none;"></p> 180 <?php 181 if ($subsection == 'core') : 182 $coreVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 183 ?> 184 <div class="vulnerability_section"> 185 <?= UPKPRRenderVulnerabiliy(strtolower('core'), $coreVulnebility) ?> 186 </div> 187 188 <?php elseif ($subsection == 'theme') : 189 $themeVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 190 191 ?> 192 193 <!-- <a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('theme',this)"> Refresh Data </a> --> 194 <div class="vulnerability_section"> 195 <?= UPKPRRenderVulnerabiliy(strtolower('theme'), $themeVulnebility) ?> 196 </div> 197 198 <?php elseif ($subsection == 'plugin') : 199 $pluginVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 200 ?> 201 202 203 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 204 <div class="vulnerability_section"> 205 <?= UPKPRRenderVulnerabiliy(strtolower('plugin'), $pluginVulnebility) ?> 206 </div> 207 208 <?php elseif ($subsection == 'all') : 209 $pluginVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 210 ?> 211 212 213 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 214 <div class="vulnerability_section"> 215 <?= UPKPRRenderVulnerabiliy(strtolower('all'), $pluginVulnebility) ?> 216 </div> 217 <?php else : ?> 218 <p>Status 404, Page not found.</p> 219 <?php endif; ?> 220 221 <?php endif; ?> 222 223 <section class="section plan-and-connection"> 224 <div class="container"> 225 <div class="row justify-content-between"> 226 <div class="col-md-6"> 227 <div class="plan-connetion-inner plans-inner"> 228 <?php $plandetails = !empty($isConnected) ? json_decode($isConnected) : '' ?> 229 <h2 class="plugin-heading">Your plans</span></h2> 230 231 <?php if (isset($plandetails->plan) && $plandetails->plan != 'upgraded') : ?> 232 <p>Currently you are on FREE Plan, Power up your plan for more features</p> 233 <?php elseif (isset($plandetails->plan) && $plandetails->plan == 'upgraded') : ?> 234 <p>Currently you are on <?= $plandetails->plan_name ?> paid plan.</p> 235 <?php else : ?> 236 <p>Want to power up your UpKepr?</p> 237 <?php endif; ?> 238 239 <div class="b-tns"> 240 <a href="https://app.upkepr.com/checkpayment" target="_blank" class="bg-btn">View Plan</a> 97 241 </div> 98 242 </div> 99 243 </div> 100 <div id="popup1" class="overlay"> 101 <div class="popup signup-more-details-popup"> 102 <a class="close" href="#upkr-formsection">×</a> 103 <div class="signUpPopupPage"> 104 <h2>IMPORTANT <span class="highlight">ALERT</span></h2> 105 <p> Regenerating the key will render old key as invalid. If you have already used the old key in upkepr, you 106 have to update new key in Upkepr.</p> 107 <?php wp_nonce_field("cwebcoupkeper_key_cstm", "cwebcoupkeper_key_cstm_field"); ?> 108 <input type="submit" name="cwebco_updatekey" class="usButton primary-btn" value="Yes, I am aware Update the Key"> 244 <div class="col-md-6"> 245 <div class="plan-connetion-inner Connection-inner"> 246 <div class="site-connected-heading"> 247 <h2 class="plugin-heading">Connection status</h2> 248 <div class="site-connected"> 249 </div> 250 </div> 251 <p>Here is the quick overview of Wordpress Website with UpKepr.</p> 252 <div class="b-tns"> 253 <!-- <a href="#" class="bg-btn">Learn More</a> --> 254 <?php if (empty($isConnected)) : ?> 255 <a href="javascript:void(0);" onclick="UPKPR_check_user('check',this)" class="upkprConnect brdr-btn">Connect</a> 256 <?php endif; ?> 257 </div> 258 <div class="connect-list-outer upkepr-keyRemainStatus"> 259 <?php if (!empty($isConnected)) : 260 $responseData = json_decode($isConnected); 261 ?> 262 <div class="list"> 263 <span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span> 264 <p>Site is added on upkepr</p> 265 </div> 266 <div class="list"> 267 <span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span> 268 <p>Key is connected </p> 269 </div> 270 <div class="list"> 271 <span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span> 272 <p>Last scan on <?= date('d F, Y H:i:s', strtotime($responseData->created_at)); ?></p> 273 </div> 274 <?php else: ?> 275 <span class="upkprLoadListToCheckConnected" style="display: none;"> 276 277 </span> 278 <?php endif; ?> 279 </div> 280 <div class="connect-list-outer upkepr-keyStatus" style="display: none;"> 281 <span class="upkprLoadListToCheckConnected"> 282 283 </span> 109 284 </div> 110 285 </div> 111 112 286 </div> 113 114 </form> 115 </div> 116 117 <div class="pulgin-welcome-banner-text"> 118 <h2 class="plugin-heading">How to Configure <span class="highlight">Upkepr</span></h2> 119 <ul class="how-configure-list"> 120 <li><strong>Add Your Website:</strong> Log in to Upkepr and add your WordPress website.</li> 121 <li><strong>Configure Connection:</strong> 122 <ul class="how-configure-inner-list"> 123 <li>Go to the WordPress CMS section in Upkepr.</li> 124 <li>Enter the key name and your WordPress admin username.</li> 125 </ul> 126 </li> 127 <li><strong>Connect:</strong> This will connect your Upkepr account with your WordPress site.</li> 128 <li><strong>Scan for Updates:</strong> Press the scan button in Upkepr inside the wordpress to fetch the latest information from your site.</li> 129 </ul> 130 </div> 131 </div> 132 </div> 133 </section> 134 <? //php endif; 135 ?> 136 137 <?php if ($tabSection == 'apikey') : 138 // Key details 139 ?> 140 141 <?php elseif ($tabSection == 'vulnerabilities') : ?> 142 <!-- sub-section --> 143 144 <!-- <h2 id="profile-nav" class="nav-tab-wrapper upkepr-subnav-section"> 145 <a class="nav-tab upkepr-sub-nav-tab <? //= ($subsection == 'core') ? 'nav-tab-active' : '' 146 ?>" href="<//?= menu_page_url('upkepr-Maintenance', false) . '§ion=vulnerabilities&sub-section=core' ?>" style="padding-left:0px">Core Vulnerabilities</a> 147 <a class="nav-tab upkepr-sub-nav-tab <? //= ($subsection == 'plugin') ? 'nav-tab-active' : '' 148 ?>" href="<? //= menu_page_url('upkepr-Maintenance', false) . '§ion=vulnerabilities&sub-section=plugin' 149 ?>">Plugin Vulnerabilities</a> 150 <a class="nav-tab upkepr-sub-nav-tab <? //= ($subsection == 'theme') ? 'nav-tab-active' : '' 151 ?>" href="<? //= menu_page_url('upkepr-Maintenance', false) . '§ion=vulnerabilities&sub-section=theme' 152 ?>">Theme Vulnerabilities </a> 153 <a class="nav-tab upkepr-sub-nav-tab <? //= ($subsection == 'all') ? 'nav-tab-active' : '' 154 ?>" href="<? //= menu_page_url('upkepr-Maintenance', false) . '§ion=vulnerabilities&sub-section=all' 155 ?>">All Vulnerabilities </a> 156 </h2> --> 157 <p class="upkpr-success " style=" text-align: center; font-size: 15px; color: #6f746f;display: none;"></p> 158 <p class="upkpr-errors errors error" style=" text-align: center; font-size: 15px;display: none;"></p> 159 <?php 160 if ($subsection == 'core') : 161 $coreVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 162 ?> 163 <div class="vulnerability_section"> 164 <?= UPKPRRenderVulnerabiliy(strtolower('core'), $coreVulnebility) ?> 165 </div> 166 167 <?php elseif ($subsection == 'theme') : 168 $themeVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 169 170 ?> 171 172 <!-- <a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('theme',this)"> Refresh Data </a> --> 173 <div class="vulnerability_section"> 174 <?= UPKPRRenderVulnerabiliy(strtolower('theme'), $themeVulnebility) ?> 175 </div> 176 177 <?php elseif ($subsection == 'plugin') : 178 $pluginVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 179 ?> 180 181 182 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 183 <div class="vulnerability_section"> 184 <?= UPKPRRenderVulnerabiliy(strtolower('plugin'), $pluginVulnebility) ?> 185 </div> 186 187 <?php elseif ($subsection == 'all') : 188 $pluginVulnebility = get_option('upkpr_vulnerability_' . strtolower($subsection)); 189 ?> 190 191 192 <!--<a href="javascript:void(0)" class="usButton upkpr_scannow_refresh" onclick="UPKPR_check_connection('plugin',this)">Refresh Data </a> --> 193 <div class="vulnerability_section"> 194 <?= UPKPRRenderVulnerabiliy(strtolower('all'), $pluginVulnebility) ?> 195 </div> 196 <?php else : ?> 197 <p>Status 404, Page not found.</p> 198 <?php endif; ?> 199 200 <?php endif; ?> 201 202 <section class="plan-and-connection"> 287 </div> 288 </div> 289 </section> 290 </div> 291 </div> 292 <footer> 203 293 <div class="container"> 204 294 <div class="row justify-content-between"> 205 <div class="col-md-6"> 206 <div class="plan-connetion-inner plans-inner"> 207 <?php $plandetails = !empty($isConnected) ? json_decode($isConnected) : '' ?> 208 <h2 class="plugin-heading">Your plans</span></h2> 209 210 <?php if (isset($plandetails->plan) && $plandetails->plan != 'upgraded') : ?> 211 <p>Currently you are on FREE Plan, Power up your plan for more features</p> 212 <?php elseif (isset($plandetails->plan) && $plandetails->plan == 'upgraded') : ?> 213 <p>Currently you are on <?= $plandetails->plan_name ?> paid plan.</p> 214 <?php else : ?> 215 <p>Want to power up your Upkepr?</p> 216 <?php endif; ?> 217 218 <div class="b-tns"> 219 <a href="https://app.upkepr.com/checkpayment" target="_blank" class="bg-btn">View Plan</a> 220 </div> 221 </div> 222 </div> 223 <div class="col-md-6"> 224 <div class="plan-connetion-inner Connection-inner"> 225 <div class="site-connected-heading"> 226 <h2 class="plugin-heading">Connection</h2> 227 <div class="site-connected"> 228 <!-- <span class="connetion-site-logo"><img src="<?//php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/small-logo.png" /></span> 229 <span class="site-connected-line"></span> 230 <span class="connetion-cms-logo"> <img src="<?//php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/wordpress.png" /></span> --> 231 </div> 232 </div> 233 <p>This will connect your site to Upkepr.</p> 234 <div class="b-tns"> 235 <!-- <a href="#" class="bg-btn">Learn More</a> --> 236 <?php if (empty($isConnected)) : ?> 237 <a href="javascript:void(0);" onclick="UPKPR_check_user('check',this)" class="upkprConnect brdr-btn">Connect</a> 238 <?php endif; ?> 239 </div> 240 <div class="connect-list-outer"> 241 <?php if (!empty($isConnected)) : 242 $responseData=json_decode($isConnected); 243 ?> 244 <div class="list"> 245 <span class="connect-list-icon"></span> 246 <p>Site is added on upkepr</p> 247 </div> 248 <div class="list"> 249 <span class="connect-list-icon"></span> 250 <p>Key is connected </p> 251 </div> 252 <div class="list"> 253 <span class="connect-list-icon"></span> 254 <p>Last scan on <?= date('d F, Y H:i:s', strtotime($responseData->created_at)); ?></p> 255 </div> 256 <?php else: ?> 257 <span class="upkprLoadListToCheckConnected" style="display: none;"> 258 259 </span> 260 <?php endif; ?> 261 </div> 262 </div> 263 </div> 264 </div> 265 </div> 266 </section> 267 268 <footer> 269 <div class="container"> 270 <div class="row justify-content-between"> 271 <div class="col-md-8"> 272 <ul> 273 <li><a href="https://upkepr.com/" target="_blank" title="Upkepr"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/logo.png" /></a></li> 274 <li><a href="https://upkepr.com/about/" target="_blank">About</a></li> 275 <li><a href="https://upkepr.com/terms-and-conditions/" target="_blank">Privacy Policy & Terms</a></li> 276 277 </ul> 278 </div> 279 <div class="col-md-4 text-end"> 280 <a href="https://upkepr.com/" target="_blank" class="by-webgarh">By Upkepr</a> 281 </div> 282 </div> 283 </div> 284 </footer> 295 <div class="col-md-8"> 296 <ul> 297 <li><a href="https://upkepr.com/" target="_blank" title="UpKepr"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/logo.png" /></a></li> 298 <li><a href="https://upkepr.com/about/" target="_blank">About</a></li> 299 <li><a href="https://upkepr.com/terms-and-conditions/" target="_blank">Privacy Policy & Terms</a></li> 300 301 </ul> 302 </div> 303 <div class="col-md-4 text-end"> 304 <a href="https://upkepr.com/" target="_blank" class="by-webgarh">By UpKepr</a> 305 </div> 306 </div> 307 </div> 308 </footer> 285 309 286 310 … … 289 313 <div class="upkpr-modal-content signup-more-details-popup"> 290 314 <span class="upkpr-close">×</span> 291 < div class="header">292 <h2> Connect with <span class="highlight">Up kepr </span></h2>293 </div> 315 <!-- <div class="header"> 316 <h2> Connect with <span class="highlight">UpKepr </span></h2> 317 </div> --> 294 318 <p class="upkpr-errors errors error" style=" text-align: center; font-size: 15px;display: none;"></p> 295 319 <p class="upkpr-success " style=" text-align: center; font-size: 15px; color: #6f746f;display: none;"></p> … … 297 321 <div class="stepper-item step1"> 298 322 <div class="step-counter">1</div> 299 < div class="step-name">Add website to Upkepr</div>323 <!-- <div class="step-name">Add website to UpKepr</div> --> 300 324 </div> 301 325 <div class="stepper-item step2"> 302 326 <div class="step-counter">2</div> 303 < div class="step-name">Configure key on upkepr</div>304 </div> 305 < div class="stepper-item step3">327 <!-- <div class="step-name">Configure key on upkepr</div> --> 328 </div> 329 <!--div class="stepper-item step3"> 306 330 <div class="step-counter">3</div> 307 331 <div class="step-name">Scan to fetch website details</div> 308 </div >332 </div--> 309 333 </div> 310 334 <div id="upkepr-loader-2"></div> 311 <div class="key-configration-input step2-key" style="display: none;"> 312 <input type="text" id="upkepr_maintainance_validationkey" value="<?php if (isset($_upkepr_maintainance_validationkey)) { 313 echo esc_html($_upkepr_maintainance_validationkey); 314 } ?>" readonly> 315 <i alt="upkepr" onclick="UPKPR_copykey()" class="fa-solid fa-copy"></i> 316 </div> 317 <p class="model-body"></p> 318 <div class="addButton"> 319 <a href="https://app.upkepr.com/register" class="usButton primary-btn registerButton" target="_blank"><i class="fa-solid fa-lock"></i> Login to Upkepr </a> 335 <div class="coonection-with-upkepr-outer"> 336 <div class="coonection-with-upkepr-left"> 337 <h2 class="step-for-link" style="display:none"> Step 1 - Add website to <span class="highlight">UpKepr </span></h2> 338 <h2 class="step2-key" style="display:none"> Step 2 - Configure key on <span class="highlight">UpKepr </span></h2> 339 <p class="model-body pop-heading-new"></p> 340 <div class="key-configration-input step2-key" style="display: none;"> 341 <input type="text" id="upkepr_maintainance_validationkey" value="<?php if (isset($_upkepr_maintainance_validationkey)) { 342 echo esc_html($_upkepr_maintainance_validationkey); 343 } ?>" readonly> 344 <i alt="upkepr" onclick="UPKPR_copykey()" class="fa-solid fa-copy"></i> 345 </div> 346 <div class="step-for-link steps-descriptions" style="display:none"> 347 <p>👉 Please create an <a href="https://app.upkepr.com/register" target="_blank">account</a> or <a href="https://app.upkepr.com/" target="_blank">log in</a> to your existing account to add your website and configure your key.</p> 348 <p>📽️ Need assistance? Watch this <a href="https://www.youtube.com/watch?v=TnNxQXtAreg" target="_blank">video</a> for a simple, step-by-step guide on how to connect with UpKepr.</p> 349 <p>👉 Complete this step to unlock all the features!</p> 350 </div> 351 <div class="step2-key steps-descriptions" style="display:none"> 352 <p>👉 Copy the key and <a href="https://app.upkepr.com/" target="_blank">log in</a> or <a href="https://app.upkepr.com/register" target="_blank">sign up</a> on UpKepr to configure the key and Complete this step to unlock all the features</p> 353 <p>📽️ Watch this video for a step-by-step guide on how to configure your key correctly. <a href="https://www.youtube.com/watch?v=TnNxQXtAreg" target="_blank">Click Here To Watch Video</a>.</p> 354 </div> 355 <div class="addButton"> 356 <a href="https://app.upkepr.com/register" class="usButton primary-btn registerButton" target="_blank"><i class="fa-solid fa-lock"></i> Login/Signup To UpKepr </a> 357 </div> 358 </div> 359 <div class="coonection-with-upkepr-right"> 360 <div class="coonection-with-upkepr-right-video"> 361 <iframe src="https://www.youtube.com/embed/TnNxQXtAreg?si=QoAvlKvaw89oFKig&controls=0&autoplay=1&mute=1&rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> 362 </div> 363 </div> 320 364 </div> 321 365 </div> 366 322 367 </div> 323 368 <script> -
upkepr-maintenance/trunk/css/enchancestyle.css
r3129895 r3194918 300 300 } 301 301 .connect-list-icon { 302 width: 15px; 303 height: 15px; 304 border-radius: 50%; 305 background-color: #222; 302 width: 20px; 303 height: 20px; 304 border-radius: 50%; 305 background-color: #4EA07C; 306 display: flex; 307 align-items: center; 308 color: #fff; 309 justify-content: center; 310 font-size: 13px; 311 margin-top: 3px; 312 } 313 span.connect-list-icon.info { 314 background: #ff9109; 306 315 } 307 316 .plan-connetion-inner .list:not(:last-child):before { 308 317 content: ''; 309 318 position: absolute; 310 left: 6.8px;319 left: 8px; 311 320 height: 96%; 312 321 border-left: 2px dashed #222; … … 434 443 padding: 10px 50px 10px 20px; 435 444 border-radius: 50px; 436 border: 1px solid # edefef;445 border: 1px solid #d1d5d5 !important; 437 446 width: 100%; 438 447 } … … 724 733 } 725 734 .signup-more-details-popup p { 726 font-size: 15px; 727 margin: 20px 0; 728 font-weight: 300; 735 font-size: 14px; 736 margin: 15px 0; 729 737 } 730 738 .upkpr-modal-content.signup-more-details-popup { 731 max-width: 900px;739 max-width: 1100px; 732 740 } 733 741 .signup-more-details-popup .primary-btn { … … 755 763 color: #fff; 756 764 } 757 .key-configration-input.step2-key {758 margin: 20px 0 0;765 /* .key-configration-input.step2-key { 766 margin: 10px 0 0; 759 767 max-width: 90%; 760 } 768 } */ 761 769 .key-configration-input i:hover { 762 770 color: #8468f5; … … 1682 1690 font-size: 26px; 1683 1691 } 1692 @media (max-width: 1440px) { 1693 .upkepr-div-tabmain-section .container { 1694 width: 100%; 1695 } 1696 } 1684 1697 1685 1698 .pulgin-intallation-inner .list p, … … 1976 1989 text-align: center; 1977 1990 } 1991 1992 .stepper-item.active .step-name { 1993 color: green; 1994 } 1995 .coonection-with-upkepr-outer { 1996 display: flex; 1997 align-items: center; 1998 justify-content: space-between; 1999 /* border-top: 1px solid #d7d7d7; 2000 margin-top: 40px; */ 2001 padding-top: 30px; 2002 } 2003 .coonection-with-upkepr-right { 2004 width: 46%; 2005 } 2006 .coonection-with-upkepr-left { 2007 width: 50%; 2008 } 2009 .coonection-with-upkepr-left .addButton { 2010 text-align: left; 2011 } 2012 .coonection-with-upkepr-right img { 2013 width: 100%; 2014 } 2015 .stepper-item.step1.completed { 2016 opacity: 0.5; 2017 } 2018 .stepper-item .step-name { 2019 display: none; 2020 } 2021 .coonection-with-upkepr-left h2 { 2022 text-align: left; 2023 } 2024 2025 .vulnerabiliti-side-link { 2026 padding: 0; 2027 } 2028 .vulnerabiliti-side-link .nav-link a { 2029 text-align: left; 2030 border-right: 3px solid transparent; 2031 border-radius: 0; 2032 padding: 12px 15px; 2033 border-top: 1px solid #F1F1F1; 2034 position: relative; 2035 width: 100%; 2036 display: block; 2037 } 2038 .vulnerabiliti-side-link a { 2039 color: #222; 2040 text-decoration: none !important; 2041 } 2042 .vulnerabiliti-side-link .nav-link.active a:after { 2043 border-top: 8px solid transparent; 2044 border-left: 12px solid #8468F5; 2045 border-bottom: 8px solid transparent; 2046 content: ''; 2047 position: absolute; 2048 left: 100%; 2049 top: 50%; 2050 transform: translateY(-50%); 2051 } 2052 .vulnerabiliti-side-link .nav-link.active a { 2053 border-right-color: #8468f5; 2054 } 2055 .vulnerabiliti-side-link .nav-link a:hover, .vulnerabiliti-side-link .nav-link.active a, .vulnerabiliti-side-link .nav-link.active a:focus { 2056 color: #8468f5; 2057 } 2058 .vulnerabiliti-side-link .nav-link ul { 2059 border-top: 1px solid #F1F1F1; 2060 padding-left: 40px; 2061 } 2062 .vulnerabiliti-side-link .nav-link ul li:first-child a { 2063 border-top: none; 2064 } 2065 .vulnerabiliti-side-link .nav-link ul li a { 2066 padding-left: 0; 2067 } 2068 .upker-summry-outer .right-side-summry .container { 2069 width: 100%; 2070 max-width: 100%; 2071 } 2072 .upker-summry-outer { 2073 display: flex; 2074 align-items: flex-start; 2075 gap: 20px; 2076 padding: 0px 30px; 2077 margin-top: 30px; 2078 } 2079 .upker-summry-outer .sticky-links { 2080 max-width: 300px; 2081 width: 100%; 2082 position: sticky; 2083 top: 150px; 2084 } 2085 .upker-summry-outer section.connection-page-overview { 2086 margin-top: 0; 2087 } 2088 .upker-summry-outer .scan-summry-main .scan-summry-left { 2089 display: none; 2090 } 2091 .upkepr-div-tabmain-section header .container { 2092 max-width: 100%; 2093 width: 100%; 2094 padding: 0px 30px; 2095 } 2096 2097 .vulnerabiliti-side-link .nav-link i.fa-solid.fa-angles-right { 2098 font-size: 12px; 2099 } 2100 2101 .connect-list-icon.check + p { 2102 color: #4EA07C; 2103 } 2104 .connect-list-icon.errors + p { 2105 color: #F24F47; 2106 } 2107 .connect-list-icon.info + p { 2108 color:#ff9109; 2109 } 2110 /* .steps-descriptions { 2111 padding: 20px; 2112 margin: 20px 0; 2113 background: #f5f3fb; 2114 border-radius: 10px; 2115 box-shadow: 0 8px 31px 0 rgb(0 0 0 / 5%); 2116 border: 1px dashed #a081ff; 2117 text-align: left; 2118 } */ 2119 .steps-descriptions { 2120 text-align: left; 2121 margin: 20px 0; 2122 } 2123 2124 span.connect-list-icon.errors { 2125 background: #F24F47; 2126 } 2127 .stepper-item.active .step-counter { 2128 background: #6d7378; 2129 color: #fff; 2130 border-color: #6d7378; 2131 font-weight: 600; 2132 } 2133 .signup-more-details-popup p a { 2134 color: #8468f5; 2135 font-weight: 500; 2136 } 2137 .signup-more-details-popup .pop-heading-new { 2138 font-weight: 500; 2139 font-size: 18px; 2140 text-align: left; 2141 margin-top: 0px; 2142 } 2143 .coonection-with-upkepr-right-video { 2144 padding-bottom: 56.25%; 2145 position: relative; 2146 border-radius: 15px; 2147 overflow: hidden; 2148 } 2149 .coonection-with-upkepr-right-video iframe { 2150 position: absolute; 2151 top: 0; 2152 left: 0; 2153 width: 100%; 2154 height: 100%; 2155 } 2156 .stepper-item.step1.completed + .stepper-item.step2:before { 2157 display: none !important; 2158 } 2159 2160 .upkepr-div-tabmain-section footer .container { 2161 padding: 0px 30px; 2162 width: 100%; 2163 max-width: 100%; 2164 } -
upkepr-maintenance/trunk/css/style.css
r3121126 r3194918 1649 1649 background:#4bb543;; 1650 1650 font-family: "fontawesome"; 1651 border: 2px solid #c9c9c9; 1651 1652 } 1652 1653 .stepper-item.completed::after { -
upkepr-maintenance/trunk/js/upkepr_script.js
r3121126 r3194918 1 /* Active Sidebar url on page scroll */ 2 document.addEventListener('DOMContentLoaded', function() { 3 //updateLinkActiveOnScroll(); 4 }); 1 5 function UPKPR_copykey() { 2 6 var copyText = document.getElementById("upkepr_maintainance_validationkey"); … … 5 9 navigator.clipboard.writeText(copyText.value); 6 10 alert('Key Copied'); 11 } 12 13 function UPKPR_copyurl() { 14 var copyText = document.getElementById("upkepr_maintainance_url"); 15 copyText.select(); 16 copyText.setSelectionRange(0, 99999); /* For mobile devices */ 17 navigator.clipboard.writeText(copyText.value); 18 alert('Link Copied'); 7 19 } 8 20 … … 45 57 jQuery('.upkpr-errors').text(''); 46 58 jQuery('.upkpr-errors').hide(); 59 window.location.reload(); 47 60 }, 5000); 48 61 jQuery('.upkpr-errors').show(); … … 78 91 jQuery('#upkpr-Modal').find('.step1').addClass('completed'); 79 92 jQuery('#upkpr-Modal').find('.step2').addClass('completed'); 93 jQuery('#upkpr-Modal').find('.step1').removeClass('active'); 94 jQuery('#upkpr-Modal').find('.step2').removeClass('active'); 95 jQuery('#upkpr-Modal').find('.step2-key').hide(); 96 jQuery('#upkpr-Modal').find('.step-for-link').hide(); 80 97 jQuery('#upkpr-Modal').find('.step3').addClass('active'); 81 98 jQuery(eventhis).hide(); 82 UPKPR_OpneModal(text );99 UPKPR_OpneModal(text,type, eventhis); 83 100 //'<a href="https://app.upkepr.com/register" class="usButton primary-btn registerButton" target="_blank"> Click Here </a>' 84 101 jQuery('#upkpr-Modal .addButton').html(`<a href="javascript:void(0);" onclick="UPKPR_check_connection('all',this)" class="primary-btn scan-now registerButton"> Scan Now </a>`); … … 88 105 triggerUPkprAccordian(); 89 106 jQuery(eventhis).show(); 90 107 setTimeout(() => { 108 jQuery('#upkpr-Modal .addButton').find('.scan-now').trigger('click'); 109 jQuery('#upkpr-Modal .addButton').hide(); 110 }, 50); 91 111 //jQuery('.upkpr-success').html('Data retrieval successful. <i class="dashicons dashicons-yes"></i>'); 92 112 //jQuery('.upkpr-success').show(); … … 97 117 98 118 } else { 119 jQuery('#upkpr-Modal').find('.step-for-link').hide(); 99 120 if (respose.message == 'Website is not added.') { 100 121 jQuery('#upkpr-Modal').find('.step1').addClass('active'); 101 UPKPR_OpneModal('We detected that this website is not added on upkepr, Please create your account OR login to your account and add your website to configure your key.'); 122 jQuery('#upkpr-Modal').find('.step-for-link').show(); 123 UPKPR_OpneModal('We noticed that this website has not been added to UpKepr yet.',type, eventhis); 102 124 } else if (respose.message == 'No connecton found.') { 125 jQuery('#upkpr-Modal').find('.step1').removeClass('active'); 126 jQuery('#upkpr-Modal').find('.step1').addClass('completed'); 127 jQuery('#upkpr-Modal').find('.step2').addClass('active'); 128 jQuery('#upkpr-Modal').find('.step2').removeClass('completed'); 129 jQuery('#upkpr-Modal').find('.step2-key').show(); 130 UPKPR_OpneModal('A website has been successfully added to UpKepr! To get started, please configure your key in UpKepr.',type, eventhis); 131 } else if (respose.type == 'key_invalid') { 132 jQuery('#upkpr-Modal').find('.step1').addClass('completed'); 133 jQuery('#upkpr-Modal').find('.step1').removeClass('active'); 103 134 jQuery('#upkpr-Modal').find('.step2').addClass('active'); 104 135 jQuery('#upkpr-Modal').find('.step2-key').show(); 105 UPKPR_OpneModal('Nice! Website is already added on upkepr, please configure you key on upkepr, Click on link to login to upkepr'); 106 } else if (respose.type == 'key_invalid') { 107 jQuery('#upkpr-Modal').find('.step1').addClass('completed'); 108 jQuery('#upkpr-Modal').find('.step2').addClass('active'); 109 jQuery('#upkpr-Modal').find('.step2-key').show(); 110 UPKPR_OpneModal('Nice! Website is already added on upkepr, please configure you key on upkepr, Click on link to login to upkepr.'); 136 UPKPR_OpneModal('A website has been successfully added to UpKepr! To get started, please configure your key in UpKepr.',type, eventhis); 111 137 } else if (respose.message) { 112 138 jQuery('#upkpr-Modal').find('.step1').addClass('active'); 113 UPKPR_OpneModal(respose.message); 139 jQuery('#upkpr-Modal').find('.step2').removeClass('active'); 140 jQuery('#upkpr-Modal').find('.step-for-link').show(); 141 UPKPR_OpneModal(respose.message,type, eventhis); 114 142 } else { 115 UPKPR_OpneModal('Something went wrong.' );143 UPKPR_OpneModal('Something went wrong.',type, eventhis); 116 144 } 117 145 jQuery(eventhis).show(); … … 132 160 //alert(); 133 161 UPKPR_check_ConnectedWithUpkpr('check'); 162 setInterval(()=>{ 163 UPKPR_check_ConnectedWithUpkpr('check'); 164 },5000); 134 165 } 135 166 function UPKPR_check_ConnectedWithUpkpr(type = 'check') { … … 145 176 var text = "Project Configured, Kindly scan now for fetch details"; 146 177 jQuery('.upkprLoadListToCheckConnected').show(); 147 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon "></span><p>Site is added on upkepr</p></div>148 <div class="list keyConnectedOrConnected"><span class="connect-list-icon "></span><p>Key configured properly</p></div>149 <div class="list scanPendingOrScanned"><span class="connect-list-icon "></span><p>Scanning pending</p></div>`);178 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span><p>Site is added on UpKepr</p></div> 179 <div class="list keyConnectedOrConnected"><span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span><p>Key configured properly</p></div> 180 <div class="list scanPendingOrScanned"><span class="connect-list-icon info active"><i class="fa-solid fa-info"></i></span><p>Scanning pending</p></div>`); 150 181 jQuery('.upkprConnect').hide(); 151 182 jQuery('.upkepr-keyStatus').hide(); 183 jQuery('.upkepr-keyRemainStatus').show(); 152 184 } else { 185 jQuery('.upkepr-keyRemainStatus').hide(); 186 jQuery('.upkepr-keyStatus').show(); 153 187 if (respose.message == 'Website is not added.') { 154 188 jQuery('.upkprLoadListToCheckConnected').show(); 155 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon "></span><p>Site is not added</p></div>`);189 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon errors active"><i class="fa-solid fa-xmark"></i></span><p>Site is not added on UpKepr</p></div>`); 156 190 157 191 } else if (respose.message == 'No connecton found.') { 158 192 jQuery('.upkprLoadListToCheckConnected').show(); 159 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon "></span><p>Site is added on upkepr</p></div>160 <div class="list keyConnectedOrConnected"><span class="connect-list-icon "></span><p>Key configured properly</p></div>`);193 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span><p>Site is added on UpKepr</p></div> 194 <div class="list keyConnectedOrConnected"><span class="connect-list-icon errors active"><i class="fa-solid fa-xmark"></i></span><p>Key is not configured on UpKper</p></div>`); 161 195 } else if (respose.type == 'key_invalid') { 162 196 jQuery('.upkprLoadListToCheckConnected').show(); 163 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon "></span><p>Site is added on upkepr</p></div>164 <div class="list keyConnectedOrConnected"><span class="connect-list-icon "></span><p>Key mismatch issue</p></div>`);197 jQuery('.upkprLoadListToCheckConnected').html(`<div class="list siteAdded"><span class="connect-list-icon check active"><i class="fa-solid fa-check"></i></span><p>Site is added on UpKepr</p></div> 198 <div class="list keyConnectedOrConnected"><span class="connect-list-icon errors active"><i class="fa-solid fa-xmark"></i></span><p>Key mismatch issue</p></div>`); 165 199 } else if (respose.message) { 166 200 jQuery('.upkprLoadListToCheckConnected').show(); … … 193 227 } 194 228 195 function UPKPR_OpneModal(text ) {229 function UPKPR_OpneModal(text, sectionType, eventThis) { 196 230 jQuery('#upkpr-Modal .model-body').html(text); 197 231 var modal = jQuery('#upkpr-Modal'); 198 232 modal.show(); 233 startRefreshInterval(sectionType, eventThis); 199 234 } 200 235 jQuery(document).ready(function ($) { … … 208 243 span.click(function () { 209 244 modal.hide(); 245 clearInterval(refreshInterval); 210 246 }); 211 247 … … 213 249 if (event.target == modal) { 214 250 modal.hide(); 251 clearInterval(refreshInterval); 215 252 } 216 253 }); … … 218 255 jQuery('#upkepr-loader').hide(); 219 256 jQuery('#upkepr-loader-2').hide(); 257 258 let refreshInterval; 259 function startRefreshInterval(sectionType, eventThis) { 260 clearInterval(refreshInterval); 261 refreshInterval = setInterval(function () { 262 const modal = jQuery('#upkpr-Modal'); 263 if (modal.css('display') === 'block') { 264 console.log('Modal is visible, refreshing...'); 265 UPKPR_check_user(sectionType, eventThis); 266 } else { 267 clearInterval(refreshInterval); 268 } 269 }, 5000); 270 } 271 272 function scrollToSection(selector,element) { 273 const section = document.querySelector(selector); 274 if (section) { 275 276 section.style.scrollMarginTop = '120px'; 277 section.scrollIntoView({ behavior: 'smooth', block: 'start' }); 278 } 279 document.querySelectorAll('.vulnerabiliti-side-link .nav-link').forEach((nav) => { 280 nav.classList.remove('active'); 281 }); 282 element.closest('.nav-link').classList.add('active'); 283 } 284 function scrollToSectionSub(selector,tabID, element) { 285 /* if(tabID == '#scans-summry-tab2'){ 286 jQuery('.scan-summry-main').removeClass('scan-summry-main-perfromance'); 287 jQuery('.scan-summry-main').addClass('scan-summry-main-seo'); 288 } else { 289 jQuery('.scan-summry-main').removeClass('scan-summry-main-seo'); 290 jQuery('.scan-summry-main').addClass('scan-summry-main-perfromance'); 291 } */ 292 const section = document.querySelector(selector); 293 if (section) { 294 section.style.scrollMarginTop = '120px'; 295 section.scrollIntoView({ behavior: 'smooth', block: 'start' }); 296 jQuery(tabID).trigger('click'); 297 } 298 document.querySelectorAll('.vulnerabiliti-side-link li').forEach((nav) => { 299 nav.classList.remove('active'); 300 }); 301 element.closest('li').classList.add('active'); 302 } 303 304 function updateLinkActiveOnScroll(){ 305 const links = document.querySelectorAll(".vulnerabiliti-side-link a[data-class]"); 306 const sections = Array.from(links).map(link => 307 document.querySelector(`.${link.getAttribute("data-class")}`) 308 ); 309 const observer = new IntersectionObserver((entries) => { 310 entries.forEach(entry => { 311 if (entry.isIntersecting) { 312 const visibleThreshold = entry.intersectionRatio; 313 const activeLink = Array.from(links).find( 314 link => link.getAttribute("data-class") === entry.target.classList[1] 315 ); 316 document.querySelectorAll(".vulnerabiliti-side-link .nav-link.active") 317 .forEach(link => link.classList.remove("active")); 318 if (activeLink && visibleThreshold > 0) { 319 activeLink.closest(".nav-link").classList.add("active"); 320 } 321 } 322 }); 323 }, { threshold: [ 0.3, 0.5] }); 324 sections.forEach(section => { 325 if (section) observer.observe(section); 326 }); 327 } -
upkepr-maintenance/trunk/upkepr_vulnerability.php
r3142203 r3194918 1 <?php $metricsxData = getHtmlHowtoFix(); ?>1 <?php $metricsxData = getHtmlHowtoFix(); ?> 2 2 <section class="connection-page-overview"> 3 3 4 <div class="container"> 4 5 <div class="cstm-card"> … … 7 8 <p class="upkpr-errors errors error" style=" text-align: center; font-size: 15px;display: none;"></p> 8 9 </div> 9 <div class=" health-report-banner-header">10 <div class="section health-report-banner-header"> 10 11 11 12 12 13 <div class="health-report-header-left"> 13 14 <span> 14 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px"> Detailed vulnerabilities</h2>15 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Vulnerabilities Summary</h2> 15 16 <p> Detailed information of vulnerabilities detected in your websites</p> 16 17 </span> … … 94 95 <!-- Show Vulnerability details --> 95 96 <?php if (strtolower($responseDataPlan) != 'free') : ?> 96 <section class=" connection-page-table">97 <section class="section connection-page-table"> 97 98 <div class="container"> 98 99 <div class="cstm-card cstm-tab-content tab-content"> … … 100 101 <div class="health-report-header-left"> 101 102 <span> 102 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px"> Vulnerabilities Detail</h2>103 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Detailed Vulnerabilities</h2> 103 104 <p>Please review the detailed information on vulnerabilities and find solutions to fix these issues to secure your WordPress website.</p> 104 105 </span> … … 187 188 <!-- individual account --> 188 189 189 <section class=" connection-page-table connection-table-popup">190 <section class="section connection-page-table connection-table-popup"> 190 191 <div class="container"> 191 192 <div class="cstm-card cstm-tab-content tab-content"> … … 203 204 <h2>Upgrade to Premium for Details <!-- <span class="highlight">Upkepr.</span> --></h2> 204 205 <p>“Currently, you're on a free plan which only allows you to view a summary of the vulnerabilities. To access detailed information on these vulnerabilities and their fixes, please upgrade to a premium plan. This will help you secure your WordPress website effectively.”</p> 205 <a target="_blank" href="https://app.upkepr.com/register" class="primary-btn"><i class="fa-solid fa-lock"></i> Login To Up kepr</a>206 <a target="_blank" href="https://app.upkepr.com/register" class="primary-btn"><i class="fa-solid fa-lock"></i> Login To UpKepr</a> 206 207 </div> 207 208 </div> … … 266 267 } else { 267 268 268 $site_url = site_url(); 269 $languageSugges = ''; 270 $seoScore = $performanceScrore = $pageStructureScore = $accessibilityScore = 0; 271 $reorder = ['performance' => 'Speed', 'best-practices' => 'Page Structure', 'accessibility' => 'Accessibility', 'seo' => 'SEO']; 272 $cateroriesReports = isset($data->categories) ? $data->categories : ""; 273 $performanceScrore = isset($cateroriesReports->performance->score) ? $cateroriesReports->performance->score * 100 : 0; 274 $pageStructureScore = isset($cateroriesReports->{'best-practices'}->score) ? $cateroriesReports->{'best-practices'}->score * 100 : 0; 275 276 $accessibilityScore = isset($cateroriesReports->accessibility->score) ? $cateroriesReports->accessibility->score * 100 : 0; 277 $seoScore = isset($cateroriesReports->seo->score) ? $cateroriesReports->seo->score * 100 : 0; 278 $averageScore = round(($seoScore + $performanceScrore) / 2); 279 $getSpeedDetails = getFailedWarningPassedSpeed($data); 280 $recommendedData = getRecommendationCategoriesData($data); 281 $resposeData = isset($data->allAudits) ? $data->allAudits : ""; 282 $web = isset($recommendedDataReports->scraper_data_json) ? json_decode($recommendedDataReports->scraper_data_json) : ""; 283 if(empty($web->viewportString)){ 284 if(count($recommendedData['accessibility']) > 0){ 285 $recommendedData['accessibility'] = array_merge($recommendedData['accessibility'],['Meta_Viewport' => isset($web->viewportString)?$web->viewportString:'']); 269 $site_url = site_url(); 270 $languageSugges = ''; 271 $seoScore = $performanceScrore = $pageStructureScore = $accessibilityScore = 0; 272 $reorder = ['performance' => 'Speed', 'best-practices' => 'Page Structure', 'accessibility' => 'Accessibility', 'seo' => 'SEO']; 273 $cateroriesReports = isset($data->categories) ? $data->categories : ""; 274 $performanceScrore = isset($cateroriesReports->performance->score) ? $cateroriesReports->performance->score * 100 : 0; 275 $pageStructureScore = isset($cateroriesReports->{'best-practices'}->score) ? $cateroriesReports->{'best-practices'}->score * 100 : 0; 276 277 $accessibilityScore = isset($cateroriesReports->accessibility->score) ? $cateroriesReports->accessibility->score * 100 : 0; 278 $seoScore = isset($cateroriesReports->seo->score) ? $cateroriesReports->seo->score * 100 : 0; 279 $averageScore = round(($seoScore + $performanceScrore) / 2); 280 $getSpeedDetails = getFailedWarningPassedSpeed($data); 281 $recommendedData = getRecommendationCategoriesData($data); 282 $resposeData = isset($data->allAudits) ? $data->allAudits : ""; 283 $web = isset($recommendedDataReports->scraper_data_json) ? json_decode($recommendedDataReports->scraper_data_json) : ""; 284 if (empty($web->viewportString)) { 285 if (count($recommendedData['accessibility']) > 0) { 286 $recommendedData['accessibility'] = array_merge($recommendedData['accessibility'], ['Meta_Viewport' => isset($web->viewportString) ? $web->viewportString : '']); 287 } else { 288 $recommendedData['accessibility']['Meta_Viewport'] = isset($web->canonical) ? $web->canonical : ''; 289 } 290 } 291 292 if (empty($web->canonical)) { 293 if (count($recommendedData['page_structure']) > 0) { 294 $recommendedData['page_structure'] = array_merge($recommendedData['page_structure'], [ 295 'URL_Canonicalization' => isset($web->canonical) ? $web->canonical : '', 296 ]); 297 } else { 298 $recommendedData['page_structure']['URL_Canonicalization'] = isset($web->canonical) ? $web->canonical : ''; 299 } 300 } 301 $passedSeo = getSeoPassedData($data); 302 303 $performanceFailed = 0; 304 $performanceWarning = 0; 305 if (isset($recommendedData['performance'])) : 306 foreach ($recommendedData as $keyName => $sectionHigValue) : 307 if ($keyName != 'seo' && $keyName != 'passed') : 308 foreach ($sectionHigValue as $keyInnterRec => $listValue) : 309 if (gettype($keyInnterRec) == 'string' && !isset($listValue->id)) : 310 $performanceFailed = $performanceFailed + 1; 311 elseif ($listValue->score <= '0.9' && '0.5' <= $listValue->score) : 312 $performanceWarning = $performanceWarning + 1; 313 else : 314 $performanceFailed = $performanceFailed + 1; 315 endif; 316 endforeach; 317 endif; 318 endforeach; 319 endif; 320 $failedPerformance = !empty($performanceFailed) ? $performanceFailed : 0; 321 $warningPerformance = !empty($performanceWarning) ? $performanceWarning : 0; 322 $passedPerformance = !empty($recommendedData['passed']) ? $recommendedData['passed'] - count($passedSeo) : 0; 323 $totalPerAud = $failedPerformance + $warningPerformance + $passedPerformance; 324 325 326 if (isset($web)) { 327 $seodAdvanceDataWithPackage = [ 328 'Meta_Title' => $web->title, 329 'Meta_Description' => $web->description, 330 'Social_Media_Meta_Tags' => ['social' => $web->openGraph, 'twitter' => $web->twitterCard], 331 'Heading_Tags' => [ 332 'h1' => $web->h1, 333 'h2' => $web->h2, 334 ], 335 'Image_Alt' => array_filter($web->imagesWithDetails, function ($images) { 336 if (empty($images->alt)) 337 return true; 338 }), 339 'Charset_Declaration' => $web->charset, 340 'Social_Media' => [ 341 'Facebook' => !empty($web->openGraph->{'og:title'}) ? 'true' : 'false', 342 'twitter' => !empty($web->twitterCard->{'twitter:title'}) ? 'true' : 'false' 343 ], 344 //'Meta_Viewport' => $web->viewportString, 345 'Canonical_Tag' => $web->canonical, 346 ]; 286 347 } else { 287 $ recommendedData['accessibility']['Meta_Viewport'] = isset($web->canonical) ? $web->canonical:'';348 $seodAdvanceDataWithPackage = []; 288 349 } 289 } 290 291 if(empty($web->canonical)){ 292 if(count($recommendedData['page_structure']) > 0){ 293 $recommendedData['page_structure'] = array_merge($recommendedData['page_structure'],[ 294 'URL_Canonicalization' =>isset($web->canonical) ? $web->canonical:'', 295 ]); 296 } else { 297 $recommendedData['page_structure']['URL_Canonicalization']=isset($web->canonical) ? $web->canonical:''; 298 } 299 } 300 $passedSeo = getSeoPassedData($data); 301 302 $performanceFailed = 0; 303 $performanceWarning = 0; 304 if (isset($recommendedData['performance'])) : 305 foreach ($recommendedData as $keyName => $sectionHigValue) : 306 if ($keyName != 'seo' && $keyName != 'passed') : 307 foreach ($sectionHigValue as $keyInnterRec => $listValue) : 308 if (gettype($keyInnterRec) == 'string' && !isset($listValue->id)) : 309 $performanceFailed = $performanceFailed + 1; 310 elseif ($listValue->score <= '0.9' && '0.5' <= $listValue->score) : 311 $performanceWarning = $performanceWarning + 1; 312 else : 313 $performanceFailed = $performanceFailed + 1; 314 endif; 315 endforeach; 316 endif; 317 endforeach; 318 endif; 319 $failedPerformance = !empty($performanceFailed) ? $performanceFailed : 0; 320 $warningPerformance = !empty($performanceWarning) ? $performanceWarning : 0; 321 $passedPerformance = !empty($recommendedData['passed']) ? $recommendedData['passed'] - count($passedSeo) : 0; 322 $totalPerAud = $failedPerformance + $warningPerformance + $passedPerformance; 323 324 325 if (isset($web)) { 326 $seodAdvanceDataWithPackage = [ 327 'Meta_Title' => $web->title, 328 'Meta_Description' => $web->description, 329 'Social_Media_Meta_Tags' => ['social' => $web->openGraph, 'twitter' => $web->twitterCard], 330 'Heading_Tags' => [ 331 'h1' => $web->h1, 332 'h2' => $web->h2, 333 ], 334 'Image_Alt' => array_filter($web->imagesWithDetails, function ($images) { 335 if (empty($images->alt)) 336 return true; 337 }), 338 'Charset_Declaration' => $web->charset, 339 'Social_Media' => [ 340 'Facebook' => !empty($web->openGraph->{'og:title'}) ? 'true' : 'false', 341 'twitter' => !empty($web->twitterCard->{'twitter:title'}) ? 'true' : 'false' 342 ], 343 //'Meta_Viewport' => $web->viewportString, 344 'Canonical_Tag' => $web->canonical, 345 ]; 346 } else { 347 $seodAdvanceDataWithPackage = []; 348 } 349 350 $scraperErrors = []; 351 foreach ($seodAdvanceDataWithPackage as $seokey => $seovalue) { 352 if (is_array($seovalue)) { 353 if ($seokey == 'Social_Media_Meta_Tags' && (empty($seovalue['social']) || empty($seovalue['twitter']))) { 354 $scraperErrors[] = $seokey; 355 } elseif ($seokey == 'Heading_Tags' && (empty($seovalue['h1']) || empty($seovalue['h2']))) { 356 $scraperErrors[] = $seokey; 357 } elseif ($seokey == 'Image_Alt' && (count($seovalue) > 0)) { 358 $scraperErrors[] = $seokey; 359 } elseif ($seokey == 'Social_Media' && ($seovalue['Facebook'] == 'false' || $seovalue['twitter'] == 'false')) { 350 351 $scraperErrors = []; 352 foreach ($seodAdvanceDataWithPackage as $seokey => $seovalue) { 353 if (is_array($seovalue)) { 354 if ($seokey == 'Social_Media_Meta_Tags' && (empty($seovalue['social']) || empty($seovalue['twitter']))) { 355 $scraperErrors[] = $seokey; 356 } elseif ($seokey == 'Heading_Tags' && (empty($seovalue['h1']) || empty($seovalue['h2']))) { 357 $scraperErrors[] = $seokey; 358 } elseif ($seokey == 'Image_Alt' && (count($seovalue) > 0)) { 359 $scraperErrors[] = $seokey; 360 } elseif ($seokey == 'Social_Media' && ($seovalue['Facebook'] == 'false' || $seovalue['twitter'] == 'false')) { 361 $scraperErrors[] = $seokey; 362 } 363 } elseif (empty($seovalue)) { 360 364 $scraperErrors[] = $seokey; 361 365 } 362 } elseif (empty($seovalue)) {363 $scraperErrors[] = $seokey;364 366 } 365 } 366 $seoFailed = 0; 367 $seoWarning = 0; 368 if (isset($recommendedData['performance'])) : 369 foreach ($recommendedData as $keyName => $sectionHigValue) : 370 if ($keyName == 'seo') : 371 foreach ($sectionHigValue as $keyInnterRec => $listValue) : 372 if (gettype($keyInnterRec) == 'string' && !isset($listValue->id)) : 373 $seoFailed = $seoFailed + 1; 374 elseif ($listValue->score <= '0.9' && '0.5' <= $listValue->score) : 375 $seoWarning = $seoWarning + 1; 376 elseif ($listValue->score < 0.5) : 377 $seoFailed = $seoFailed + 1; 378 endif; 379 endforeach; 380 endif; 381 endforeach; 382 383 endif; 384 $failedPerformanceSeo = !empty($seoFailed) ? $seoFailed + count($scraperErrors) : 0 + count($scraperErrors); 385 $warningPerformanceSeo = !empty($seoWarning) ? $seoWarning : 0; 386 $passedSeoArray = $passedSeo; 387 $passedSeo = count($passedSeo) + (count($seodAdvanceDataWithPackage) - count($scraperErrors)); 388 389 $totalPerAudSeo = $failedPerformance + $warningPerformance + $passedSeo; 367 $seoFailed = 0; 368 $seoWarning = 0; 369 if (isset($recommendedData['performance'])) : 370 foreach ($recommendedData as $keyName => $sectionHigValue) : 371 if ($keyName == 'seo') : 372 foreach ($sectionHigValue as $keyInnterRec => $listValue) : 373 if (gettype($keyInnterRec) == 'string' && !isset($listValue->id)) : 374 $seoFailed = $seoFailed + 1; 375 elseif ($listValue->score <= '0.9' && '0.5' <= $listValue->score) : 376 $seoWarning = $seoWarning + 1; 377 elseif ($listValue->score < 0.5) : 378 $seoFailed = $seoFailed + 1; 379 endif; 380 endforeach; 381 endif; 382 endforeach; 383 384 endif; 385 $failedPerformanceSeo = !empty($seoFailed) ? $seoFailed + count($scraperErrors) : 0 + count($scraperErrors); 386 $warningPerformanceSeo = !empty($seoWarning) ? $seoWarning : 0; 387 $passedSeoArray = $passedSeo; 388 $passedSeo = count($passedSeo) + (count($seodAdvanceDataWithPackage) - count($scraperErrors)); 389 390 $totalPerAudSeo = $failedPerformance + $warningPerformance + $passedSeo; 390 391 391 392 ?> 392 <section class="website-health-report"> 393 <div class="container"> 394 <div class="health-report-banner"> 395 <div class="health-report-banner-header"> 396 <div class="health-report-header-left"> 397 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/health-report-icon.png" alt="site-logo 2" /> 398 <span> 399 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Website health report</h2> 400 <a id="textToCopy" data-title="<?= @$_SERVER['HTTP_REFERER'] ?>" href="#"><?= isset($site_url) ? $site_url : '' ?></a> 401 </span> 393 <section class="section website-health-report"> 394 <div class="container"> 395 <div class="health-report-banner"> 396 <div class="health-report-banner-header"> 397 <div class="health-report-header-left"> 398 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/health-report-icon.png" alt="site-logo 2" /> 399 <span> 400 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Website health report</h2> 401 <a id="textToCopy" data-title="<?= @$_SERVER['HTTP_REFERER'] ?>" href="#"><?= isset($site_url) ? $site_url : '' ?></a> 402 </span> 403 </div> 404 <div class="health-report-header-right"> 405 <div class="custom-notification" id="copyNotification" style="left: 1479.03px; display: none;"> 406 Copied! 407 </div> 408 <!-- <a id="copyButton" class="copy-link"><i class="far fa-clone"></i>Copy Link</a> --> 409 <!-- <a href="#" class="brdr-btn download-pdf"><img src="<? //= HOME_URL 410 ?>/assets/img/tools/website-analyse/download-pdf.png" alt="download-pdf">Download Pdf</a> --> 411 </div> 402 412 </div> 403 <div class="health-report-header-right"> 404 <div class="custom-notification" id="copyNotification" style="left: 1479.03px; display: none;"> 405 Copied! 406 </div> 407 <!-- <a id="copyButton" class="copy-link"><i class="far fa-clone"></i>Copy Link</a> --> 408 <!-- <a href="#" class="brdr-btn download-pdf"><img src="<? //= HOME_URL 409 ?>/assets/img/tools/website-analyse/download-pdf.png" alt="download-pdf">Download Pdf</a> --> 410 </div> 411 </div> 412 <div class="health-report-overall-score"> 413 <div class="health-overall-score-left"> 414 <div class="overall-score-main"> 415 <img src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $averageScore ?>.png" alt="score <?= $averageScore ?>"> 416 <div class="performance-overall-score-right"> 417 <h4>Overall Site Score</h4> 418 <div class="last-date-cms"> 419 <!-- <div class="last-date showResultTime"> Last Refresh Date:<span id="last_refresh_date"> <?//= date('d F, Y H:i:s', strtotime($responseData->created_at));?></span></div> --> 420 <!-- <div class="cms"><img style="display: none;" id="wordpressImg" src="<?//php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/wordpress-cms.png"><span id="cmsData"> </span></div> --> 421 </div> 422 <p>This website received an total score of <?= $averageScore?> out of 100, this website Grade is 423 <span class="<?=getColorOfText($averageScore)?>"><?php if($averageScore >= 90){ echo "Good";}elseif($averageScore < 90 && $averageScore >= 50 ){ echo "Need Improvement";} else { echo "Critical";}?></span>. 424 </p> 425 </div> 426 </div> 427 </div> 428 429 <div class="health-overall-score-right"> 430 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px"> 431 Log In for More Features 432 </h2> 433 <p class="discover-and-fix-vul">Upkepr provides daily/monthly health reports, regular alerts, team collaboration, and deeper insights with Google Analytics. Log in to access these features.</p> 434 <a target="_blank" href="https://app.upkepr.com/register" class="bg-btn"><i class="fa-solid fa-lock"></i> Login To Upkepr</a> 435 </div> 436 437 </div> 438 439 </div> 440 </div> 441 </section> 442 <section class="scan-summry-main"> 443 <div class="container"> 444 <div class="scan-summry-inner"> 445 446 <div class="scan-summry-left"> 447 <div class="scan-summry-header"> 448 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/health-report-icon.png" alt="site-logo 2"> 449 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Scan summary</h2> 450 </div> 451 <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical"> 452 <button class="nav-link active" id="scans-summry-tab1" data-bs-toggle="pill" data-bs-target="#scans-summry1" type="button" role="tab" aria-controls="scans-summry1" aria-selected="true"> 453 <img class="site-logo" src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $performanceScrore ?>.png"> 454 <span> 455 <h3>Performance/Speed detail</h3> 456 <p>Refers to how quickly & efficiently a website loads & operates.</p> 457 </span> 458 </button> 459 <button class="nav-link" id="scans-summry-tab2" data-bs-toggle="pill" data-bs-target="#scans-summry2" type="button" role="tab" aria-controls="scans-summry2" aria-selected="false"> 460 <img class="site-logo" src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $seoScore ?>.png"> 461 <span> 462 <h3>SEO</h3> 463 <p> Ensuring website is easy to navigate with good user experience.</p> 464 </span> 465 </button> 466 </div> 467 </div> 468 469 <div class="scan-summry-details"> 470 <div class="tab-content" id="v-pills-tabContent"> 471 <div class="tab-pane fade show active" id="scans-summry1" role="tabpanel" aria-labelledby="scans-summry-tab1" tabindex="0"> 472 <div class="health-report-banner-header"> 473 <div class="health-report-header-left"> 474 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/meter.png" alt="meter"> 475 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Performance/Speed detail</h2> 476 </div> 477 <div class="scan-summry-details-tabs"> 478 <ul class="nav nav-pills" id="pills-tab" role="tablist"> 479 <li class="nav-item" role="presentation"> 480 <button class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab1.png">Critical Issues <span>(<?= isset($failedPerformance) ? $failedPerformance : '' ?>)</span></button> 481 </li> 482 <li class="nav-item" role="presentation"> 483 <button class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" data-bs-target="#pills-profile" type="button" role="tab" aria-controls="pills-profile" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab2.png">Need Improvement <span>(<?= isset($warningPerformance) ? $warningPerformance : '' ?>)</span></button> 484 </li> 485 </ul> 413 <div class="health-report-overall-score"> 414 <div class="health-overall-score-left"> 415 <div class="overall-score-main"> 416 <img src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $averageScore ?>.png" alt="score <?= $averageScore ?>"> 417 <div class="performance-overall-score-right"> 418 <h4>Overall Site Score</h4> 419 <div class="last-date-cms"> 420 <!-- <div class="last-date showResultTime"> Last Refresh Date:<span id="last_refresh_date"> <? //= date('d F, Y H:i:s', strtotime($responseData->created_at)); 421 ?></span></div> --> 422 <!-- <div class="cms"><img style="display: none;" id="wordpressImg" src="<? //php echo esc_html(UPKPR_UPKEPR_WS_PATH1); 423 ?>images/wordpress-cms.png"><span id="cmsData"> </span></div> --> 424 </div> 425 <p>This website received an total score of <?= $averageScore ?> out of 100, this website Grade is 426 <span class="<?= getColorOfText($averageScore) ?>"><?php if ($averageScore >= 90) { 427 echo "Good"; 428 } elseif ($averageScore < 90 && $averageScore >= 50) { 429 echo "Need Improvement"; 430 } else { 431 echo "Critical"; 432 } ?></span>. 433 </p> 486 434 </div> 487 435 </div> 488 <div class="scan-summry-tab-details" id="pills-tabContent"> 489 <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab"> 490 491 <?php 492 if (isset($recommendedData['performance']) && count($recommendedData['performance']) > 0) : 493 foreach ($recommendedData['performance'] as $perforValue) : 494 $score = @$perforValue->score; 495 if (($score < 0.5 && $score >= 0)) : ?> 496 <div class="scan-summry-detail-list"> 497 <div class="scan-summry-detail-list-header"> 498 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 499 <h4> <?= htmlentities($perforValue->title) ?></h4> 500 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 501 <?= formatTextWithLinks($perforValue->description) ?></p> 502 </div> 503 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 504 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 505 506 </a> 507 <div class="mvbsbContentBox"> 508 <?= @$metricsxData[$perforValue->id]; ?> 509 </div> 510 </div> 511 <?php endif; 512 endforeach; ?> 513 <?php endif; 514 if (isset($recommendedData['page_structure']) && count($recommendedData['page_structure']) > 0) : 515 foreach ($recommendedData['page_structure'] as $pgStKey => $perforValue) : 516 if(gettype($pgStKey) == 'string' && empty($perforValue)){ ?> 517 <div class="scan-summry-detail-list"> 518 <div class="scan-summry-detail-list-header"> 519 <span class="scan-detailes-list-icon <?= getIconColor(0) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 520 <h4><?=ucfirst(str_replace('_', ' ', $pgStKey)) ?></h4> 521 <p> <?= $site_url ?> and <?= str_contains(parse_url($site_url)['host'], 'www') ? "https://" . parse_url($site_url)['host'] : 'https://www.' . parse_url($site_url)['host']; ?> should resolve to the same URL, but currently do not.</p> 522 </div> 523 </div> 524 <?php } else { 436 </div> 437 438 <div class="health-overall-score-right"> 439 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px"> 440 Log In/Sign Up for More Features 441 </h2> 442 <p class="discover-and-fix-vul">UpKepr provides daily/monthly health reports, regular alerts, team collaboration, and deeper insights with Google Analytics. Log in to access these features.</p> 443 <a target="_blank" href="https://app.upkepr.com/register" class="bg-btn"><i class="fa-solid fa-lock"></i> Login To UpKepr</a> 444 </div> 445 446 </div> 447 448 </div> 449 </div> 450 </section> 451 <section class="section scan-summry-main-perfromance scan-summry-main"> 452 <div class="container"> 453 <div class="scan-summry-inner"> 454 455 <div class="scan-summry-left"> 456 <div class="scan-summry-header"> 457 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/health-report-icon.png" alt="site-logo 2"> 458 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Scan summary</h2> 459 </div> 460 <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical"> 461 <button class="nav-link active" id="scans-summry-tab1" data-bs-toggle="pill" data-bs-target="#scans-summry1" type="button" role="tab" aria-controls="scans-summry1" aria-selected="true"> 462 <img class="site-logo" src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $performanceScrore ?>.png"> 463 <span> 464 <h3>Performance/Speed detail</h3> 465 <p>Refers to how quickly & efficiently a website loads & operates.</p> 466 </span> 467 </button> 468 <button class="nav-link" id="scans-summry-tab2" data-bs-toggle="pill" data-bs-target="#scans-summry2" type="button" role="tab" aria-controls="scans-summry2" aria-selected="false"> 469 <img class="site-logo" src="<?= UPKPR_MAINTENANCE_GET_DATA ?>/assets/uploads/report/<?= $seoScore ?>.png"> 470 <span> 471 <h3>SEO</h3> 472 <p> Ensuring website is easy to navigate with good user experience.</p> 473 </span> 474 </button> 475 </div> 476 </div> 477 478 <div class="scan-summry-details"> 479 <div class="tab-content" id="v-pills-tabContent"> 480 <div class="tab-pane fade show active" id="scans-summry1" role="tabpanel" aria-labelledby="scans-summry-tab1" tabindex="0"> 481 <div class="health-report-banner-header"> 482 <div class="health-report-header-left"> 483 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/meter.png" alt="meter"> 484 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">Performance/Speed detail</h2> 485 </div> 486 <div class="scan-summry-details-tabs"> 487 <ul class="nav nav-pills" id="pills-tab" role="tablist"> 488 <li class="nav-item" role="presentation"> 489 <button class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab1.png">Critical Issues <span>(<?= isset($failedPerformance) ? $failedPerformance : '' ?>)</span></button> 490 </li> 491 <li class="nav-item" role="presentation"> 492 <button class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" data-bs-target="#pills-profile" type="button" role="tab" aria-controls="pills-profile" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab2.png">Need Improvement <span>(<?= isset($warningPerformance) ? $warningPerformance : '' ?>)</span></button> 493 </li> 494 </ul> 495 </div> 496 </div> 497 <div class="scan-summry-tab-details" id="pills-tabContent"> 498 <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab"> 499 500 <?php 501 if (isset($recommendedData['performance']) && count($recommendedData['performance']) > 0) : 502 foreach ($recommendedData['performance'] as $perforValue) : 525 503 $score = @$perforValue->score; 526 504 if (($score < 0.5 && $score >= 0)) : ?> … … 534 512 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 535 513 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 536 514 537 515 </a> 538 516 <div class="mvbsbContentBox"> … … 540 518 </div> 541 519 </div> 542 <?php endif; 543 } 544 endforeach; ?> 545 <?php endif; 546 if (isset($recommendedData['accessibility']) && count($recommendedData['accessibility']) > 0) : 547 foreach ($recommendedData['accessibility'] as $accKey => $perforValue) :?> 548 <div class="scan-summry-detail-list"> 549 <?php if( gettype($accKey) == 'string' && empty($perforValue)) : ?> 550 <div class="scan-summry-detail-list-header"> 551 <span class="scan-detailes-list-icon <?= getIconColor(0) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 552 <h4><?=ucfirst(str_replace('_', ' ', $accKey)) ?></h4> 553 <p>This webpage is Not using a viewport meta tag.</p> 520 <?php endif; 521 endforeach; ?> 522 <?php endif; 523 if (isset($recommendedData['page_structure']) && count($recommendedData['page_structure']) > 0) : 524 foreach ($recommendedData['page_structure'] as $pgStKey => $perforValue) : 525 if (gettype($pgStKey) == 'string' && empty($perforValue)) { ?> 526 <div class="scan-summry-detail-list"> 527 <div class="scan-summry-detail-list-header"> 528 <span class="scan-detailes-list-icon <?= getIconColor(0) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 529 <h4><?= ucfirst(str_replace('_', ' ', $pgStKey)) ?></h4> 530 <p> <?= $site_url ?> and <?= str_contains(parse_url($site_url)['host'], 'www') ? "https://" . parse_url($site_url)['host'] : 'https://www.' . parse_url($site_url)['host']; ?> should resolve to the same URL, but currently do not.</p> 531 </div> 532 </div> 533 <?php } else { 534 $score = @$perforValue->score; 535 if (($score < 0.5 && $score >= 0)) : ?> 536 <div class="scan-summry-detail-list"> 537 <div class="scan-summry-detail-list-header"> 538 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 539 <h4> <?= htmlentities($perforValue->title) ?></h4> 540 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 541 <?= formatTextWithLinks($perforValue->description) ?></p> 542 </div> 543 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 544 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 545 546 </a> 547 <div class="mvbsbContentBox"> 548 <?= @$metricsxData[$perforValue->id]; ?> 549 </div> 550 </div> 551 <?php endif; 552 } 553 endforeach; ?> 554 <?php endif; 555 if (isset($recommendedData['accessibility']) && count($recommendedData['accessibility']) > 0) : 556 foreach ($recommendedData['accessibility'] as $accKey => $perforValue) : ?> 557 <div class="scan-summry-detail-list"> 558 <?php if (gettype($accKey) == 'string' && empty($perforValue)) : ?> 559 <div class="scan-summry-detail-list-header"> 560 <span class="scan-detailes-list-icon <?= getIconColor(0) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 561 <h4><?= ucfirst(str_replace('_', ' ', $accKey)) ?></h4> 562 <p>This webpage is Not using a viewport meta tag.</p> 563 </div> 564 <?php else : 565 if (isset($perforValue->score) && ($perforValue->score < 0.5 && $perforValue->score >= 0)) : ?> 566 <div class="scan-summry-detail-list-header"> 567 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 568 <h4> <?= htmlentities($perforValue->title) ?></h4> 569 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 570 <?= formatTextWithLinks($perforValue->description) ?></p> 571 </div> 572 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 573 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 574 575 </a> 576 <div class="mvbsbContentBox"> 577 <?= @$metricsxData[$perforValue->id]; ?> 578 </div> 579 <?php endif; ?> 580 <?php endif; ?> 554 581 </div> 555 <?php else : 556 if (isset($perforValue->score) && ($perforValue->score < 0.5 && $perforValue->score >= 0)) : ?> 582 <?php endforeach; ?> 583 <?php endif; ?> 584 <?php if ($failedPerformance == 0) : ?> 585 <p class="not-found ">No records found.</p> 586 <?php endif; ?> 587 <div class="web-vitals-outer"> 588 <h2>Web Vitals</h2> 589 <div class="web-vitals"> 590 591 <?= getMetricDataForPerf($data); ?> 592 </div> 593 </div> 594 595 </div> 596 <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab"> 597 598 <?php 599 if (isset($recommendedData['performance']) && count($recommendedData['performance']) > 0) : 600 foreach ($recommendedData['performance'] as $perforValue) : 601 $score = @$perforValue->score; 602 if (($score < 0.9 && $score >= 0.5)) : ?> 603 <div class="scan-summry-detail-list"> 604 <div class="scan-summry-detail-list-header"> 605 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"> 606 <!-- <img src="<? //php echo esc_html(UPKPR_UPKEPR_WS_PATH1); 607 ?>images/critical-icon.png"> --> 608 <i class="fa-solid fa-exclamation"></i> 609 </span> 610 <h4> <?= htmlentities($perforValue->title) ?></h4> 611 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 612 <?= formatTextWithLinks($perforValue->description) ?></p> 613 </div> 614 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 615 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 616 617 </a> 618 <div class="mvbsbContentBox"> 619 <?= @$metricsxData[$perforValue->id]; ?> 620 </div> 621 </div> 622 <?php endif; 623 endforeach; 624 endif; ?> 625 <?php 626 if (isset($recommendedData['page_structure']) && count($recommendedData['page_structure']) > 0) : 627 foreach ($recommendedData['page_structure'] as $perforValue) : 628 $score = @$perforValue->score; 629 if (($score < 0.9 && $score >= 0.5)) : ?> 630 <div class="scan-summry-detail-list"> 631 <div class="scan-summry-detail-list-header"> 632 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 633 <h4> <?= htmlentities($perforValue->title) ?></h4> 634 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 635 <?= formatTextWithLinks($perforValue->description) ?></p> 636 </div> 637 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 638 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 639 640 </a> 641 <div class="mvbsbContentBox"> 642 <?= @$metricsxData[$perforValue->id]; ?> 643 </div> 644 </div> 645 <?php endif; 646 endforeach; 647 endif; ?> 648 <?php 649 if (isset($recommendedData['accessibility']) && count($recommendedData['accessibility']) > 0) : 650 foreach ($recommendedData['accessibility'] as $perforValue) : 651 $score = @$perforValue->score; 652 if (($score < 0.9 && $score >= 0.5)) : ?> 653 <div class="scan-summry-detail-list"> 654 <div class="scan-summry-detail-list-header"> 655 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 656 <h4> <?= htmlentities($perforValue->title) ?></h4> 657 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 658 <?= formatTextWithLinks($perforValue->description) ?></p> 659 </div> 660 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 661 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 662 663 </a> 664 <div class="mvbsbContentBox"> 665 <?= @$metricsxData[$perforValue->id]; ?> 666 </div> 667 </div> 668 <?php endif; 669 endforeach; 670 endif; ?> 671 <?php if ($warningPerformance == 0): ?> 672 <p class="not-found ">No records found.</p> 673 <?php endif; ?> 674 </div> 675 <div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab"> 676 677 678 </div> 679 </div> 680 </div> 681 682 <div class="section scan-summry-main-seo tab-pane fade" id="scans-summry2" role="tabpanel" aria-labelledby="scans-summry-tab2" tabindex="0"> 683 <div class="health-report-banner-header"> 684 <div class="health-report-header-left"> 685 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/meter.png" alt="meter"> 686 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">SEO Details</h2> 687 </div> 688 <div class="scan-summry-details-tabs"> 689 <ul class="nav nav-pills" id="pills-tab" role="tablist"> 690 <li class="nav-item" role="presentation"> 691 <button class="nav-link active" id="pills-home-tab1" data-bs-toggle="pill" data-bs-target="#pills-home1" type="button" role="tab" aria-controls="pills-home1" aria-selected="true"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab1.png">Critical Issues <span>(<?= isset($failedPerformanceSeo) ? $failedPerformanceSeo : '' ?>)</span></button> 692 </li> 693 <li class="nav-item" role="presentation"> 694 <button class="nav-link" id="pills-profile-tab2" data-bs-toggle="pill" data-bs-target="#pills-profile2" type="button" role="tab" aria-controls="pills-profile2" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab2.png">Need Improvement <span>(<?= isset($warningPerformanceSeo) ? $warningPerformanceSeo : '' ?>)</span></button> 695 </li> 696 <!-- <li class="nav-item" role="presentation"> 697 <button class="nav-link" id="pills-contact-tab3" data-bs-toggle="pill" data-bs-target="#pills-contact3" type="button" role="tab" aria-controls="pills-contact3" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab3.png">Good <span>(<?= isset($passedSeo) ? $passedSeo : '' ?>)</span></button> 698 </li> --> 699 </ul> 700 </div> 701 </div> 702 <div class="scan-summry-tab-details" id="pills-tabContent"> 703 <div class="tab-pane fade show active" id="pills-home1" role="tabpanel" aria-labelledby="pills-home-tab"> 704 <?php 705 if (isset($recommendedData['seo']) /* && count($recommendedData['seo']) > 0 */) : 706 foreach ($recommendedData['seo'] as $perforValue) : ?> 707 <div class="scan-summry-detail-list"> 557 708 <div class="scan-summry-detail-list-header"> 558 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span>709 <span class="scan-detailes-list-icon"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 559 710 <h4> <?= htmlentities($perforValue->title) ?></h4> 560 711 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> … … 562 713 </div> 563 714 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 564 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 565 566 </a> 567 <div class="mvbsbContentBox"> 568 <?= @$metricsxData[$perforValue->id]; ?> 569 </div> 570 <?php endif;?> 571 <?php endif; ?> 572 </div> 573 <?php endforeach; ?> 574 <?php endif; ?> 575 <?php if ($failedPerformance == 0) :?> 576 <p class="not-found ">No records found.</p> 577 <?php endif; ?> 578 <div class="web-vitals-outer"> 579 <h2>Web Vitals</h2> 580 <div class="web-vitals"> 581 582 <?= getMetricDataForPerf($data); ?> 583 </div> 584 </div> 585 586 </div> 587 <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab"> 588 589 <?php 590 if (isset($recommendedData['performance']) && count($recommendedData['performance']) > 0) : 591 foreach ($recommendedData['performance'] as $perforValue) : 592 $score = @$perforValue->score; 593 if (($score < 0.9 && $score >= 0.5)) : ?> 594 <div class="scan-summry-detail-list"> 595 <div class="scan-summry-detail-list-header"> 596 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"> 597 <!-- <img src="<?//php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"> --> 598 <i class="fa-solid fa-exclamation"></i> 599 </span> 600 <h4> <?= htmlentities($perforValue->title) ?></h4> 601 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 602 <?= formatTextWithLinks($perforValue->description) ?></p> 603 </div> 604 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 605 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 606 607 </a> 715 <!-- <a href="javascript:void(0)" class="see-full-list hiderow-button-click">See Full List <i class="fa-solid fa-arrow-up-right-from-square"></i></a> --> 716 <a href="javascript:void(0)" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i></a> 608 717 <div class="mvbsbContentBox"> 609 718 <?= @$metricsxData[$perforValue->id]; ?> 610 719 </div> 611 720 </div> 612 <?php endif; 613 endforeach; 614 endif; ?> 615 <?php 616 if (isset($recommendedData['page_structure']) && count($recommendedData['page_structure']) > 0) : 617 foreach ($recommendedData['page_structure'] as $perforValue) : 618 $score = @$perforValue->score; 619 if (($score < 0.9 && $score >= 0.5)) : ?> 620 <div class="scan-summry-detail-list"> 621 <div class="scan-summry-detail-list-header"> 622 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 623 <h4> <?= htmlentities($perforValue->title) ?></h4> 624 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 625 <?= formatTextWithLinks($perforValue->description) ?></p> 626 </div> 627 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 628 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 629 630 </a> 631 <div class="mvbsbContentBox"> 632 <?= @$metricsxData[$perforValue->id]; ?> 633 </div> 634 </div> 635 <?php endif; 636 endforeach; 637 endif; ?> 638 <?php 639 if (isset($recommendedData['accessibility']) && count($recommendedData['accessibility']) > 0) : 640 foreach ($recommendedData['accessibility'] as $perforValue) : 641 $score = @$perforValue->score; 642 if (($score < 0.9 && $score >= 0.5)) : ?> 643 <div class="scan-summry-detail-list"> 644 <div class="scan-summry-detail-list-header"> 645 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 646 <h4> <?= htmlentities($perforValue->title) ?></h4> 647 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 648 <?= formatTextWithLinks($perforValue->description) ?></p> 649 </div> 650 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 651 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i> 652 653 </a> 654 <div class="mvbsbContentBox"> 655 <?= @$metricsxData[$perforValue->id]; ?> 656 </div> 657 </div> 658 <?php endif; 659 endforeach; 660 endif; ?> 661 <?php if($warningPerformance == 0):?> 662 <p class="not-found ">No records found.</p> 663 <?php endif; ?> 664 </div> 665 <div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab"> 666 667 668 </div> 669 </div> 670 </div> 671 672 <div class="tab-pane fade" id="scans-summry2" role="tabpanel" aria-labelledby="scans-summry-tab2" tabindex="0"> 673 <div class="health-report-banner-header"> 674 <div class="health-report-header-left"> 675 <img class="site-logo" src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/meter.png" alt="meter"> 676 <h2 class="how-upkepr-protect-wordpress-websites outfit-bold-white-32px">SEO Details</h2> 677 </div> 678 <div class="scan-summry-details-tabs"> 679 <ul class="nav nav-pills" id="pills-tab" role="tablist"> 680 <li class="nav-item" role="presentation"> 681 <button class="nav-link active" id="pills-home-tab1" data-bs-toggle="pill" data-bs-target="#pills-home1" type="button" role="tab" aria-controls="pills-home1" aria-selected="true"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab1.png">Critical Issues <span>(<?= isset($failedPerformanceSeo) ? $failedPerformanceSeo : '' ?>)</span></button> 682 </li> 683 <li class="nav-item" role="presentation"> 684 <button class="nav-link" id="pills-profile-tab2" data-bs-toggle="pill" data-bs-target="#pills-profile2" type="button" role="tab" aria-controls="pills-profile2" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab2.png">Need Improvement <span>(<?= isset($warningPerformanceSeo) ? $warningPerformanceSeo : '' ?>)</span></button> 685 </li> 686 <li class="nav-item" role="presentation"> 687 <button class="nav-link" id="pills-contact-tab3" data-bs-toggle="pill" data-bs-target="#pills-contact3" type="button" role="tab" aria-controls="pills-contact3" aria-selected="false"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/scan-detail-tab3.png">Good <span>(<?= isset($passedSeo) ? $passedSeo : '' ?>)</span></button> 688 </li> 689 </ul> 690 </div> 691 </div> 692 <div class="scan-summry-tab-details" id="pills-tabContent"> 693 <div class="tab-pane fade show active" id="pills-home1" role="tabpanel" aria-labelledby="pills-home-tab"> 694 <?php 695 if (isset($recommendedData['seo']) /* && count($recommendedData['seo']) > 0 */) : 696 foreach ($recommendedData['seo'] as $perforValue) : ?> 697 <div class="scan-summry-detail-list"> 698 <div class="scan-summry-detail-list-header"> 699 <span class="scan-detailes-list-icon"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 700 <h4> <?= htmlentities($perforValue->title) ?></h4> 701 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 702 <?= formatTextWithLinks($perforValue->description) ?></p> 703 </div> 704 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 705 <!-- <a href="javascript:void(0)" class="see-full-list hiderow-button-click">See Full List <i class="fa-solid fa-arrow-up-right-from-square"></i></a> --> 706 <a href="javascript:void(0)" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i></a> 707 <div class="mvbsbContentBox"> 708 <?= @$metricsxData[$perforValue->id]; ?> 709 </div> 710 </div> 711 <?php endforeach; ?> 712 <?php foreach ($seodAdvanceDataWithPackage as $seoKey => $seoValue) : 713 if (in_array($seoKey, $scraperErrors)) : 714 715 ?> 716 <div class="scan-summry-detail-list"> 717 <div class="scan-summry-detail-list-header"> 718 <span class=" scan-detailes-list-icon tbliIcon <?= !in_array($seoKey, $scraperErrors) ? 'tbliIconGreen' : 'tbliIconRed'; ?> me-2"> 719 <!-- <i class="fa-solid fa-<?//= !in_array($seoKey, $scraperErrors) ? 'check' : 'exclamation'; ?>"></i> --> 720 <?php if(!in_array($seoKey, $scraperErrors)):?> 721 <?php endif;?> 721 <?php endforeach; ?> 722 <?php foreach ($seodAdvanceDataWithPackage as $seoKey => $seoValue) : 723 if (in_array($seoKey, $scraperErrors)) : 724 725 ?> 726 <div class="scan-summry-detail-list"> 727 <div class="scan-summry-detail-list-header"> 728 <span class=" scan-detailes-list-icon tbliIcon <?= !in_array($seoKey, $scraperErrors) ? 'tbliIconGreen' : 'tbliIconRed'; ?> me-2"> 729 <!-- <i class="fa-solid fa-<? //= !in_array($seoKey, $scraperErrors) ? 'check' : 'exclamation'; 730 ?>"></i> --> 731 <?php if (!in_array($seoKey, $scraperErrors)): ?> 732 <?php endif; ?> 722 733 <img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"> 723 </span> 724 <h4> <?= str_replace('_', ' ', $seoKey) ?> </h4> 725 </div> 726 <?php if ($seoValue && is_array($seoValue)) : ?> 727 <?php if ($seoKey == 'Heading_Tags') : ?> 728 <p>This webpage contains headings tags</p> 729 <div class="mcbBlockText mcbBlockGreen"> 730 <div class="row"> 731 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 732 <div class="cstm-tab-content col-6"> 733 <table class="table table table-striped"> 734 <thead class="social-table-containe"> 735 <th><?= $Hkey ?> 736 <hr> 737 </th> 738 </thead> 739 <?php if(count($HseodAdvanceData) > 0):?> 740 <tbody> 741 <tr> 742 <td><?= implode("<br> \n", $HseodAdvanceData) ?></td> 743 </tr> 744 </tbody> 745 <?php else: ?> 746 <tbody> 747 <tr> 748 <td>Missing tag</td> 749 </tr> 750 </tbody> 751 <?php endif; ?> 752 </table> 753 </div> 754 <?php } ?> 755 </div> 756 </div> 757 <!-- Social media seo --> 758 <?php elseif ($seoKey == 'Social_Media_Meta_Tags') : ?> 759 <?php if (!empty($seoValue['social']) || !empty($seoValue['twitter'])) : ?> 760 <p>This webpage is using social media meta tags.</p> 761 762 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 763 <header class="social-table-containe"> 764 <strong><?= ($Hkey == 'social') ? 'Open Graph Meta Tags' : 'Twitter Card Meta Tags'; ?></strong> 765 </header> 766 <div class="mcbBlockText mcbBlockGrey"> 767 <div class="cstm-tab-content table-responsive"> 768 <table class="table table table-striped "> 769 <tbody> 770 <?php foreach ($HseodAdvanceData as $keyM => $Mvalue) { ?> 771 <tr> 772 <td><?= $keyM ?></td> 773 <td><?= $Mvalue ?></td> 774 </tr> 775 <?php } ?> 776 </tbody> 777 </table> 778 </div> 779 </div> 780 <?php } ?> 781 <?php else : ?> 782 <p>This webpage is not using social media meta tags! While this type of meta tags don't affect what 783 people see when they visit the webpage, they exist to provide information about it to search engines 784 and social media platforms.</p> 785 <?php endif; ?> 786 <?php elseif ($seoKey == 'Social_Media') : ?> 787 <?php if (empty($seoValue['Facebook']) || empty($seoValue['twitter'])) : ?> 788 <p>This webpage is using social media meta tags.</p> 789 <?php else : ?> 790 <p>This webpage is not connected with social media using the API's provided by Facebook, Gmail, Twitter, Pinterest, or using.</p> 791 <?php endif; ?> 792 <?php elseif ($seoKey == 'Image_Alt') : ?> 793 <?php if ((count($seoValue) > 0)) : ?> 794 <p>This webpage is using "img" tags with empty or missing "alt" attribute!</p> 795 <div class="mcbBlockText mcbBlockRed"> 796 <?php foreach ($seoValue as $key => $value) { 797 echo $value->url . '<br>'; 798 } ?> 799 </div> 800 <?php else : ?> 801 <p>This webpage is using "img" tags with "alt" attribute!</p> 802 <?php endif; ?> 803 <?php endif; ?> 804 <?php elseif ($seoKey == 'Meta_Description') : ?> 805 <?php if (!empty($seoValue)) : ?> 806 This webpage is using a meta description tag. 807 <div class="mcbBlockText mcbBlockGreen"> 808 <div><strong>Text : </strong> <?= $seoValue ?></div> 809 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 810 </div> 811 <?php else : ?> 812 <p>This webpage is not using a description meta tag.</p><br> 813 <?php endif; ?> 814 <?php elseif ($seoKey == 'Charset_Declaration') : ?> 815 <?php if (!empty($seoValue)) : ?> 816 <p> This webpage has a character encoding declaration. </p> 817 <div class="mcbBlockText mcbBlockGreen"> 818 <?= htmlspecialchars('Content-Type: text/html; charset=UTF-8') ?> 819 </div> 820 <?php else : ?> 821 <p> This webpage has not a character encoding declaration. </p> 822 <?php endif; ?> 823 824 <?php elseif ($seoKey == 'Meta_Viewport') : ?> 825 <?php if (!empty($seoValue)) : ?> 826 <p>This webpage is using a viewport meta tag.</p> 827 <div class="mcbBlockText mcbBlockGreen"> 828 <?= htmlspecialchars('<meta name="viewport" content="' . $seoValue . '" />') ?> 829 </div> 830 <?php else : ?> 831 <p>This webpage is Not using a viewport meta tag.</p> 832 <?php endif; ?> 833 <?php elseif ($seoKey == 'Canonical_Tag') : ?> 834 <?php if (!empty($seoValue)) : ?> 835 <p>This webpage is using the canonical link tag. This tag specifies that the URL: <a><?= $seoValue ?></a> is preferred to be used in search results. Please ensure that this specification is correct, as canonical tags are often hard-coded and may not always reflect the latest changes in a site's URL structure.</p> 836 <div class="mcbBlockText mcbBlockGreen"> 837 <?= htmlspecialchars('<link href="' . $seoValue . '" rel="canonical"/>') ?> 838 </div> 839 <?php else : ?> 840 <p>This webpage does not use the canonical link tag.</p> 841 <?php endif; ?> 842 843 <?php elseif ($seoKey == 'Meta_Title') : ?> 844 <?php if (!empty($seoValue)) : ?> 845 <p> This webpage is using a title tag with a length of <strong><?= strlen($seoValue) ?> characters</strong>. 846 While there's no target number of characters, titles should be descriptive and concise. 847 We recommend using a title with a length <strong>between 20 - 60 characters</strong> 848 in order to fit Google Search results that have a 600-pixel limit.</p> 849 <div class="mcbBlockText mcbBlockGreen"> 850 <div><strong>Text : </strong> <?= $seoValue ?></div> 851 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 852 </div> 853 <?php else : ?> 854 <p>This webpage is not using a title meta tag.</p><br> 855 <?php endif; ?> 856 <?php endif; ?> 857 858 </div> 859 <?php endif; 860 endforeach; ?> 861 <?php else : ?> 862 <p class="not-found ">No records found.</p> 863 <?php endif; ?> 864 865 866 867 </div> 868 <div class="tab-pane fade" id="pills-profile2" role="tabpanel" aria-labelledby="pills-profile-tab"> 869 <?php 870 if (isset($warningPerformanceSeo) && $warningPerformanceSeo != 0) : 871 foreach ($recommendedData['seo'] as $perforValue) : 872 if (($perforValue->score < 0.9 && $perforValue->score >= 0.5)) : 873 ?> 874 <div class="scan-summry-detail-list"> 875 <div class="scan-summry-detail-list-header"> 876 <span class="scan-detailes-list-icon"> 877 <!-- <img src="<?//php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"> --> 878 </span> 879 <h4> <?= htmlentities($perforValue->title) ?></h4> 880 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 881 <?= formatTextWithLinks($perforValue->description) ?></p> 882 </div> 883 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 884 <!-- <a href="javascript:void(0);" class="see-full-list ">See Full List <i class="fa-solid fa-arrow-up-right-from-square"></i></a> --> 885 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i></a> 886 <div class="mvbsbContentBox"> 887 <?= @$metricsxData[$perforValue->id]; ?> 888 </div> 889 </div> 890 <?php endif; 891 endforeach; 892 else : 893 ?> 894 <p class="not-found ">No records found.</p> 895 <?php endif; ?> 896 </div> 897 <div class="tab-pane fade" id="pills-contact3" role="tabpanel" aria-labelledby="pills-contact-tab"> 898 <?php 899 if (isset($recommendedData['seo']) /* && count($recommendedData['seo']) > 0 */) : 900 if (isset($passedSeoArray) && count($passedSeoArray) > 0) : 901 foreach ($passedSeoArray as $pkey => $perforValue) : 902 $score = $perforValue->score; 903 ?> 904 <div class="scan-summry-detail-list"> 905 <div class="scan-summry-detail-list-header"> 906 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 907 <h4> <?= htmlentities($perforValue->title) ?></h4> 908 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 909 <?= formatTextWithLinks($perforValue->description) ?></p> 910 </div> 911 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 912 <a href="#" class="primary-btn">How to fix <i class="fas fa-chevron-down"></i> 913 914 </a> 915 <div class="mvbsbContentBox"> 916 <?= @$metricsxData[$perforValue->id]; ?> 917 </div> 918 </div> 919 <?php 920 endforeach; ?> 921 922 <?php else : ?> 923 <!-- <p class="not-found ">No records found.</p> --> 924 <?php endif; 925 foreach ($seodAdvanceDataWithPackage as $seoKey => $seoValue) : 926 if (!in_array($seoKey, $scraperErrors)) : 927 928 ?> 929 <div class="scan-summry-detail-list"> 930 <div class="scan-summry-detail-list-header"> 931 <span class=" scan-detailes-list-icon tbliIcon <?= !in_array($seoKey, $scraperErrors) ? 'tbliIconGreen' : 'tbliIconRed'; ?> me-2"> 932 <i class="fa-solid fa-<?= !in_array($seoKey, $scraperErrors) ? 'check' : 'exclamation'; ?>"></i></span> 933 <h4> <?= str_replace('_', ' ', $seoKey) ?> </h4> 934 </div> 935 <div class="scan-summry-detail-list-header"> 734 </span> 735 <h4> <?= str_replace('_', ' ', $seoKey) ?> </h4> 736 </div> 936 737 <?php if ($seoValue && is_array($seoValue)) : ?> 937 738 <?php if ($seoKey == 'Heading_Tags') : ?> 938 739 <p>This webpage contains headings tags</p> 939 <p> 940 <div class="row"> 941 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 942 <div class="cstm-tab-content col-6"> 943 <table class="table table table-striped"> 944 <thead class="social-table-containe"> 945 <th><?= $Hkey ?> 946 <hr> 947 </th> 948 </thead> 949 <tbody> 950 <tr> 951 <td><?= implode("<br> \n", $HseodAdvanceData) ?></td> 952 </tr> 953 </tbody> 954 </table> 955 </div> 956 <?php } ?> 740 <div class="mcbBlockText mcbBlockGreen"> 741 <div class="row"> 742 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 743 <div class="cstm-tab-content col-6"> 744 <table class="table table table-striped"> 745 <thead class="social-table-containe"> 746 <th><?= $Hkey ?> 747 <hr> 748 </th> 749 </thead> 750 <?php if (count($HseodAdvanceData) > 0): ?> 751 <tbody> 752 <tr> 753 <td><?= implode("<br> \n", $HseodAdvanceData) ?></td> 754 </tr> 755 </tbody> 756 <?php else: ?> 757 <tbody> 758 <tr> 759 <td>Missing tag</td> 760 </tr> 761 </tbody> 762 <?php endif; ?> 763 </table> 764 </div> 765 <?php } ?> 766 </div> 957 767 </div> 958 </p>959 768 <!-- Social media seo --> 960 769 <?php elseif ($seoKey == 'Social_Media_Meta_Tags') : ?> … … 995 804 <?php if ((count($seoValue) > 0)) : ?> 996 805 <p>This webpage is using "img" tags with empty or missing "alt" attribute!</p> 997 < p>806 <div class="mcbBlockText mcbBlockRed"> 998 807 <?php foreach ($seoValue as $key => $value) { 999 echo $value ['url']. '<br>';808 echo $value->url . '<br>'; 1000 809 } ?> 1001 </ p>810 </div> 1002 811 <?php else : ?> 1003 812 <p>This webpage is using "img" tags with "alt" attribute!</p> … … 1006 815 <?php elseif ($seoKey == 'Meta_Description') : ?> 1007 816 <?php if (!empty($seoValue)) : ?> 1008 <p> This webpage is using a meta description tag. </p>1009 < p>1010 <div><strong>Text : </strong> <?= $seoValue ?></div>1011 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div>1012 </ p>817 This webpage is using a meta description tag. 818 <div class="mcbBlockText mcbBlockGreen"> 819 <div><strong>Text : </strong> <?= $seoValue ?></div> 820 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 821 </div> 1013 822 <?php else : ?> 1014 823 <p>This webpage is not using a description meta tag.</p><br> … … 1017 826 <?php if (!empty($seoValue)) : ?> 1018 827 <p> This webpage has a character encoding declaration. </p> 1019 < p>828 <div class="mcbBlockText mcbBlockGreen"> 1020 829 <?= htmlspecialchars('Content-Type: text/html; charset=UTF-8') ?> 1021 </ p>830 </div> 1022 831 <?php else : ?> 1023 832 <p> This webpage has not a character encoding declaration. </p> … … 1027 836 <?php if (!empty($seoValue)) : ?> 1028 837 <p>This webpage is using a viewport meta tag.</p> 1029 < p>838 <div class="mcbBlockText mcbBlockGreen"> 1030 839 <?= htmlspecialchars('<meta name="viewport" content="' . $seoValue . '" />') ?> 1031 </ p>840 </div> 1032 841 <?php else : ?> 1033 842 <p>This webpage is Not using a viewport meta tag.</p> … … 1036 845 <?php if (!empty($seoValue)) : ?> 1037 846 <p>This webpage is using the canonical link tag. This tag specifies that the URL: <a><?= $seoValue ?></a> is preferred to be used in search results. Please ensure that this specification is correct, as canonical tags are often hard-coded and may not always reflect the latest changes in a site's URL structure.</p> 1038 < p>847 <div class="mcbBlockText mcbBlockGreen"> 1039 848 <?= htmlspecialchars('<link href="' . $seoValue . '" rel="canonical"/>') ?> 1040 </ p>849 </div> 1041 850 <?php else : ?> 1042 851 <p>This webpage does not use the canonical link tag.</p> … … 1049 858 We recommend using a title with a length <strong>between 20 - 60 characters</strong> 1050 859 in order to fit Google Search results that have a 600-pixel limit.</p> 1051 < p>1052 <div><strong>Text : </strong> <?= $seoValue ?></div>1053 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div>1054 </ p>860 <div class="mcbBlockText mcbBlockGreen"> 861 <div><strong>Text : </strong> <?= $seoValue ?></div> 862 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 863 </div> 1055 864 <?php else : ?> 1056 865 <p>This webpage is not using a title meta tag.</p><br> … … 1058 867 <?php endif; ?> 1059 868 1060 <?php if (in_array($seoKey, $scraperErrors)) : ?> 1061 <!-- <div class="mcbSuggestionBox"> 869 </div> 870 <?php endif; 871 endforeach; ?> 872 <?php else : ?> 873 <p class="not-found ">No records found.</p> 874 <?php endif; ?> 875 876 877 878 </div> 879 <div class="tab-pane fade" id="pills-profile2" role="tabpanel" aria-labelledby="pills-profile-tab"> 880 <?php 881 if (isset($warningPerformanceSeo) && $warningPerformanceSeo != 0) : 882 foreach ($recommendedData['seo'] as $perforValue) : 883 if (($perforValue->score < 0.9 && $perforValue->score >= 0.5)) : 884 ?> 885 <div class="scan-summry-detail-list"> 886 <div class="scan-summry-detail-list-header"> 887 <span class="scan-detailes-list-icon"> 888 <!-- <img src="<? //php echo esc_html(UPKPR_UPKEPR_WS_PATH1); 889 ?>images/critical-icon.png"> --> 890 </span> 891 <h4> <?= htmlentities($perforValue->title) ?></h4> 892 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 893 <?= formatTextWithLinks($perforValue->description) ?></p> 894 </div> 895 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 896 <!-- <a href="javascript:void(0);" class="see-full-list ">See Full List <i class="fa-solid fa-arrow-up-right-from-square"></i></a> --> 897 <a href="javascript:void(0);" class="primary-btn howToFix">How to fix <i class="fas fa-chevron-down"></i></a> 898 <div class="mvbsbContentBox"> 899 <?= @$metricsxData[$perforValue->id]; ?> 900 </div> 901 </div> 902 <?php endif; 903 endforeach; 904 else : 905 ?> 906 <p class="not-found ">No records found.</p> 907 <?php endif; ?> 908 </div> 909 <div class="tab-pane fade" id="pills-contact3" role="tabpanel" aria-labelledby="pills-contact-tab"> 910 <?php 911 if (isset($recommendedData['seo']) /* && count($recommendedData['seo']) > 0 */) : 912 if (isset($passedSeoArray) && count($passedSeoArray) > 0) : 913 foreach ($passedSeoArray as $pkey => $perforValue) : 914 $score = $perforValue->score; 915 ?> 916 <div class="scan-summry-detail-list"> 917 <div class="scan-summry-detail-list-header"> 918 <span class="scan-detailes-list-icon <?= getIconColor($perforValue->score) ?>"><img src="<?php echo esc_html(UPKPR_UPKEPR_WS_PATH1); ?>images/critical-icon.png"></span> 919 <h4> <?= htmlentities($perforValue->title) ?></h4> 920 <p> <?= htmlspecialchars($perforValue->title) . ' <strong>' . @$perforValue->displayValue . '</strong>' ?> 921 <?= formatTextWithLinks($perforValue->description) ?></p> 922 </div> 923 <?= getAuditsdetailsItems($perforValue, $site_url) ?> 924 <a href="#" class="primary-btn">How to fix <i class="fas fa-chevron-down"></i> 925 926 </a> 927 <div class="mvbsbContentBox"> 928 <?= @$metricsxData[$perforValue->id]; ?> 929 </div> 930 </div> 931 <?php 932 endforeach; ?> 933 934 <?php else : ?> 935 <!-- <p class="not-found ">No records found.</p> --> 936 <?php endif; 937 foreach ($seodAdvanceDataWithPackage as $seoKey => $seoValue) : 938 if (!in_array($seoKey, $scraperErrors)) : 939 940 ?> 941 <div class="scan-summry-detail-list"> 942 <div class="scan-summry-detail-list-header"> 943 <span class=" scan-detailes-list-icon tbliIcon <?= !in_array($seoKey, $scraperErrors) ? 'tbliIconGreen' : 'tbliIconRed'; ?> me-2"> 944 <i class="fa-solid fa-<?= !in_array($seoKey, $scraperErrors) ? 'check' : 'exclamation'; ?>"></i></span> 945 <h4> <?= str_replace('_', ' ', $seoKey) ?> </h4> 946 </div> 947 <div class="scan-summry-detail-list-header"> 948 <?php if ($seoValue && is_array($seoValue)) : ?> 949 <?php if ($seoKey == 'Heading_Tags') : ?> 950 <p>This webpage contains headings tags</p> 951 <p> 952 <div class="row"> 953 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 954 <div class="cstm-tab-content col-6"> 955 <table class="table table table-striped"> 956 <thead class="social-table-containe"> 957 <th><?= $Hkey ?> 958 <hr> 959 </th> 960 </thead> 961 <tbody> 962 <tr> 963 <td><?= implode("<br> \n", $HseodAdvanceData) ?></td> 964 </tr> 965 </tbody> 966 </table> 967 </div> 968 <?php } ?> 969 </div> 970 </p> 971 <!-- Social media seo --> 972 <?php elseif ($seoKey == 'Social_Media_Meta_Tags') : ?> 973 <?php if (!empty($seoValue['social']) || !empty($seoValue['twitter'])) : ?> 974 <p>This webpage is using social media meta tags.</p> 975 976 <?php foreach ($seoValue as $Hkey => $HseodAdvanceData) { ?> 977 <header class="social-table-containe"> 978 <strong><?= ($Hkey == 'social') ? 'Open Graph Meta Tags' : 'Twitter Card Meta Tags'; ?></strong> 979 </header> 980 <div class="mcbBlockText mcbBlockGrey"> 981 <div class="cstm-tab-content table-responsive"> 982 <table class="table table table-striped "> 983 <tbody> 984 <?php foreach ($HseodAdvanceData as $keyM => $Mvalue) { ?> 985 <tr> 986 <td><?= $keyM ?></td> 987 <td><?= $Mvalue ?></td> 988 </tr> 989 <?php } ?> 990 </tbody> 991 </table> 992 </div> 993 </div> 994 <?php } ?> 995 <?php else : ?> 996 <p>This webpage is not using social media meta tags! While this type of meta tags don't affect what 997 people see when they visit the webpage, they exist to provide information about it to search engines 998 and social media platforms.</p> 999 <?php endif; ?> 1000 <?php elseif ($seoKey == 'Social_Media') : ?> 1001 <?php if (empty($seoValue['Facebook']) || empty($seoValue['twitter'])) : ?> 1002 <p>This webpage is using social media meta tags.</p> 1003 <?php else : ?> 1004 <p>This webpage is not connected with social media using the API's provided by Facebook, Gmail, Twitter, Pinterest, or using.</p> 1005 <?php endif; ?> 1006 <?php elseif ($seoKey == 'Image_Alt') : ?> 1007 <?php if ((count($seoValue) > 0)) : ?> 1008 <p>This webpage is using "img" tags with empty or missing "alt" attribute!</p> 1009 <p> 1010 <?php foreach ($seoValue as $key => $value) { 1011 echo $value['url'] . '<br>'; 1012 } ?> 1013 </p> 1014 <?php else : ?> 1015 <p>This webpage is using "img" tags with "alt" attribute!</p> 1016 <?php endif; ?> 1017 <?php endif; ?> 1018 <?php elseif ($seoKey == 'Meta_Description') : ?> 1019 <?php if (!empty($seoValue)) : ?> 1020 <p> This webpage is using a meta description tag. </p> 1021 <p> 1022 <div><strong>Text : </strong> <?= $seoValue ?></div> 1023 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 1024 </p> 1025 <?php else : ?> 1026 <p>This webpage is not using a description meta tag.</p><br> 1027 <?php endif; ?> 1028 <?php elseif ($seoKey == 'Charset_Declaration') : ?> 1029 <?php if (!empty($seoValue)) : ?> 1030 <p> This webpage has a character encoding declaration. </p> 1031 <p> 1032 <?= htmlspecialchars('Content-Type: text/html; charset=UTF-8') ?> 1033 </p> 1034 <?php else : ?> 1035 <p> This webpage has not a character encoding declaration. </p> 1036 <?php endif; ?> 1037 1038 <?php elseif ($seoKey == 'Meta_Viewport') : ?> 1039 <?php if (!empty($seoValue)) : ?> 1040 <p>This webpage is using a viewport meta tag.</p> 1041 <p> 1042 <?= htmlspecialchars('<meta name="viewport" content="' . $seoValue . '" />') ?> 1043 </p> 1044 <?php else : ?> 1045 <p>This webpage is Not using a viewport meta tag.</p> 1046 <?php endif; ?> 1047 <?php elseif ($seoKey == 'Canonical_Tag') : ?> 1048 <?php if (!empty($seoValue)) : ?> 1049 <p>This webpage is using the canonical link tag. This tag specifies that the URL: <a><?= $seoValue ?></a> is preferred to be used in search results. Please ensure that this specification is correct, as canonical tags are often hard-coded and may not always reflect the latest changes in a site's URL structure.</p> 1050 <p> 1051 <?= htmlspecialchars('<link href="' . $seoValue . '" rel="canonical"/>') ?> 1052 </p> 1053 <?php else : ?> 1054 <p>This webpage does not use the canonical link tag.</p> 1055 <?php endif; ?> 1056 1057 <?php elseif ($seoKey == 'Meta_Title') : ?> 1058 <?php if (!empty($seoValue)) : ?> 1059 <p> This webpage is using a title tag with a length of <strong><?= strlen($seoValue) ?> characters</strong>. 1060 While there's no target number of characters, titles should be descriptive and concise. 1061 We recommend using a title with a length <strong>between 20 - 60 characters</strong> 1062 in order to fit Google Search results that have a 600-pixel limit.</p> 1063 <p> 1064 <div><strong>Text : </strong> <?= $seoValue ?></div> 1065 <div><strong>Length : </strong><?= strlen($seoValue) ?> characters</div> 1066 </p> 1067 <?php else : ?> 1068 <p>This webpage is not using a title meta tag.</p><br> 1069 <?php endif; ?> 1070 <?php endif; ?> 1071 1072 <?php if (in_array($seoKey, $scraperErrors)) : ?> 1073 <!-- <div class="mcbSuggestionBox"> 1062 1074 <button class="mvbsbButton"> 1063 1075 How to fix <i class="fa-solid fa-angle-up"></i> … … 1068 1080 </div> 1069 1081 </div> --> 1070 <?php endif; ?> 1082 <?php endif; ?> 1083 </div> 1071 1084 </div> 1072 </div>1073 <?php endif;1074 endforeach;?>1075 <?php else : ?>1076 < p class="not-found ">No records found.</p>1077 <?php endif; ?> 1078 1085 <?php endif; 1086 endforeach; ?> 1087 <?php else : ?> 1088 <p class="not-found ">No records found.</p> 1089 <?php endif; ?> 1090 1091 </div> 1079 1092 </div> 1080 1093 </div> 1081 </div> 1082 1094 1095 </div> 1083 1096 </div> 1084 1097 </div> 1085 </section> 1098 </div> 1099 </section> 1086 1100 <?php } ?> 1087 1101 <script> … … 1129 1143 }); 1130 1144 1131 jQuery('.howToFix').click(function(event) {1145 jQuery('.howToFix').click(function(event) { 1132 1146 jQuery(this).next('.mvbsbContentBox').toggle(); 1133 1147 jQuery(this).toggleClass('active'); … … 1150 1164 }); 1151 1165 }); 1166 updateLinkActiveOnScroll(); 1152 1167 }); 1153 1168 </script> -
upkepr-maintenance/trunk/vulnerability.php
r3142203 r3194918 16 16 * Plugin Name: Vulnerability Detector 17 17 * Description: "Vulnerability Detector" is a WordPress plugin that allows Upkepr applications to stay connected with the website. 18 * Version: 1.0. 518 * Version: 1.0.6 19 19 * Author: Upkepr 20 20 * Author URI: https://upkepr.com/ … … 35 35 36 36 define('UPKPR_MAINTENANCE_GET_DATA', 'https://app.upkepr.com'); 37 define('UPKPR_MAINTENANCE_URL', 'https://app.upkepr.com'); 37 38 38 39 define('UPKPR_VULNERABLITY_ENDPOINT', 'HcKseGp5xLz3opQrRA=='); … … 990 991 } 991 992 } else { 993 update_option('upkpr_vulnerability_' . strtolower($type), ''); 992 994 $response = json_encode(['type' => "404", 'status' => '0', 'message' => $responseData->error]); 993 995 } … … 998 1000 $response = json_encode(['type' => "404", 'status' => '0', 'message' => $responseData->error]); 999 1001 } 1002 update_option('upkpr_vulnerability_' . strtolower($type), ''); 1000 1003 } 1001 1004 } else { 1005 update_option('upkpr_vulnerability_' . strtolower($type), ''); 1002 1006 $response = json_encode(['type' => "404", 'status' => '0', 'message' => $responseData->get_error_message()]); 1003 1007 }
Note: See TracChangeset
for help on using the changeset viewer.