verifier = new Shielda_Verifier(); $this->hooks = new Shielda_Hooks($this->verifier); $this->settings = new Shielda_Settings(); // Register activation and deactivation hooks register_activation_hook(SHIELDA_PLUGIN_FILE, array($this, 'activate')); register_deactivation_hook(SHIELDA_PLUGIN_FILE, array($this, 'deactivate')); // Load plugin action links add_filter('plugin_action_links_' . plugin_basename(SHIELDA_PLUGIN_FILE), array($this, 'plugin_action_links')); } /** * Activation hook callback. */ public function activate() { // Set default options if not exists $defaults = array( 'site_key' => '', 'secret_key' => '', 'enable_wp_login' => '1', 'enable_wp_register' => '1', 'enable_wp_comments' => '1', 'enable_wp_lostpassword' => '1', 'enable_wc_login' => '1', 'enable_wc_register' => '1', 'enable_wc_lostpassword' => '1', 'enable_wc_checkout' => '1', 'enable_wpforms_lite' => '1', 'enable_wpforms_pro' => '1', ); $current = get_option('shielda_settings', array()); $merged = wp_parse_args($current, $defaults); update_option('shielda_settings', $merged); } /** * Deactivation hook callback. */ public function deactivate() { // Optional cleanup } /** * Add settings link to plugins list. * * @param array $links * @return array */ public function plugin_action_links($links) { $settings_link = '' . esc_html__('Settings', 'shielda-captcha') . ''; array_unshift($links, $settings_link); return $links; } } // Initialize plugin function shielda_captcha() { return Shielda_Captcha::instance(); } add_action('plugins_loaded', 'shielda_captcha');