init_hooks(); $this->includes(); } private function init_hooks() { add_action('plugins_loaded', array($this, 'load_textdomain')); add_action('before_woocommerce_init', array($this, 'declare_hpos_compatibility')); register_activation_hook(__FILE__, array($this, 'activate')); register_deactivation_hook(__FILE__, array($this, 'deactivate')); } private function includes() { require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-template-loader.php'; require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-admin.php'; require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-product-meta.php'; require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-frontend.php'; require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-cart.php'; // Instantiate classes after WooCommerce is loaded add_action('woocommerce_loaded', array($this, 'init_classes')); } public function init_classes() { new WC_TPP_Frontend(); new WC_TPP_Cart(); } public function declare_hpos_compatibility() { if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true); } } public function load_textdomain() { load_plugin_textdomain('wc-tier-package-prices', false, dirname(WC_TPP_PLUGIN_BASENAME) . '/languages'); } public function activate() { // Add default options add_option('wc_tpp_enable_tier_pricing', 'yes'); add_option('wc_tpp_enable_package_pricing', 'yes'); add_option('wc_tpp_display_table', 'yes'); flush_rewrite_rules(); } public function deactivate() { flush_rewrite_rules(); } } // Initialize the plugin function wc_tpp_init() { return WC_Tier_Package_Prices::get_instance(); } add_action('plugins_loaded', 'wc_tpp_init', 11);