From 8889f03943d58030853c43031d3f1be4fb15dd91 Mon Sep 17 00:00:00 2001
From: potreb <potreb@gmail.com>
Date: Sat, 21 Sep 2019 10:38:03 +0200
Subject: [PATCH] Activation?

---
 src/Plugin/AbstractPlugin.php | 55 ++++++++++++++++++++++++++++++++---
 1 file changed, 51 insertions(+), 4 deletions(-)

diff --git a/src/Plugin/AbstractPlugin.php b/src/Plugin/AbstractPlugin.php
index 06be995..e304ec7 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() {
+
+	}
+
 }
 
-- 
GitLab