0
Validation results

Virtue - Premium

Virtue - Premium

WordPress 4.9.1 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_advanced_customizer.php. Every call to the add_setting() method needs to have a sanitization callback function passed.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.
  3. Presence of iframes : iframes are sometimes used to load unwanted adverts and malicious code on another site Found <iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="'.$protocol.'://www.youtube.com/embed/' . $id . '?' . $params . '" frameborder="0" allowfullscreen="true"> in file shortcodes.php.
    Line 487: $return[] = '<iframe width='' . $atts['width'] . '' height='' . $atts['height'] . '' src
  4. Malware : Operations on file system fopen was found in the file class.redux_helpers.php
    Line 657: //$fp = fopen( $file, 'r' );
    fread was found in the file class.redux_helpers.php
    Line 660: //$file_data = fread( $fp, 8192 );
    fclose was found in the file class.redux_helpers.php
    Line 663: //fclose( $fp );
  5. Admin menu : Themes should use add_theme_page() for adding admin pages. File status.php :
    Line 136: add_management_page(__( 'Kadence System Status', 'virtue' ), __( 'System St
    File class-tgm-plugin-activation.php :
    Line 731: $this->page_hook = call_user_func( 'add_submenu_page', $args['parent_slug'], $args['page_title'], $args['menu_t
    File custom.php :
    Line 710: remove_action('admin_notices', array('RevSliderAdmin', 'add_plugins_page_notices'));
    File framework.php :
    Line 1327: // wrappers and need to be appened to using add_submenu_page.
    Line 1378: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1436: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Line 1327: // wrappers and need to be appened to using add_submenu_page.
    Line 1378: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1436: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Line 1404: $this->page = call_user_func( 'add_menu_page', $this->args['page_title'], $this->args['menu_title'], $this
    File framework.php :
    Line 1327: // wrappers and need to be appened to using add_submenu_page.
    Line 1378: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Line 1436: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in scripts.php. Themes must not deregister core scripts.
    Line 45: wp_deregister_script('wc-add-to-cart-variation');
    Found wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Line 545: 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 tagsThe tag flexible-width has been deprecated, it must be removed from style.css header.The tag photoblogging has been deprecated, it must be removed from style.css header.
  3. Text domain : Incorrect use of translation functions.Wrong installation directory for the theme name. The directory name must match the slug of the theme. This theme's correct slug and text-domain is virtue-premium.
  4. Text domain : Incorrect use of translation functions.Found a translation function that is missing a text-domain. Function __, with the arguments in file page-contact.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'virtue' in file kt-api.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'virtue' in file kt-api.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'virtue' in file kt-api.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'virtue' in file kt-api.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Save' in file init.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file custom-woocommerce.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file custom-woocommerce.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file custom-woocommerce.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file nav.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file nav.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file page-header.php.Found a translation function that is missing a text-domain. Function __, with the arguments in file page-header.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 virtue, kadence-importer, redux-framework, pinnacle.
  5. Plugin territory : Plugin territory functionalitiesThe theme uses the register_post_type() function, which is plugin-territory functionality.The theme uses the add_shortcode() function. Custom post-content shortcodes are plugin-territory functionality.
  6. Hidden admin bar : Hidden admin Bar in CSSThemes should not hide admin bar. Detected in file virtue.css.
  7. Custom elements : Presence of custom headerNo reference to custom header was found in the theme.
  8. Custom elements : Presence of custom backgroundNo reference to custom background was found in the theme.
  9. I18N implementation : Proper use of ___all(Possible variable $contactformtitle found in translation function in page-contact.php. Translation function calls should not contain PHP variables.
    Line 211: echo '<h3>'. __($contactformtitle) .'</h3>';
    Possible variable $this found in translation function in kt-api.php. Translation function calls should not contain PHP variables.
    Line 252: $page = add_theme_page( __( $this->kt_settings_menu_title, 'virtue' ), __( $this->kt_settings_menu_
    Possible variable $this found in translation function in kt-api.php. Translation function calls should not contain PHP variables.
    Line 252: $page = add_theme_page( __( $this->kt_settings_menu_title, 'virtue' ), __( $this->kt_settings_menu_
    Possible variable $this found in translation function in kt-api.php. Translation function calls should not contain PHP variables.
    Line 257: $settings_tabs = array( $this->kt_activation_tab_key => __( $this->kt_menu_tab_activation_title, 'virtue' ), $this->kt_deactivation
    Possible variable $this found in translation function in kt-api.php. Translation function calls should not contain PHP variables.
    Line 257: $settings_tabs = array( $this->kt_activation_tab_key => __( $this->kt_menu_tab_activation_title, 'virtue' ), $this->kt_deactivation_tab_key => __( $this->kt_menu_tab_deactivation_title, 'virtue' ) );
    Possible variable $tab_content_01 found in translation function in custom-woocommerce.php. Translation function calls should not contain PHP variables.
    Line 232: echo do_shortcode('<div class='product_custom_content_case'>'.apply_filters('kadence_custom_woo_tab_01_content', __($tab_content_01) ).'</div>');
    Possible variable $tab_content_02 found in translation function in custom-woocommerce.php. Translation function calls should not contain PHP variables.
    Line 253: echo do_shortcode('<div class='product_custom_content_case'>'.apply_filters('kadence_custom_woo_tab_02_content', __($tab_content_02) ).'</div>');
    Possible variable $tab_content_03 found in translation function in custom-woocommerce.php. Translation function calls should not contain PHP variables.
    Line 275: echo do_shortcode('<div class='product_custom_content_case'>'.apply_filters('kadence_custom_woo_tab_03_content', __($tab_content_03) ).'</div>');
    Possible variable $description found in translation function in nav.php. Translation function calls should not contain PHP variables.
    Line 60: $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . __($description) . $args->link_after;
    Line 170: $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . __($description) . $args->link_after;
    Possible variable $description found in translation function in nav.php. Translation function calls should not contain PHP variables.
    Line 60: $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . __($description) . $args->link_after;
    Line 170: $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . __($description) . $args->link_after;
    Possible variable $bsub found in translation function in page-header.php. Translation function calls should not contain PHP variables.
    Line 8: if(is_page()) {$bsub = get_post_meta( $post->ID, '_kad_subtitle', true ); if(!empty($bsub)) echo '<p class='subtitle'> '.__($bsub).' </p>'; }
  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 base-kadslider.php.
    Line 12: <!--[if lt IE 8]><div class='alert'>Your browser is <em>ancient!</em> Upgrade to a different browser</a> or <a href='http://www.google.com/chromeframe/?redirect=true'>install Google Chrome Fra
    Possible hard-coded links were found in the file kt-api.php.
    Line 324: <a href='http://docs.kadencethemes.com/virtue-premium/upgrade-from-free-to-premium/'
    Line 324: <a href='http://docs.kadencethemes.com/virtue-premium/upgrade-from-free-to-premium/'
    Line 325: <a href='http://docs.kadencethemes.com/virtue-premium/' target='_blank'><?php echo _
    Line 331: <a href='http://docs.kadencethemes.com/virtue-premium/premium-changelog/' target='_b
    Line 326: <a href='https://www.kadencethemes.com/kadence-themes-demo-content/' target='_blank'
    Line 379: <p><?php echo __('For a turorial on how to use the Importer go here:', 'virtue'). ' <a href='https://www.kadencethemes.com/kadence-themes-demo-content/'>https://www.kad
    Line 327: <a href='https://www.kadencethemes.com/category/tutorials/virtue-theme/' target='_bl
    Line 329: <a href='https://www.kadencethemes.com/support-forums/forum/virtue-theme/' target='_
    Line 331: <a href='http://docs.kadencethemes.com/virtue-premium/premium-changelog/' target='_b
    Line 326: <a href='https://www.kadencethemes.com/kadence-themes-demo-content/' target='_blank'
    Line 379: <p><?php echo __('For a turorial on how to use the Importer go here:', 'virtue'). ' <a href='https://www.kadencethemes.com/kadence-themes-demo-content/'>https://www.kad
    Line 86: $this->kt_renew_license_url             = 'https://www.kadencethemes.com/my-account/'; // URL to renew a license
    Line 563: echo __('Activating your license allows for updates to theme and bundled plugins. If you need your api key you will find it by logging in here:', 'virtue') . ' <a href='https://www.kadencethemes.com/my-account/' target='_blank'>kadencethemes.co
    Possible hard-coded links were found in the file options.php.
    Line 113: 'footer_credit' => __('Thank you for using the Virtue Theme by <a href='https://kadencethemes.com/' target='_blank'>Kadence Themes</a>.', 'virtue')
    Line 170: <p>'.__('This theme was developed by', 'virtue').' <a href=\'https://kadencethemes.com/\' target=\'_blank\'>Kadence Themes</a></p>
    Line 173: '.__('For support please visit', 'virtue').': <a href=\'https://kadencethemes.com/support/\' target=\'_blank\'>kadencethemes.com/su
  2. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  3. Optional files : Presence of category template file category.phpThis theme does not contain optional file category.php.
  4. Optional files : Presence of tag template file tag.phpThis theme does not contain optional file tag.php.
  5. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  6. Optional files : Presence of author template file author.phpThis theme does not contain optional file author.php.
  7. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  8. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  9. Use of includes : Use of include or requireThe theme appears to use include or require : kt-api.php
    Line 93: //require_once( 'classes/kt-key-api.php' );
    Line 96: // require_once( 'classes/kt-api-manager-menu.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 : shortcodes.php
    Line 19: include_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 : testimonial_form_shortcode.php
    Line 67: require_once( ABSPATH . 'wp-admin/includes/image.php' );
    Line 68: require_once( ABSPATH . 'wp-admin/includes/file.php' );
    Line 69: require_once( ABSPATH . 'wp-admin/includes/media.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 : init.php
    Line 227: @include( $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 : custom.php
    Line 306: include_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 : metaboxes.php
    Line 1485: require_once 'cmb/init.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_advanced_customizer.php
    Line 163: include_once( $this->upload_dir . $option['type'] . '.php' );
    Line 171: //include_once( ReduxFramework::$_dir . 'core/enqueue.php' );
    Line 329: //include_once( dirname( __FILE__ ) . '/advanced_customizer_control.php' );
    Line 597: include_once( $this->upload_dir . $option['type'] . '.php' );
    Line 799: 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 : framework.php
    Line 1685: require_once 'core/enqueue.php';
    Line 2832: require_once 'core/enqueue.php';
    Line 2890: require_once 'core/panel.php';
    Line 3219: 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 749: 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.
Other checked themes