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); } } Captcha::instance(); }