第三方插件依赖关系-如何正确加载类

时间:2015-04-29 作者:emeraldjava

我试图理解an中的这段代码existing wordpress plugin 这取决于第三方events-manager plugin 作品我知道调用“plugins\\u loaded”操作挂钩是为了注册“class events manager stripe”类,但下一行在第三方插件中调用静态类“EM\\u Gateways”。我看不出这个类在插件中的什么地方被包含或加载为php类加载机制的一部分。

代码为示例

function emp_stripe_register() {
    //check that EM Pro is installed
    if( ! defined( \'EMP_VERSION\' ) ) {
        add_action( \'admin_notices\', \'emp_stripe_requirements\' );
        return false; //don\'t load plugin further
    }
    require_once( plugin_dir_path( __FILE__ ) . \'class-events-manager-stripe.php\' );
    EM_Gateways::register_gateway(\'stripe\', \'EM_Gateway_Stripe\');
}
add_action( \'plugins_loaded\', \'emp_stripe_register\', 1000);
我已经在本地为自己的插件重用了代码,但一直出现此错误

[29-Apr-2015 12:23:56 UTC] PHP Fatal error:  Class \'EM_Gateways\' not found in /home/xxxx/projects/github/bhaa/public/class-bhaa.php on line 93
我需要做什么来确保“EM\\u Gateways”类作为插件启动的一部分加载?

1 个回复
SO网友:alexg

这个EM_Gateways 类允许您将支付网关添加到插件的Pro版本,而不是免费版本。Pro似乎是一个插件,您可以与免费版本一起安装,然后访问支付网关功能。

从…起their website:

事件管理器Pro 具有每个网关都扩展的基本网关类,这意味着将网关链接到事件管理器需要最少的代码。更重要的是,这允许开发人员创建自己的插件,以升级安全的方式向事件管理器添加新网关。

搜索github您可以了解some random version of the class looks like. 如果你需要一个可靠的最新版本,你可能需要购买插件。

结束

相关推荐