我正在编写一个插件,我必须从另一个php
文件扩展一个类。但我得到了Fatal error: Class 'EWWL_Admin_Init' not found
。
这是我的主要文件代码。
class Eden_Woocommerce_WL_Admin {
private static $instance = null;
public static function getInstance() {
if (is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
public function __construct() {
$this->includes();
$this->add_menu_page();
}
private function includes() {
include_once( EWCWL_PLUGIN_DIR . '/includes/admin/ewwl-admin-menu.php' );
include_once( EWCWL_PLUGIN_DIR . '/includes/admin/ewwl-admin-init.php' );
}
private function add_menu_page() {
EWWL_Admin_Init::getInstance();
EWCWL_Admin_menu::getInstance();
}
}
这里是EWCWL_Admin_menu
class
class EWCWL_Admin_menu extends EWWL_Admin_Init {
private static $instance = null;
public static function getInstance() {
if(is_null(self::$instance)){
self::$instance = new self();
}
}
public function __construct($args = array()) {
if (!empty($args)) {
$this->settings = $args;
if (isset($this->settings['create_menu_page']) && $this->settings['create_menu_page']) {
add_action('admin_menu', array($this, 'add_ewwl_menu_page'));
}
}
}
public function add_ewwl_menu_page() {
$position = apply_filters('ewcwl_plugins_menu_item_position', '62.32');
add_menu_page('plugin_panel', __('Menu title', 'ed-wcwl'), 'manage_options', 'ed_plugin_panel', NULL, '', $position);
}
}
这是EWWL_Admin_Init
类
class EWWL_Admin_Init {
private static $instance = null;
public static function getInstance() {
if( is_null(self::$instance) ){
self::$instance = new self();
}
return self::$instance;
}
public function __construct() {
}
}
可能是我错过了什么。提前谢谢。
答案 0 :(得分:0)
之所以发生这种情况,是因为EWWL_Admin_Init
之前没有EWCWL_Admin_menu
。交换两行
include_once( EWCWL_PLUGIN_DIR . '/includes/admin/ewwl-admin-init.php' );
include_once( EWCWL_PLUGIN_DIR . '/includes/admin/ewwl-admin-menu.php' );
来自Eden_Woocommerce_WL_Admin
课程的解决了这个问题。