diff --git a/src/Plugin/AbstractPlugin.php b/src/Plugin/AbstractPlugin.php index 06be995de21809348cc64a4f9401fd5e989b6743..e304ec7d41f87794c4fcf11251463e72adf7d308 100644 --- a/src/Plugin/AbstractPlugin.php +++ b/src/Plugin/AbstractPlugin.php @@ -42,14 +42,28 @@ abstract class AbstractPlugin implements \WPDesk_Translable { public function init() { $this->init_base_variables(); + $this->register_plugin_hooks(); $this->hooks(); } + /** + * Register plugin activation & deactivation hooks. + */ + public function register_plugin_hooks() { + register_activation_hook( $this->plugin_info->get_plugin_file_name(), array( $this, 'plugin_activation' ) ); + register_deactivation_hook( $this->plugin_info->get_plugin_file_name(), array( $this, 'plugin_deactivation' ) ); + } + + /*** + * Init base variables. + */ public function init_base_variables() { $this->plugin_url = plugin_dir_url( $this->plugin_info->get_plugin_dir() ); } /** + * Fires hooks. + * * @return void */ protected function hooks() { @@ -66,6 +80,8 @@ abstract class AbstractPlugin implements \WPDesk_Translable { } /** + * Get file path. + * * @return string */ public function get_plugin_file_path() { @@ -73,6 +89,8 @@ abstract class AbstractPlugin implements \WPDesk_Translable { } /** + * Get plugin. + * * @return $this */ public function get_plugin() { @@ -80,6 +98,7 @@ abstract class AbstractPlugin implements \WPDesk_Translable { } /** + * Load plugin text domain. * @return void */ public function load_plugin_text_domain() { @@ -87,6 +106,8 @@ abstract class AbstractPlugin implements \WPDesk_Translable { } /** + * Get text domain. + * * @return string */ public function get_text_domain() { @@ -94,17 +115,25 @@ abstract class AbstractPlugin implements \WPDesk_Translable { } /** + * Get namespace. + * * @return string */ public function get_namespace() { return $this->plugin_namespace; } + /** + * Get plugin assets. + * + * @return string + */ public function get_plugin_assets_url() { return esc_url( trailingslashit( $this->get_plugin_url() . 'assets' ) ); } /** + * Get plugin URL. * * @return string */ @@ -112,18 +141,22 @@ abstract class AbstractPlugin implements \WPDesk_Translable { return esc_url( trailingslashit( $this->plugin_url ) ); } + /** + * Enqueue backend scripts + */ public function admin_enqueue_scripts() { } + /** + * Enqueue frontend scripts + */ public function wp_enqueue_scripts() { } /** - * action_links function. - * - * @access public + * Add custom plugin links. * - * @param mixed $links + * @param array $links Plugin links. * * @return array */ @@ -152,5 +185,19 @@ abstract class AbstractPlugin implements \WPDesk_Translable { return $links; } + /** + * Plugin activation hook + */ + public function plugin_activation() { + + } + + /** + * Plugin deactivation hook + */ + public function plugin_deactivation() { + + } + }