load_dependencies(); $this->init_hooks(); } /** * Load required files */ private function load_dependencies() { require_once WHMCS_PRICING_PLUGIN_DIR . 'includes/api-handler.php'; require_once WHMCS_PRICING_PLUGIN_DIR . 'includes/shortcodes.php'; if (is_admin()) { require_once WHMCS_PRICING_PLUGIN_DIR . 'includes/admin-settings.php'; } } /** * Initialize hooks */ private function init_hooks() { add_action('plugins_loaded', array($this, 'load_textdomain')); // Add settings link on plugins page add_filter('plugin_action_links_' . WHMCS_PRICING_PLUGIN_BASENAME, array($this, 'add_settings_link')); // Make author link open in new tab add_filter('plugin_row_meta', array($this, 'modify_plugin_row_meta'), 10, 2); // Initialize components if (is_admin()) { WHMCS_Pricing_Admin::get_instance(); } WHMCS_Pricing_Shortcodes::get_instance(); } /** * Add settings link on plugins page */ public function add_settings_link($links) { $settings_link = '' . __('Settings', 'whmcs-pricing') . ''; array_unshift($links, $settings_link); return $links; } /** * Modify plugin row meta to open author link in new tab */ public function modify_plugin_row_meta($links, $file) { if ($file === WHMCS_PRICING_PLUGIN_BASENAME) { // Add target="_blank" to author link $links = array_map(function($link) { if (strpos($link, 'arkhost.com') !== false) { return str_replace(' '', 'api_identifier' => '', 'api_secret' => '', 'cache_duration' => 3600, // 1 hour 'default_currency' => 'USD', 'show_decimals' => true, 'decimal_separator' => '.', 'hide_currency_symbol' => false, 'hide_billing_cycle' => false, 'debug_mode' => false ); add_option('whmcs_pricing_settings', $defaults); } /** * Deactivate plugin */ public static function deactivate() { // Clear all cached data WHMCS_Pricing_API::clear_all_cache(); } } /** * Activation hook */ register_activation_hook(__FILE__, array('WHMCS_Pricing_Plugin', 'activate')); /** * Deactivation hook */ register_deactivation_hook(__FILE__, array('WHMCS_Pricing_Plugin', 'deactivate')); /** * Initialize plugin */ function whmcs_pricing_init() { return WHMCS_Pricing_Plugin::get_instance(); } // Start the plugin whmcs_pricing_init();