plugin_file_name_path = $plugin_file_path; $this->plugin_dir_path = plugin_dir_path( $this->plugin_file_name_path ); $this->plugin_dir_url = plugin_dir_url( $this->plugin_file_name_path ); $plugin_data = get_file_data( $this->plugin_file_name_path, array( 'Version' => 'Version', 'Text Domain' => 'Text Domain', 'Domain Path' => 'Domain Path', ), 'plugin' ); $this->version = $plugin_data['Version'] ?? '1.0'; $this->text_domain_path = $plugin_data['Domain Path'] ?? '/languages'; $this->text_domain = $plugin_data['Text Domain'] ?? ''; } /** * Returns base plugin name based on it's main Namespace - useful for localize script variable names. * * @return string */ public static function get_short_name() { $namespace_parts = explode( '\\', static::class ); return $namespace_parts[0] . $namespace_parts[1] ?? ''; } /** * Is plugin active * * @param string $plugin * * @return bool */ public function is_plugin_active( string $plugin ): bool { return in_array( $plugin, (array) get_option( 'active_plugins', [] ), true ); } /** * Is install active * * @param string $plugin * * @return bool */ public function is_plugin_install( string $plugin ): bool { return array_key_exists( $plugin, get_plugins() ); } }