diff --git a/ogre-captcha.php b/ogre-captcha.php index b331c32..9fb4b79 100644 --- a/ogre-captcha.php +++ b/ogre-captcha.php @@ -41,83 +41,87 @@ defined('ABSPATH') || exit; require_once 'vendor/autoload.php'; -final class Captcha extends Plugin { +if (!class_exists('Ogre\Captcha')) { - public static function is_woocommerce_active():bool { - return is_plugin_active('woocommerce/woocommerce.php'); - } + final class Captcha extends Plugin { - public static function is_gravityforms_active():bool { - return is_plugin_active('gravityforms/gravityforms.php'); - } - - protected function __construct() { - parent::__construct(); - - $this->add_files([ - 'inc/class-settings.php', - 'inc/class-api.php', - 'inc/class-widget.php', - 'inc/abstract-location.php', - 'inc/location/class-comment-form.php', - 'inc/location/class-login-form.php', - 'inc/location/class-login-page.php', - 'inc/location/class-lost-password-form.php', - 'inc/location/class-post-password-form.php', - 'inc/location/class-registration-page.php', - ]); - - if (class_exists('WP_CLI')) { - $this->add_file('inc/class-cli.php'); + public static function is_woocommerce_active():bool { + return is_plugin_active('woocommerce/woocommerce.php'); } - } - #[Override] - protected function enable():void { - parent::enable(); - add_filter('plugin_action_links_' . self::get_basename(), [$this, 'action_links']); - add_action('plugins_loaded', [$this, 'load_woocommerce'], 2, 0); - add_action('gform_loaded', [$this, 'load_gravityforms'], 5, 0); - } - - #[Override] - protected function disable():void { - parent::disable(); - remove_filter('plugin_action_links_' . self::get_basename(), [$this, 'action_links']); - remove_action('plugins_loaded', [$this, 'load_woocommerce'], 2); - remove_action('gform_loaded', [$this, 'load_gravityforms'], 5); - } - - public function action_links(array $links):array { - if (current_user_can('manage_options')) { - array_unshift($links, sprintf( - '%s', - esc_url(Settings::get_url()), - esc_html(self::__('Settings')) - )); + public static function is_gravityforms_active():bool { + return is_plugin_active('gravityforms/gravityforms.php'); } - return $links; + + protected function __construct() { + parent::__construct(); + + $this->add_files([ + 'inc/class-settings.php', + 'inc/class-api.php', + 'inc/class-widget.php', + 'inc/abstract-location.php', + 'inc/location/class-comment-form.php', + 'inc/location/class-login-form.php', + 'inc/location/class-login-page.php', + 'inc/location/class-lost-password-form.php', + 'inc/location/class-post-password-form.php', + 'inc/location/class-registration-page.php', + ]); + + if (class_exists('WP_CLI')) { + $this->add_file('inc/class-cli.php'); + } + } + + #[Override] + protected function enable():void { + parent::enable(); + add_filter('plugin_action_links_' . self::get_basename(), [$this, 'action_links']); + add_action('plugins_loaded', [$this, 'load_woocommerce'], 2, 0); + add_action('gform_loaded', [$this, 'load_gravityforms'], 5, 0); + } + + #[Override] + protected function disable():void { + parent::disable(); + remove_filter('plugin_action_links_' . self::get_basename(), [$this, 'action_links']); + remove_action('plugins_loaded', [$this, 'load_woocommerce'], 2); + remove_action('gform_loaded', [$this, 'load_gravityforms'], 5); + } + + public function action_links(array $links):array { + if (current_user_can('manage_options')) { + array_unshift($links, sprintf( + '%s', + esc_url(Settings::get_url()), + esc_html(self::__('Settings')) + )); + } + return $links; + } + + public function load_woocommerce():void { + if (!self::is_woocommerce_active()) return; + + $this->add_files([ + 'inc/location/woocommerce/class-checkout.php', + 'inc/location/woocommerce/class-login.php', + 'inc/location/woocommerce/class-lost-password.php', + 'inc/location/woocommerce/class-register.php', + ]); + } + + public function load_gravityforms():void { + if (!self::is_gravityforms_active() || !method_exists('GFForms', 'include_addon_framework')) return; + + require_once('inc/gravityforms/class-addon.php'); + + GFAddOn::register(Addon::class); + } + } - public function load_woocommerce():void { - if (!self::is_woocommerce_active()) return; - - $this->add_files([ - 'inc/location/woocommerce/class-checkout.php', - 'inc/location/woocommerce/class-login.php', - 'inc/location/woocommerce/class-lost-password.php', - 'inc/location/woocommerce/class-register.php', - ]); - } - - public function load_gravityforms():void { - if (!self::is_gravityforms_active() || !method_exists('GFForms', 'include_addon_framework')) return; - - require_once('inc/gravityforms/class-addon.php'); - - GFAddOn::register(Addon::class); - } + Captcha::instance(); } - -Captcha::instance();