## 07-创建插件要点及单例模式
- 2.1 网关类定义钩子
```php
add_action('plugins_loaded', 'init_your_gateway_class');
```
1. 在 plugins 文件下创建 wcc-alipay 目录
2. 创建 wcc-alipay.php 文件
```php
/**
* Plugin Name: WooCommerce Alipay Gateway
* Plugin URI: http://www.xxx.com
* Description: 支付宝网关
* Version: 3.2.5
* Author: Automattic
* Author URI: http://www.xxx.com
*/
if (! defined('ABSPATH')) {
exit;
}
// 定义常量
define('WCC_ALIPAY_PLUGIN_PATH', plugin_dir_path(__FILE__));
define('WCC_ALIPAY_PLUGIN_URL', plugin_dir_url(__FILE__));
class WCC_Alipay {
public function init() {
// 判断 wcc 是否启用,如果未启用,后续代码不执行
if ( !in_array('woocommerce/woocommerce.php', get_option('active_plugins'))) {
return;
}
// 定义支付宝网关的核心类
}
}
```
最佳插件: https://kinsta.com/topic/wordpress-plugins/#lms