0
Validation results

Porto

Porto

WordPress 4.9.8 theme
0
Critical alerts
  1. Customizer : Sanitization of Customizer settings Found a Customizer setting that did not have a sanitization callback function in file extension_customizer.php. Every call to the add_setting() method needs to have a sanitization callback function passed.
  2. Title : Title The <title> tags can only contain a call to wp_title(). Use the wp_title filter to modify the output.The <title> tags can only contain a call to wp_title(). Use the wp_title filter to modify the output.
  3. Security breaches : Modification of PHP server settings Found ini_set in file save_settings.php.
    Line 140: @ini_set('max_execution_time', '10000');
    Line 141: @ini_set('memory_limit', '256M');
    Line 219: @ini_set('max_execution_time', '10000');
    Line 221: @ini_set('memory_limit', '256M');
    Line 265: @ini_set('max_execution_time', '10000');
    Line 267: @ini_set('memory_limit', '256M');
    Line 327: @ini_set('max_execution_time', '10000');
    Line 329: @ini_set('memory_limit', '256M');
    Found ini_set in file Parser.php.
    Line 94: @ini_set('mbstring.internal_encoding', 'ascii');
    Line 185: @ini_set('precision',16);
    Line 223: @ini_set('precision',$precision);
    Line 229: @ini_set('mbstring.internal_encoding', $this->mb_internal_encoding);
    Found ini_set in file setup_wizard.php.
    Line 1527: @ini_set('max_execution_time', '10000');
    Line 1528: @ini_set('memory_limit', '256M');
    Line 1637: @ini_set('max_execution_time', '10000');
    Line 1638: @ini_set('memory_limit', '256M');
    Line 1689: @ini_set('max_execution_time', '10000');
    Line 1690: @ini_set('memory_limit', '256M');
  4. Security breaches : Use of base64_decode() Found base64_decode in file admin.php.
    Line 106: $result = $this->curl_purchase_code( base64_decode( $code_confirm ), '', 'remove' );
    Line 186: $code = base64_decode( $code );
  5. Security breaches : Use of base64_encode() Found base64_encode in file admin.php.
     if ( !$code || base64_encode( $code ) != $code_confirm ) {
     $code_confirm = base64_encode($code);
     if ($code && $code_confirm && base64_encode($code) == $code_confirm)
     curl_setopt($ch, CURLOPT_URL, $this->activation_url . '?item=9207399&code=$code&domain=$domain&siteurl='. base64_encode( site_url() ) .'&act=$act' . ( $local ? '&local=true' : '' ))
     return base64_encode( SUBSCRIPTION_CODE );
    Found base64_encode in file Functions.php.
     $buf = $useBase64 ? base64_encode($buf) : rawurlencode($buf);
     $returner = ''data:image/svg+xml;base64,'.base64_encode($returner).''';
  6. Unwanted files : hidden file(s) or folder(s) .ds_store .easymin was found.
  7. Malware : Operations on file system file_get_contents was found in the file Server.php
    Line 135: $metadata = unserialize(file_get_contents($metadataName));
    Line 206: $css     = $this->scss->compile(file_get_contents($in), $in);
    Line 285: $compiled = $this->scss->compile(file_get_contents($in), $in);
    Line 377: echo file_get_contents($output);
    Line 413: $css = file_get_contents($out);
    file_get_contents was found in the file Server.php
    Line 135: $metadata = unserialize(file_get_contents($metadataName));
    Line 206: $css     = $this->scss->compile(file_get_contents($in), $in);
    Line 285: $compiled = $this->scss->compile(file_get_contents($in), $in);
    Line 377: echo file_get_contents($output);
    Line 413: $css = file_get_contents($out);
    file_put_contents was found in the file Server.php
    Line 214: file_put_contents($out, $css);
    Line 215: file_put_contents(
    Line 288: return file_put_contents($out, $compiled);
    file_put_contents was found in the file Server.php
    Line 214: file_put_contents($out, $css);
    Line 215: file_put_contents(
    Line 288: return file_put_contents($out, $compiled);
    file_get_contents was found in the file Server.php
    Line 135: $metadata = unserialize(file_get_contents($metadataName));
    Line 206: $css     = $this->scss->compile(file_get_contents($in), $in);
    Line 285: $compiled = $this->scss->compile(file_get_contents($in), $in);
    Line 377: echo file_get_contents($output);
    Line 413: $css = file_get_contents($out);
    file_put_contents was found in the file Server.php
    Line 214: file_put_contents($out, $css);
    Line 215: file_put_contents(
    Line 288: return file_put_contents($out, $compiled);
    file_get_contents was found in the file Server.php
    Line 135: $metadata = unserialize(file_get_contents($metadataName));
    Line 206: $css     = $this->scss->compile(file_get_contents($in), $in);
    Line 285: $compiled = $this->scss->compile(file_get_contents($in), $in);
    Line 377: echo file_get_contents($output);
    Line 413: $css = file_get_contents($out);
    file_get_contents was found in the file Server.php
    Line 135: $metadata = unserialize(file_get_contents($metadataName));
    Line 206: $css     = $this->scss->compile(file_get_contents($in), $in);
    Line 285: $compiled = $this->scss->compile(file_get_contents($in), $in);
    Line 377: echo file_get_contents($output);
    Line 413: $css = file_get_contents($out);
    file_put_contents was found in the file SourceMapGenerator.php
    Line 143: if (file_put_contents($file, $content) === false) {
    file_get_contents was found in the file SourceMapGenerator.php
    Line 222: $content[] = file_get_contents($sourceFile);
    fopen was found in the file Compiler.php
    Line 194: $this->stderr         = fopen('php://stderr', 'w');
    fwrite was found in the file Compiler.php
    Line 1915: fwrite($this->stderr, 'Line $line DEBUG: $value\n');
    Line 1923: fwrite($this->stderr, 'Line $line WARN: $value\n');
    fwrite was found in the file Compiler.php
    Line 1915: fwrite($this->stderr, 'Line $line DEBUG: $value\n');
    Line 1923: fwrite($this->stderr, 'Line $line WARN: $value\n');
    file_get_contents was found in the file Compiler.php
    Line 3446: $code   = file_get_contents($path);
    file_get_contents was found in the file Import.php
    Line 176: $contents = new Less_Tree_Anonymous( file_get_contents($full_path), 0, array(), true );
    file_put_contents was found in the file Generator.php
    Line 152: if(file_put_contents($file, $content) === false){
    file_get_contents was found in the file Generator.php
    Line 275: $content[] = file_get_contents($sourceFile);
    file_get_contents was found in the file import.php
    Line 69: $contents = new Less_Tree_Anonymous( file_get_contents($full_path), 0, array(), true );
    file_get_contents was found in the file Functions.php
    Line 903: $buf = @file_get_contents($filePath);
    file_put_contents was found in the file Cache.php
    Line 75: file_put_contents($vars_file, $lessvars);
    Line 119: file_put_contents( $list_file, $cache );
    Line 123: file_put_contents( $output_file, $compiled );
    file_put_contents was found in the file Cache.php
    Line 75: file_put_contents($vars_file, $lessvars);
    Line 119: file_put_contents( $list_file, $cache );
    Line 123: file_put_contents( $output_file, $compiled );
    file_put_contents was found in the file Cache.php
    Line 75: file_put_contents($vars_file, $lessvars);
    Line 119: file_put_contents( $list_file, $cache );
    Line 123: file_put_contents( $output_file, $compiled );
    file_get_contents was found in the file Cache.php
    Line 307: $list = explode('\n',file_get_contents($list_file));
    file_get_contents was found in the file Parser.php
    Line 656: $cache = unserialize(file_get_contents($cache_file));
    Line 723: $this->input = file_get_contents( $file_path );
    file_put_contents was found in the file Parser.php
    Line 697: file_put_contents( $cache_file, serialize($rules) );
    Line 700: file_put_contents( $cache_file, '<?php return '.self::ArgString($rules).'; 
    Line 704: file_put_contents( $cache_file, '<?php return '.var_export($rules,true).'; 
    file_put_contents was found in the file Parser.php
    Line 697: file_put_contents( $cache_file, serialize($rules) );
    Line 700: file_put_contents( $cache_file, '<?php return '.self::ArgString($rules).'; 
    Line 704: file_put_contents( $cache_file, '<?php return '.var_export($rules,true).'; 
    file_put_contents was found in the file Parser.php
    Line 697: file_put_contents( $cache_file, serialize($rules) );
    Line 700: file_put_contents( $cache_file, '<?php return '.self::ArgString($rules).'; 
    Line 704: file_put_contents( $cache_file, '<?php return '.var_export($rules,true).'; 
    file_get_contents was found in the file Parser.php
    Line 656: $cache = unserialize(file_get_contents($cache_file));
    Line 723: $this->input = file_get_contents( $file_path );
    file_get_contents was found in the file Parser.php
    Line 58: $this->input = file_get_contents( $this->currentFile['filename'] );
    file_put_contents was found in the file lessc.inc.php
    Line 177: return file_put_contents( $outFname, $out );
    file_put_contents was found in the file setup_wizard.php
    Line 981: file_put_contents( $new_theme_path.'/style.css', $css );
    Line 1418: // Initialize the Wordpress filesystem, no more using file_put_contents function
    fopen was found in the file setup_wizard.php
    Line 1425: $fp = fopen( $path, 'r' );
    fread was found in the file setup_wizard.php
    Line 1426: $data = fread( $fp, filesize( $path ) );
    fclose was found in the file setup_wizard.php
    Line 1427: fclose( $fp );
    fopen was found in the file class.redux_helpers.php
    Line 668: //$fp = fopen( $file, 'r' );
    fread was found in the file class.redux_helpers.php
    Line 671: //$file_data = fread( $fp, 8192 );
    fclose was found in the file class.redux_helpers.php
    Line 674: //fclose( $fp );
    file_get_contents was found in the file parsers.php
    Line 75: $file_contents = file_get_contents( $file );
    Line 315: $file_contents = file_get_contents( $file );
    file_get_contents was found in the file parsers.php
    Line 75: $file_contents = file_get_contents( $file );
    Line 315: $file_contents = file_get_contents( $file );
    fopen was found in the file parsers.php
    Line 463: $fp = $this->fopen( $file, 'r' );
    Line 689: function fopen( $filename, $mode = 'r' ) {
    Line 692: return fopen( $filename, $mode );
    fclose was found in the file parsers.php
    Line 512: $this->fclose($fp);
    Line 707: function fclose( $fp ) {
    Line 710: return fclose( $fp );
    fopen was found in the file parsers.php
    Line 463: $fp = $this->fopen( $file, 'r' );
    Line 689: function fopen( $filename, $mode = 'r' ) {
    Line 692: return fopen( $filename, $mode );
    fopen was found in the file parsers.php
    Line 463: $fp = $this->fopen( $file, 'r' );
    Line 689: function fopen( $filename, $mode = 'r' ) {
    Line 692: return fopen( $filename, $mode );
    fclose was found in the file parsers.php
    Line 512: $this->fclose($fp);
    Line 707: function fclose( $fp ) {
    Line 710: return fclose( $fp );
    fclose was found in the file parsers.php
    Line 512: $this->fclose($fp);
    Line 707: function fclose( $fp ) {
    Line 710: return fclose( $fp );
    file_get_contents was found in the file porto-parsers.php
    Line 78: $file_contents = file_get_contents( $file );
    Line 320: $file_contents = file_get_contents( $file );
    file_get_contents was found in the file porto-parsers.php
    Line 78: $file_contents = file_get_contents( $file );
    Line 320: $file_contents = file_get_contents( $file );
    fopen was found in the file porto-parsers.php
    Line 474: $fp = $this->fopen( $file, 'r' );
    Line 701: function fopen( $filename, $mode = 'r' ) {
    Line 704: return fopen( $filename, $mode );
    fclose was found in the file porto-parsers.php
    Line 524: $this->fclose($fp);
    Line 719: function fclose( $fp ) {
    Line 722: return fclose( $fp );
    fopen was found in the file porto-parsers.php
    Line 474: $fp = $this->fopen( $file, 'r' );
    Line 701: function fopen( $filename, $mode = 'r' ) {
    Line 704: return fopen( $filename, $mode );
    fopen was found in the file porto-parsers.php
    Line 474: $fp = $this->fopen( $file, 'r' );
    Line 701: function fopen( $filename, $mode = 'r' ) {
    Line 704: return fopen( $filename, $mode );
    fclose was found in the file porto-parsers.php
    Line 524: $this->fclose($fp);
    Line 719: function fclose( $fp ) {
    Line 722: return fclose( $fp );
    fclose was found in the file porto-parsers.php
    Line 524: $this->fclose($fp);
    Line 719: function fclose( $fp ) {
    Line 722: return fclose( $fp );
    file_get_contents was found in the file importer-api.php
    Line 156: $body = @file_get_contents( $url );
    fopen was found in the file importer-api.php
    Line 155: if( function_exists( 'ini_get' ) && ini_get( 'allow_url_fopen' ) ){
    Line 183: $fp = @fopen( $path_package, 'w' );
    fwrite was found in the file importer-api.php
    Line 184: $fwrite = @fwrite( $fp, $body );
    Line 186: if( false === $fwrite ){
    fclose was found in the file importer-api.php
    Line 185: @fclose( $fp );
  8. Malware : Network operations curl_init was found in the file admin.php
    Line 146: $ch = curl_init();
    curl_exec was found in the file admin.php
    Line 153: $result = json_decode( curl_exec($ch), true );
    curl_init was found in the file changelog.php
    Line 21: $ch = curl_init();
    curl_exec was found in the file changelog.php
    Line 24: $result = curl_exec( $ch );
  9. Admin menu : Themes should use add_theme_page() for adding admin pages. File admin.php :
    Line 58: $welcome_screen = add_menu_page( 'Porto', 'Porto', 'administrator', 'porto', array( $this, 'w
    File admin.php :
    Line 59: $welcome       = add_submenu_page( 'porto', __( 'Theme license', 'Porto' ), __( 'Theme Licen
    Line 60: $changelog = add_submenu_page( 'porto', __( 'Change log', 'Porto' ), __( 'Change log', '
    Line 61: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'Porto' ), __( 'Theme Optio
    File admin.php :
    Line 59: $welcome       = add_submenu_page( 'porto', __( 'Theme license', 'Porto' ), __( 'Theme Licen
    Line 60: $changelog = add_submenu_page( 'porto', __( 'Change log', 'Porto' ), __( 'Change log', '
    Line 61: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'Porto' ), __( 'Theme Optio
    File admin.php :
    Line 59: $welcome       = add_submenu_page( 'porto', __( 'Theme license', 'Porto' ), __( 'Theme Licen
    Line 60: $changelog = add_submenu_page( 'porto', __( 'Change log', 'Porto' ), __( 'Change log', '
    Line 61: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'Porto' ), __( 'Theme Optio
    File speed_optimize_wizard.php :
    Line 90: add_submenu_page('porto', esc_html__( 'Speed Optimize Wizard','porto' ), es
    File setup_wizard.php :
    Line 523: add_submenu_page('porto', esc_html__( 'Setup Wizard','porto' ), esc_html__(
    File framework.php :
    Line 1299: // wrappers and need to be appened to using add_submenu_page.
    Line 1350: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1401: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Line 1299: // wrappers and need to be appened to using add_submenu_page.
    Line 1350: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1401: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Line 1376: $this->page = call_user_func( 'add_menu_page', $this->args['page_title'], $this->args['menu_title'], $this
    File framework.php :
    Line 1299: // wrappers and need to be appened to using add_submenu_page.
    Line 1350: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1401: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File welcome.php :
    Line 199: $page = 'add_management_page';
  10. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  11. Deprecated functions : screen_icon screen_icon found in file wordpress-importer.php. Deprecated since version 3.8.
    Line 1305: screen_icon();
  12. Deprecated functions : get_option get_option('home') was found in the file layout.php. Use home_url() instead.
    Line 431: if(is_404()) $url = get_option('home'); else $url = '';
    Line 549: if(is_404()) $url = get_option('home'); else $url = '';
    Line 644: if(is_404()) $url = get_option('home'); else $url = '';
    Line 928: if(is_404()) $url = get_option('home'); else $url = '';
    Line 1224: if(is_404()) $url = get_option('home'); else $url = '';
    Line 1489: if(is_404()) $url = get_option('home'); else $url = '';
  13. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was porto-functionality.zip geodirectory-porto-theme-compatibility-pack.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in functions.php. Themes must not deregister core scripts.
    Line 485: wp_deregister_script( 'porto-plugins-popper' );
    Line 493: wp_deregister_script( 'porto-bootstrap' );
    Line 497: wp_deregister_script( 'porto-plugins' );
    Line 519: wp_deregister_script( 'porto-theme' );
    Found wp_deregister_script in vc_pie.php. Themes must not deregister core scripts.
    Line 48: wp_deregister_script( 'vc_pie' );
    Found wp_deregister_script in vc_progress_bar.php. Themes must not deregister core scripts.
    Line 42: wp_deregister_script( 'waypoints' );
    Found wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Line 543: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Line 215: wp_deregister_script( 'jquerySelect2' );
  2. theme tags : Presence of bad theme tagsFound wrong tag woocommerce in style.css header.Found wrong tag corporate in style.css header.Found wrong tag ecommerce in style.css header.Found wrong tag responsive in style.css header.The tag blue has been deprecated, it must be removed from style.css header.The tag black has been deprecated, it must be removed from style.css header.The tag green has been deprecated, it must be removed from style.css header.The tag white has been deprecated, it must be removed from style.css header.The tag light has been deprecated, it must be removed from style.css header.The tag dark has been deprecated, it must be removed from style.css header.The tag red has been deprecated, it must be removed from style.css header.The tag fixed-layout has been deprecated, it must be removed from style.css header.The tag responsive-layout has been deprecated, it must be removed from style.css header.Themes that use the tag accessibility-ready will need to undergo an accessibility review.
    See https://make.wordpress.org/themes/handbook/review/accessibility/
  3. Text domain : Incorrect use of translation functions.Found a translation function that has an incorrect number of arguments. Function _n, with the arguments '%s download remaining', '%s downloads remaining', downloads_remaining, 'woocommerce' in file my-downloads.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file shipping-calculator.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file cart-totals-v1.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file cart-totals-v2.php.Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'After save the changes, will regenerate the css files (skin_', .css, skin_rtl_, '.css) in ' in file settings.php.Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'After save the changes, will regenerate the css files (skin_', .css, skin_rtl_, '.css) in ', 'porto' in file settings.php.Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'Welcome to the Speed Optimize Wizard for %s.' in file speed_optimize_wizard.php.Found a translation function that is missing a text-domain. Function esc_html_e, with the arguments 'Not right now' in file speed_optimize_wizard.php.Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'Welcome to the setup wizard for %s.' in file setup_wizard.php.Found a translation function that is missing a text-domain. Function esc_html_e, with the arguments 'Not right now' in file setup_wizard.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'No Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '1 Comment' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '% Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Comments Off' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Enter your password to view comments.' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Comment on %s' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '% Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'No Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '1 Comment' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Go to Home Page' in file breadcrumbs.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Use commas instead of %s to separate excluded categories.' in file woocommerce.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'billing_first_name' in file woocommerce.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'billing_last_name' in file woocommerce.php.More than one text-domain is being used in this theme. This means the theme will not be compatible with WordPress.org language packs. The domains found are porto, woocommerce, yith-plugin-fw, downloads_remaining, js_composer, Porto, .css, skin_rtl_, redux-framework, themecheck, tgmpa, wordpress-importer, wysija-newsletters, porto-shortcodes, blank, textdomain.
  4. PHP short tags : Presence of PHP short tagsPHP short tags were found in file parsedown.php. "This practice is discouraged because they are only available if enabled with short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option" (php.net), which is not the case on many servers.
    Line 772: if (preg_match('/^\[(.+?)\]:[ ]*<?(\S+?)>?(?:[ ]+['\'(](.+)['\')])?[ ]*$/', $Line['text'], $matches))
  5. Hidden admin bar : Hidden admin Bar in CSSThemes should not hide admin bar. Detected in file theme.css.
  6. Deprecated functions : screen_iconscreen_icon found in file wordpress-importer.php. Deprecated since version 3.8.
    Line 1305: screen_icon();
  7. I18N implementation : Proper use of _e(Possible variable $_POST found in translation function in woocommerce.php. Translation function calls should not contain PHP variables.
    Line 947: <input type='text' class='woocommerce-Input woocommerce-Input--text input-text' name='billing_first_name' id='reg_billing_first_name' value='<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>' />
    Possible variable $_POST found in translation function in woocommerce.php. Translation function calls should not contain PHP variables.
    Line 951: <input type='text' class='woocommerce-Input woocommerce-Input--text input-text' name='billing_last_name' id='reg_billing_last_name' value='<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>' />
  8. I18N implementation : Proper use of ___all(Possible variable $cvalue found in translation function in shipping-calculator.php. Translation function calls should not contain PHP variables.
    Line 57: echo '<option value='' . esc_attr( $ckey ) . '' ' . selected( $current_r, $ckey, false ) . '>' . __( esc_html( $cvalue ), 'porto' ) .'</option>';
    Possible variable $key found in translation function in speed_optimize_wizard.php. Translation function calls should not contain PHP variables.
    Line 586: <?php printf( __( $key . ' <a href='%s' target='_blank'>%s</a>', 'porto' ), 'https://word
  9. I18N implementation : Proper use of esc_attr_e(Possible variable $_POST found in translation function in woocommerce.php. Translation function calls should not contain PHP variables.
    Line 947: <input type='text' class='woocommerce-Input woocommerce-Input--text input-text' name='billing_first_name' id='reg_billing_first_name' value='<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>' />
    Possible variable $_POST found in translation function in woocommerce.php. Translation function calls should not contain PHP variables.
    Line 951: <input type='text' class='woocommerce-Input woocommerce-Input--text input-text' name='billing_last_name' id='reg_billing_last_name' value='<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>' />
  10. Screenshot : Screenshot fileScreenshot size is 880x660px. Screenshot size should be 1200x900, to account for HiDPI displays. Any 4:3 image size is acceptable, but 1200x900 is preferred.Bad screenshot file extension ! File screenshot.png is not an actual JPG file. Detected type was : "image/png".
Tip-off
  1. Static links : Presence of hard-coded linksPossible hard-coded links were found in the file yit-pointers.php.
    Line 68: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 82: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 68: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 82: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Possible hard-coded links were found in the file admin.php.
    Line 19: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );
    Line 20: $this->add_wp_toolbar_menu_item( __( 'Theme License', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ) );
    Line 21: $this->add_wp_toolbar_menu_item( __( 'Change log', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-changelog' ) );
    Line 23: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );
    Line 24: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );
    Line 298: <p>Please <a href='admin.php?page=porto'>register</a> porto theme to get access to pre-built d
    Possible hard-coded links were found in the file settings.php.
    Line 6190: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto
    Line 6197: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port
    Line 6190: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto
    Line 6197: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port
    Possible hard-coded links were found in the file speed_optimize_wizard.php.
    Line 599: <a href='https://gtmetrix.com/leverage-browser-caching.html' target='_blank'><?php e
    Possible hard-coded links were found in the file setup_wizard.php.
    Line 1351: <p>More details about item support can be found in the ThemeForest <a href='http://themeforest.net/page/item_support_policy' target='_blank'>Item Suppo
    Line 1370: <p>Please come back and <a href='http://themeforest.net/downloads' target='_blank'>leave a 5-star rating</a>
    Line 1386: <li class='rating'><a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',
    Line 1383: <li class='documentation'><a href='http://www.portotheme.com/wordpress/porto/documentation'><?php esc_html_e( 
    Line 1384: <li class='woocommerce documentation'><a href='https://docs.woocommerce.com/document/woocommerce-101-video-series/'><?php 
    Line 1370: <p>Please come back and <a href='http://themeforest.net/downloads' target='_blank'>leave a 5-star rating</a>
    Line 1386: <li class='rating'><a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',
    Possible hard-coded links were found in the file welcome.php.
    Line 480: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Line 483: <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMFMHW
    Possible hard-coded links were found in the file class-tgm-plugin-activation.php.
    Line 2731: $action_links[ 'register' ] = '<span style='color:#666'>Please</span> <a href='admin.php?page=porto'>register</a> <span style='color:#666'>the theme</span
  2. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  3. Optional files : Presence of front page template file front-page.phpThis theme does not contain optional file front-page.php.
  4. Optional files : Presence of home template file home.phpThis theme does not contain optional file home.php.
  5. Optional files : Presence of category template file category.phpThis theme does not contain optional file category.php.
  6. Optional files : Presence of tag template file tag.phpThis theme does not contain optional file tag.php.
  7. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  8. Optional files : Presence of author template file author.phpThis theme does not contain optional file author.php.
  9. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  10. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  11. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  12. Use of includes : Use of include or requireThe theme appears to use include or require : style.php
    Line 43: require_once ( porto_lib . '/lib/color-lib.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : woocommerce-swatches.php
    Line 23: require 'classes/class-product-swatches-tab.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Parser.php
    Line 323: if ($this->literal('@include') &&
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : admin.php
    Line 66: require_once( porto_admin . '/admin_pages/welcome.php' );
    Line 70: require_once( porto_admin . '/admin_pages/changelog.php' );
    Line 257: require_once(porto_admin . '/theme_options.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : theme_options.php
    Line 7: require_once( porto_admin . '/functions.php' );
    Line 10: require_once( porto_admin . '/ReduxCore/framework.php' );
    Line 13: require_once( porto_admin . '/theme_options/settings.php' );
    Line 15: require_once( porto_admin . '/theme_options/save_settings.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : save_settings.php
    Line 149: require_once( porto_admin . '/lessphp/lessc.inc.php' );
    Line 172: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 227: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 273: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 357: require_once( porto_admin . '/lessphp/lessc.inc.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Functions.php
    Line 882: $mime = require('mime');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Cache.php
    Line 3: require_once( dirname(__FILE__).'/Version.php');
    Line 151: require_once($file);
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Parser.php
    Line 3: require_once( dirname(__FILE__).'/Cache.php');
    Line 669: return include($cache_file);
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : setup_wizard.php
    Line 1420: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : framework.php
    Line 1644: require_once 'core/enqueue.php';
    Line 2793: require_once 'core/enqueue.php';
    Line 2851: require_once 'core/panel.php';
    Line 3203: require_once 'core/panel.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : extension_customizer.php
    Line 753: require_once( $class_file );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : class.redux_api.php
    Line 539: include_once( $api_check );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : welcome.php
    Line 376: require_once 'views/about.php';
    Line 391: require_once 'views/changelog.php';
    Line 406: require_once 'views/extensions.php';
    Line 422: require_once 'views/support.php';
    Line 437: require_once 'views/credits.php';
    Line 452: require_once 'views/status_report.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : mini-status.php
    Line 12: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : plugins.php
    Line 267: require_once(ABSPATH . 'wp-admin/includes/plugin.php');
    Line 274: include_once( WC()->plugin_path() . '/includes/wc-template-functions.php' )
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : porto-wordpress-importer.php
    Line 207: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : wordpress-importer.php
    Line 167: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : importer-api.php
    Line 61: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    Line 174: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : layout.php
    Line 2: require_once(porto_functions . '/layout/breadcrumbs.php');
    Line 3: require_once(porto_functions . '/layout/page-title.php');
    Line 2535: require_once( porto_dir . '/style-internal.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : content_type.php
    Line 2: require_once(porto_functions . '/content_type/portfolio_like.php');
    Line 3: require_once(porto_functions . '/content_type/blog_like.php');
    Line 4: require_once(porto_functions . '/content_type/meta_values.php');
    Line 5: require_once(porto_functions . '/content_type/meta_fields.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : woocommerce.php
    Line 6: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : content_types.php
    Line 3: require_once(porto_content_types . '/post.php');
    Line 4: require_once(porto_content_types . '/page.php');
    Line 6: require_once(porto_content_types . '/product.php');
    Line 8: require_once(porto_content_types . '/portfolio.php');
    Line 9: require_once(porto_content_types . '/member.php');
    Line 10: require_once(porto_content_types . '/faq.php');
    Line 11: require_once(porto_content_types . '/block.php');
    Line 12: require_once(porto_content_types . '/event.php');
    Line 596: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.

This is a ThemeForest theme. Since Themeforest items are all checked by a human before they appear on their website, ThemeForest verification rules are more permissive than themecheck's and can give a better verification score ( Themeforest requirements ).

0
Critical alerts
  1. Customizer : Sanitization of Customizer settings Found a Customizer setting that did not have a sanitization callback function in file extension_customizer.php. Every call to the add_setting() method needs to have a sanitization callback function passed.
  2. Title : Title The <title> tags can only contain a call to wp_title(). Use the wp_title filter to modify the output.The <title> tags can only contain a call to wp_title(). Use the wp_title filter to modify the output.
  3. Security breaches : Modification of PHP server settings Found ini_set in file save_settings.php.
    Line 140: @ini_set('max_execution_time', '10000');
    Line 141: @ini_set('memory_limit', '256M');
    Line 219: @ini_set('max_execution_time', '10000');
    Line 221: @ini_set('memory_limit', '256M');
    Line 265: @ini_set('max_execution_time', '10000');
    Line 267: @ini_set('memory_limit', '256M');
    Line 327: @ini_set('max_execution_time', '10000');
    Line 329: @ini_set('memory_limit', '256M');
    Found ini_set in file Parser.php.
    Line 94: @ini_set('mbstring.internal_encoding', 'ascii');
    Line 185: @ini_set('precision',16);
    Line 223: @ini_set('precision',$precision);
    Line 229: @ini_set('mbstring.internal_encoding', $this->mb_internal_encoding);
    Found ini_set in file setup_wizard.php.
    Line 1527: @ini_set('max_execution_time', '10000');
    Line 1528: @ini_set('memory_limit', '256M');
    Line 1637: @ini_set('max_execution_time', '10000');
    Line 1638: @ini_set('memory_limit', '256M');
    Line 1689: @ini_set('max_execution_time', '10000');
    Line 1690: @ini_set('memory_limit', '256M');
  4. Unwanted files : hidden file(s) or folder(s) .ds_store .easymin was found.
  5. Malware : Network operations curl_init was found in the file admin.php
    Line 146: $ch = curl_init();
    curl_exec was found in the file admin.php
    Line 153: $result = json_decode( curl_exec($ch), true );
    curl_init was found in the file changelog.php
    Line 21: $ch = curl_init();
    curl_exec was found in the file changelog.php
    Line 24: $result = curl_exec( $ch );
  6. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  7. Deprecated functions : screen_icon screen_icon found in file wordpress-importer.php. Deprecated since version 3.8.
    Line 1305: screen_icon();
  8. Deprecated functions : get_option get_option('home') was found in the file layout.php. Use home_url() instead.
    Line 431: if(is_404()) $url = get_option('home'); else $url = '';
    Line 549: if(is_404()) $url = get_option('home'); else $url = '';
    Line 644: if(is_404()) $url = get_option('home'); else $url = '';
    Line 928: if(is_404()) $url = get_option('home'); else $url = '';
    Line 1224: if(is_404()) $url = get_option('home'); else $url = '';
    Line 1489: if(is_404()) $url = get_option('home'); else $url = '';
  9. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was porto-functionality.zip geodirectory-porto-theme-compatibility-pack.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in functions.php. Themes must not deregister core scripts.
    Line 485: wp_deregister_script( 'porto-plugins-popper' );
    Line 493: wp_deregister_script( 'porto-bootstrap' );
    Line 497: wp_deregister_script( 'porto-plugins' );
    Line 519: wp_deregister_script( 'porto-theme' );
    Found wp_deregister_script in vc_pie.php. Themes must not deregister core scripts.
    Line 48: wp_deregister_script( 'vc_pie' );
    Found wp_deregister_script in vc_progress_bar.php. Themes must not deregister core scripts.
    Line 42: wp_deregister_script( 'waypoints' );
    Found wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Line 543: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Line 215: wp_deregister_script( 'jquerySelect2' );
  2. theme tags : Presence of bad theme tagsFound wrong tag woocommerce in style.css header.Found wrong tag corporate in style.css header.Found wrong tag ecommerce in style.css header.Found wrong tag responsive in style.css header.The tag blue has been deprecated, it must be removed from style.css header.The tag black has been deprecated, it must be removed from style.css header.The tag green has been deprecated, it must be removed from style.css header.The tag white has been deprecated, it must be removed from style.css header.The tag light has been deprecated, it must be removed from style.css header.The tag dark has been deprecated, it must be removed from style.css header.The tag red has been deprecated, it must be removed from style.css header.The tag fixed-layout has been deprecated, it must be removed from style.css header.The tag responsive-layout has been deprecated, it must be removed from style.css header.Themes that use the tag accessibility-ready will need to undergo an accessibility review.
    See https://make.wordpress.org/themes/handbook/review/accessibility/
  3. Text domain : Incorrect use of translation functions.Found a translation function that has an incorrect number of arguments. Function _n, with the arguments '%s download remaining', '%s downloads remaining', downloads_remaining, 'woocommerce' in file my-downloads.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file shipping-calculator.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file cart-totals-v1.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'porto' in file cart-totals-v2.php.Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'After save the changes, will regenerate the css files (skin_', .css, skin_rtl_, '.css) in ' in file settings.php.Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'After save the changes, will regenerate the css files (skin_', .css, skin_rtl_, '.css) in ', 'porto' in file settings.php.Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'Welcome to the Speed Optimize Wizard for %s.' in file speed_optimize_wizard.php.Found a translation function that is missing a text-domain. Function esc_html_e, with the arguments 'Not right now' in file speed_optimize_wizard.php.Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'Welcome to the setup wizard for %s.' in file setup_wizard.php.Found a translation function that is missing a text-domain. Function esc_html_e, with the arguments 'Not right now' in file setup_wizard.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'No Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '1 Comment' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '% Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Comments Off' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Enter your password to view comments.' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Comment on %s' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '% Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'No Comments' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments '1 Comment' in file general.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Go to Home Page' in file breadcrumbs.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Use commas instead of %s to separate excluded categories.' in file woocommerce.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'billing_first_name' in file woocommerce.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'billing_last_name' in file woocommerce.php.More than one text-domain is being used in this theme. This means the theme will not be compatible with WordPress.org language packs. The domains found are porto, woocommerce, yith-plugin-fw, downloads_remaining, js_composer, Porto, .css, skin_rtl_, redux-framework, themecheck, tgmpa, wordpress-importer, wysija-newsletters, porto-shortcodes, blank, textdomain.
  4. PHP short tags : Presence of PHP short tagsPHP short tags were found in file parsedown.php. "This practice is discouraged because they are only available if enabled with short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option" (php.net), which is not the case on many servers.
    Line 772: if (preg_match('/^\[(.+?)\]:[ ]*<?(\S+?)>?(?:[ ]+['\'(](.+)['\')])?[ ]*$/', $Line['text'], $matches))
  5. Hidden admin bar : Hidden admin Bar in CSSThemes should not hide admin bar. Detected in file theme.css.
  6. Deprecated functions : screen_iconscreen_icon found in file wordpress-importer.php. Deprecated since version 3.8.
    Line 1305: screen_icon();
  7. Screenshot : Screenshot fileScreenshot size is 880x660px. Screenshot size should be 1200x900, to account for HiDPI displays. Any 4:3 image size is acceptable, but 1200x900 is preferred.Bad screenshot file extension ! File screenshot.png is not an actual JPG file. Detected type was : "image/png".
Tip-off
  1. Static links : Presence of hard-coded linksPossible hard-coded links were found in the file yit-pointers.php.
    Line 68: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 82: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 68: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Line 82: 'content'  => sprintf( '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com
    Possible hard-coded links were found in the file admin.php.
    Line 19: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );
    Line 20: $this->add_wp_toolbar_menu_item( __( 'Theme License', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ) );
    Line 21: $this->add_wp_toolbar_menu_item( __( 'Change log', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-changelog' ) );
    Line 23: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );
    Line 24: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );
    Line 298: <p>Please <a href='admin.php?page=porto'>register</a> porto theme to get access to pre-built d
    Possible hard-coded links were found in the file settings.php.
    Line 6190: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto
    Line 6197: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port
    Line 6190: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto
    Line 6197: 'desc' => __('Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port
    Possible hard-coded links were found in the file speed_optimize_wizard.php.
    Line 599: <a href='https://gtmetrix.com/leverage-browser-caching.html' target='_blank'><?php e
    Possible hard-coded links were found in the file setup_wizard.php.
    Line 1351: <p>More details about item support can be found in the ThemeForest <a href='http://themeforest.net/page/item_support_policy' target='_blank'>Item Suppo
    Line 1370: <p>Please come back and <a href='http://themeforest.net/downloads' target='_blank'>leave a 5-star rating</a>
    Line 1386: <li class='rating'><a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',
    Line 1383: <li class='documentation'><a href='http://www.portotheme.com/wordpress/porto/documentation'><?php esc_html_e( 
    Line 1384: <li class='woocommerce documentation'><a href='https://docs.woocommerce.com/document/woocommerce-101-video-series/'><?php 
    Line 1370: <p>Please come back and <a href='http://themeforest.net/downloads' target='_blank'>leave a 5-star rating</a>
    Line 1386: <li class='rating'><a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',
    Possible hard-coded links were found in the file welcome.php.
    Line 480: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Line 483: <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMFMHW
    Possible hard-coded links were found in the file class-tgm-plugin-activation.php.
    Line 2731: $action_links[ 'register' ] = '<span style='color:#666'>Please</span> <a href='admin.php?page=porto'>register</a> <span style='color:#666'>the theme</span
  2. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  3. Optional files : Presence of front page template file front-page.phpThis theme does not contain optional file front-page.php.
  4. Optional files : Presence of home template file home.phpThis theme does not contain optional file home.php.
  5. Optional files : Presence of category template file category.phpThis theme does not contain optional file category.php.
  6. Optional files : Presence of tag template file tag.phpThis theme does not contain optional file tag.php.
  7. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  8. Optional files : Presence of author template file author.phpThis theme does not contain optional file author.php.
  9. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  10. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  11. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  12. Use of includes : Use of include or requireThe theme appears to use include or require : style.php
    Line 43: require_once ( porto_lib . '/lib/color-lib.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : woocommerce-swatches.php
    Line 23: require 'classes/class-product-swatches-tab.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Parser.php
    Line 323: if ($this->literal('@include') &&
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : admin.php
    Line 66: require_once( porto_admin . '/admin_pages/welcome.php' );
    Line 70: require_once( porto_admin . '/admin_pages/changelog.php' );
    Line 257: require_once(porto_admin . '/theme_options.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : theme_options.php
    Line 7: require_once( porto_admin . '/functions.php' );
    Line 10: require_once( porto_admin . '/ReduxCore/framework.php' );
    Line 13: require_once( porto_admin . '/theme_options/settings.php' );
    Line 15: require_once( porto_admin . '/theme_options/save_settings.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : save_settings.php
    Line 149: require_once( porto_admin . '/lessphp/lessc.inc.php' );
    Line 172: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 227: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 273: require_once( porto_admin . '/scssphp/scss.inc.php' );
    Line 357: require_once( porto_admin . '/lessphp/lessc.inc.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Functions.php
    Line 882: $mime = require('mime');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Cache.php
    Line 3: require_once( dirname(__FILE__).'/Version.php');
    Line 151: require_once($file);
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : Parser.php
    Line 3: require_once( dirname(__FILE__).'/Cache.php');
    Line 669: return include($cache_file);
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : setup_wizard.php
    Line 1420: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : framework.php
    Line 1644: require_once 'core/enqueue.php';
    Line 2793: require_once 'core/enqueue.php';
    Line 2851: require_once 'core/panel.php';
    Line 3203: require_once 'core/panel.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : extension_customizer.php
    Line 753: require_once( $class_file );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : class.redux_api.php
    Line 539: include_once( $api_check );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : welcome.php
    Line 376: require_once 'views/about.php';
    Line 391: require_once 'views/changelog.php';
    Line 406: require_once 'views/extensions.php';
    Line 422: require_once 'views/support.php';
    Line 437: require_once 'views/credits.php';
    Line 452: require_once 'views/status_report.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : mini-status.php
    Line 12: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : plugins.php
    Line 267: require_once(ABSPATH . 'wp-admin/includes/plugin.php');
    Line 274: include_once( WC()->plugin_path() . '/includes/wc-template-functions.php' )
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : porto-wordpress-importer.php
    Line 207: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : wordpress-importer.php
    Line 167: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : importer-api.php
    Line 61: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    Line 174: require_once( ABSPATH . '/wp-admin/includes/file.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : layout.php
    Line 2: require_once(porto_functions . '/layout/breadcrumbs.php');
    Line 3: require_once(porto_functions . '/layout/page-title.php');
    Line 2535: require_once( porto_dir . '/style-internal.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : content_type.php
    Line 2: require_once(porto_functions . '/content_type/portfolio_like.php');
    Line 3: require_once(porto_functions . '/content_type/blog_like.php');
    Line 4: require_once(porto_functions . '/content_type/meta_values.php');
    Line 5: require_once(porto_functions . '/content_type/meta_fields.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : woocommerce.php
    Line 6: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : content_types.php
    Line 3: require_once(porto_content_types . '/post.php');
    Line 4: require_once(porto_content_types . '/page.php');
    Line 6: require_once(porto_content_types . '/product.php');
    Line 8: require_once(porto_content_types . '/portfolio.php');
    Line 9: require_once(porto_content_types . '/member.php');
    Line 10: require_once(porto_content_types . '/faq.php');
    Line 11: require_once(porto_content_types . '/block.php');
    Line 12: require_once(porto_content_types . '/event.php');
    Line 596: require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
Other checked themes