db = $wpdb; $this->reporter = new SimpleMailerReporter(); $this->sanitizer = new SimpleMailerSanitizer(); $this->config = new SimpleMailerConfig($this); $this->processor = new SimpleMailerProcessor($this); } /** * Initialize SimpleMailer plugin * * Register variables, session, language on init. * Add our frontend SM includes as required. * Regiester our install & uninstall methods. * Create SM admin menu in WP admin section. * Add our SM admin includes like styles, javascript libraries etc. * Add an action link on the plugins page */ public function init($file) { $this->config->pluginFile = $file; add_action('init', array($this->processor, 'init')); // Admin only stuff register_activation_hook($this->config->pluginFile, array($this->processor, 'install')); register_uninstall_hook($this->config->pluginFile, 'SimpleMailerProcessor::uninstall'); add_action('admin_menu', array($this->processor, 'createAdminMenu')); add_action('admin_head', array($this->processor, 'addSmAdminHeader')); add_filter('plugin_action_links', array($this->processor, 'editActionLinks'), 10, 2); } /** * A simple wrapper method, outputs the return of the * processor method for rendering our frontend form. * */ public function getForm() { $obj = get_queried_object(); if($this->config->displayFormOnPageId && $this->config->displayFormOnPageId != $obj->ID) { return; } echo $this->processor->renderForm(); } }