<?php
/**
* Plugin Name: Lionel
* Plugin URI: #
* Description: #
* Version: 1.10
* Requires at least: 5.2
* Requires PHP: 7.2
* Author: #
* Author URI: https://author.example.com/
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: lionelplugin
* Domain Path: /languages
*/
if (!defined('WPINC')) {
die;
}
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if (is_plugin_active('woocommerce/woocommerce.php')) {
run_wpf_ct();
} else {
add_action('admin_notices', 'wpf_admin_notice_ct');
}
function run_wpf_ct() {
require plugin_dir_path(__FILE__) . 'includes/class-wpf_ct.php';
$version = WPF_CT::get_plugin_version(__FILE__);
$wpf = WPF_CT::get_instance();
$wpf->set_version( $version );
$wpf->init();
}
function wpf_admin_notice_ct(){
?>
<div class="error">
<p><?php _e('Themify WooCommerce Product Filter requires the WooCommerce plugin. Please install and activate WooCommerce first, then activate this plugin.', 'wpf'); ?></p>
</div>
<?php
}
?>
<?php
class WPF_Admin_CT {
private $plugin_name;
private $version;
public function __construct($plugin_name, $version) {
$this->plugin_name = $plugin_name;
$this->version = $version;
echo $this->version;
}
}
?>
<?php
class WPF_CT {
private static $plugin_name;
private static $version;
public static function get_instance() {
static $instance = null;
if ($instance === null) {
$instance = new self;
}
return $instance;
}
private function __construct() {}
public function init() {
self::$plugin_name = 'wpf_ct';
$this->load_dependencies();
if ( is_admin() ) {
$this->define_admin_hooks();
}
if ( !is_admin() ) {
$this->define_public_hooks();
}
}
private function load_dependencies() {
$plugindir = plugin_dir_path(dirname(__FILE__));
if(is_admin()){
require_once $plugindir . 'admin/class-wpf-admin_ct.php';
}
if(!is_admin()){
require_once $plugindir . 'public/class-wpf-public_ct.php';
}
}
public function get_plugin_name() {
return self::$plugin_name;
}
private function define_public_hooks() {
if ( ! is_admin()) {
WPF_Public_CT::get_instance();
}
}
public function set_version( $version ) {
self::$version = $version;
}
public static function get_plugin_version($plugin_url) {
$plugin_data = get_file_data($plugin_url, array('ver' => 'Version'));
return $plugin_data['ver'];
}
private function define_admin_hooks() {
new WPF_Admin_CT(self::$plugin_name, self::$version);
}
}
?>
C:\xampp\htdocs\test\wp-content\plugins\plugin-name\public\class-wpf-public_ct.php
<?php
class WPF_Public_CT {
private $plugin_name;
private $version;
public static function get_instance() {
static $instance = null;
if ( $instance === null ) {
$instance = new self;
}
return $instance;
}
private function __construct() {
$this->plugin_name = WPF_CT::get_instance()->get_plugin_name();
}
}
?>