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,
'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();