1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class TS_Woo_Active {
public $plugin_name = '';
public $plugin_file = '';
public $ts_locale = '';
public function __construct( $ts_plugin_name = '' , $ts_file_name = '', $ts_locale = '' ) {
$this->plugin_name = $ts_plugin_name;
$this->plugin_file = $ts_file_name;
$this->ts_locale = $ts_locale;
if ( '' != $this->plugin_file ) {
add_action( 'admin_init', array( &$this, 'ts_check_if_woocommerce_active' ) );
}
}
public function ts_check_if_woocommerce_active() {
if ( ! $this->ts_check_woo_installed() ) {
if ( is_plugin_active( $this->plugin_file ) ) {
deactivate_plugins( $this->plugin_file );
add_action( 'admin_notices', array( &$this, 'ts_disabled_notice' ) );
if ( isset( $_GET[ 'activate' ] ) ) {
unset( $_GET[ 'activate' ] );
}
}
}
}
public function ts_check_woo_installed() {
if ( class_exists( 'WooCommerce' ) ) {
return true;
} else {
return false;
}
}
public function ts_disabled_notice() {
$class = 'notice notice-error';
$message = __( $this->plugin_name . ' plugin requires WooCommerce installed and activate.', $this->ts_locale );
printf( '<div class="%1$s"><p>%2$s</p></div>', $class, $message );
}
}