loading-inspection-manager.php (1495B)
1 <?php 2 namespace Elementor\Core\Debug; 3 4 use Elementor\Core\Debug\Classes\Inspection_Base; 5 use Elementor\Core\Debug\Classes\Theme_Missing; 6 use Elementor\Core\Debug\Classes\Htaccess; 7 8 class Loading_Inspection_Manager { 9 10 public static $_instance = null; 11 12 public static function instance() { 13 if ( null === self::$_instance ) { 14 self::$_instance = new Loading_Inspection_Manager(); 15 } 16 return self::$_instance; 17 } 18 19 /** @var Inspection_Base[] */ 20 private $inspections = []; 21 22 public function register_inspections() { 23 $this->inspections['theme-missing'] = new Theme_Missing(); 24 $this->inspections['htaccess'] = new Htaccess(); 25 } 26 27 /** 28 * @param Inspection_Base $inspection 29 */ 30 public function register_inspection( $inspection ) { 31 $this->inspections[ $inspection->get_name() ] = $inspection; 32 } 33 34 public function run_inspections() { 35 $debug_data = [ 36 'message' => esc_html__( 'We\'re sorry, but something went wrong. Click on \'Learn more\' and follow each of the steps to quickly solve it.', 'elementor' ), 37 'header' => esc_html__( 'The preview could not be loaded', 'elementor' ), 38 'doc_url' => 'https://go.elementor.com/preview-not-loaded/', 39 ]; 40 foreach ( $this->inspections as $inspection ) { 41 if ( ! $inspection->run() ) { 42 $debug_data = [ 43 'message' => $inspection->get_message(), 44 'header' => $inspection->get_header_message(), 45 'doc_url' => $inspection->get_help_doc_url(), 46 'error' => true, 47 ]; 48 break; 49 } 50 } 51 52 return $debug_data; 53 } 54 }