is_plugin_active('woocommerce-australia-post-extension-pro/class-australian-post.php')) { add_action('admin_init', array($this, 'deactivate_pro_version')); } //info: Only add the shipping method actions only if WooCommerce is activated. if($this->is_plugin_active('woocommerce/woocommerce.php')){ add_filter('woocommerce_shipping_methods', array($this, 'add_australia_post_method')); add_action('woocommerce_shipping_init', array($this, 'init_australian_post')); } add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), array($this, 'plugin_action_links') ); } // deactivate the pro version public function deactivate_pro_version() { deactivate_plugins( 'woocommerce-australia-post-extension-pro/class-australian-post.php' ); } public function add_australia_post_method( $methods ){ if(version_compare(WC()->version, '2.6.0', 'lt')){ $methods['auspost'] = 'WC_Australian_Post_Shipping_Method_Legacy'; }else{ $methods['auspost'] = 'WC_Australian_Post_Shipping_Method'; } return $methods; } public function init_australian_post(){ require 'class-australian-post.php'; if(version_compare(WC()->version, '2.6.0', 'lt')){ require 'class-australian-post-legacy.php'; } } private function is_plugin_active($slug){ $active_plugins = (array) get_option( 'active_plugins', array() ); if ( is_multisite() ) $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) ); return in_array( $slug, $active_plugins ) || array_key_exists( $slug, $active_plugins ); } public function plugin_action_links( $links ) { $links[] = 'Get the Pro version'; $links[] = 'Support'; return $links; } } new WPRuby_Australia_Post_Lite();