53
Validation results

Shopkeeper

Shopkeeper

WordPress 6.5.2 theme
53
This theme seems to be proprietary. Themecheck doesn't distribute commercial themes.
Critical alerts
  1. Customizer : Sanitization of Customizer settings Found a Customizer setting that did not have a sanitization callback function in file header-styles.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 header-elements.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 header-topbar.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 header-sticky.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 header-transparency.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 header-logo.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 section-footer.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 section-styling.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 section-fonts.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 shop-product-badges.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 shop-product-card.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 shop-mobile.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 section-product.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 section-blog.php. Every call to the add_setting() method needs to have a sanitization callback function passed.
  2. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was ._js_composer.zip ._woocommerce-colororimage-variation-select.zip js_composer.zip woocommerce-colororimage-variation-select.zip.
Warning
  1. theme tags : Presence of bad theme tagsFound wrong tag in style.css header.
  2. Text domain : Incorrect use of translation functions.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, woocommerce, tgmpa.
  3. Custom elements : Presence of custom headerNo reference to custom header was found in the theme.
  4. Custom elements : Presence of custom backgroundNo reference to custom background was found in the theme.
  5. I18N implementation : Proper use of _e(Possible variable $plugin found in translation function in class-gbt-install-wizard.php. Translation function calls should not contain PHP variables.
  6. I18N implementation : Proper use of esc_html_e(Possible variable $plugin found in translation function in class-gbt-install-wizard.php. Translation function calls should not contain PHP variables.
  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. favicon presence : Favicon managementPossible Favicon found in theme-setup.php. Favicons are handled by the Site Icon setting in the customizer since version 4.3.
  2. Static links : Presence of hard-coded linksPossible hard-coded links were found in the file section-fonts.php.223: 'description' => Shopkeeper_Fonts::get_google_suggested_fonts_list() . __( 'Shopkeeper supports all fonts on <a href='https://fonts.google.com' target='_blank'>Google Fonts</a>.', 'shopkeeper' 468: 'description' => Shopkeeper_Fonts::get_google_suggested_fonts_list() . __( 'Shopkeeper supports all fonts on <a href='https://fonts.google.com' target='_blank'>Google Fonts</a>.', 'shopkeeper' 257: 'description' => Shopkeeper_Fonts::get_web_safe_suggested_fonts_list() . __( 'Shopkeeper supports all <a href='https://www.w3schools.com/cssref/css_websafe_fonts.asp' target='_blank'>web502: 'description' => Shopkeeper_Fonts::get_web_safe_suggested_fonts_list() . __( 'Shopkeeper supports all <a href='https://www.w3schools.com/cssref/css_websafe_fonts.asp' target='_blank'>web223: 'description' => Shopkeeper_Fonts::get_google_suggested_fonts_list() . __( 'Shopkeeper supports all fonts on <a href='https://fonts.google.com' target='_blank'>Google Fonts</a>.', 'shopkeeper' 468: 'description' => Shopkeeper_Fonts::get_google_suggested_fonts_list() . __( 'Shopkeeper supports all fonts on <a href='https://fonts.google.com' target='_blank'>Google Fonts</a>.', 'shopkeeper' 257: 'description' => Shopkeeper_Fonts::get_web_safe_suggested_fonts_list() . __( 'Shopkeeper supports all <a href='https://www.w3schools.com/cssref/css_websafe_fonts.asp' target='_blank'>web502: 'description' => Shopkeeper_Fonts::get_web_safe_suggested_fonts_list() . __( 'Shopkeeper supports all <a href='https://www.w3schools.com/cssref/css_websafe_fonts.asp' target='_blank'>web
  3. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  4. Optional files : Presence of front page template file front-page.phpThis theme does not contain optional file front-page.php.
  5. Optional files : Presence of home template file home.phpThis theme does not contain optional file home.php.
  6. Optional files : Presence of category template file category.phpThis theme does not contain optional file category.php.
  7. Optional files : Presence of tag template file tag.phpThis theme does not contain optional file tag.php.
  8. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  9. Optional files : Presence of author template file author.phpThis theme does not contain optional file author.php.
  10. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  11. Optional files : Presence of archive template file archive.phpThis theme does not contain optional file archive.php.
  12. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  13. Use of includes : Use of include or requireThe theme appears to use include or require : index.php 8: include( get_parent_theme_file_path('index-layout-1.php') );11: include( get_parent_theme_file_path('index-layout-2.php') );14: include( get_parent_theme_file_path('index-layout-3.php') );17: include( get_parent_theme_file_path('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 : header.php 111: <?php include( get_parent_theme_file_path('header-topbar.php') ); ?>116: <?php include( get_parent_theme_file_path('header-default.php') ); ?>118: <?php include( get_parent_theme_file_path('header-centered-2menus.php') ); ?>120: <?php include( get_parent_theme_file_path('header-centered-menu-under.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 16: include( $path . 'body.php' );17: include( $path . 'fonts.php' );18: include( $path . 'colors.php' );19: include( $path . 'topbar.php' );20: include( $path . 'header.php' );21: include( $path . 'footer.php' );22: include( $path . 'gutenberg.php' );25: include( $path . 'woocommerce.php' );29: include( $path . 'product-blocks.php' );47: include( get_template_directory() . '/inc/custom-styles/backend/gutenberg.p 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 : ocdi-setup.php 63: 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 : fields.php 11: include_once( get_template_directory() . '/inc/customizer/backend/sections/12: include_once( get_template_directory() . '/inc/customizer/backend/sections/13: include_once( get_template_directory() . '/inc/customizer/backend/sections/14: include_once( get_template_directory() . '/inc/customizer/backend/sections/15: include_once( get_template_directory() . '/inc/customizer/backend/sections/16: include_once( get_template_directory() . '/inc/customizer/backend/sections/17: include_once( get_template_directory() . '/inc/customizer/backend/sections/22: include_once( get_template_directory() . '/inc/customizer/backend/sections/27: include_once( get_template_directory() . '/inc/customizer/backend/sections/32: include_once( get_template_directory() . '/inc/customizer/backend/sections/37: include_once( get_template_directory() . '/inc/customizer/backend/sections/44: include_once( get_template_directory() . '/inc/customizer/backend/sections/45: include_once( get_template_directory() . '/inc/customizer/backend/sections/46: include_once( get_template_directory() . '/inc/customizer/backend/sections/47: include_once( get_template_directory() . '/inc/customizer/backend/sections/48: include_once( get_template_directory() . '/inc/customizer/backend/sections/49: include_once( get_template_directory() . '/inc/customizer/backend/sections/54: include_once( get_template_directory() . '/inc/customizer/backend/sections/ 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 : backend.php 8: include_once( get_template_directory() . '/inc/customizer/backend/config.ph9: include_once( get_template_directory() . '/inc/customizer/backend/sections.10: include_once( get_template_directory() . '/inc/customizer/backend/fields.ph 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-setup.php 8: require_once( get_template_directory() . '/inc/tgm/class-tgm-plugin-activat9: require_once( get_template_directory() . '/inc/tgm/plugins.php' );10: require_once( get_template_directory() . '/inc/admin/wizard/class-gbt-helpe11: require_once( get_template_directory() . '/inc/admin/wizard/class-gbt-insta12: require_once( get_template_directory() . '/inc/demo/ocdi-setup.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 : actions.php 14: include( get_template_directory() . '/inc/notifications/custom/class-custom16: include( get_template_directory() . '/inc/notifications/classic/class-class26: include_once( get_template_directory() . '/inc/search/class-search.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