public static function init() { global $pagenow; require_once self::get_base_path() . "/edit-form.php"; if ($pagenow === 'plugins.php' && is_admin()) { add_action("admin_notices", array('GFSalesforce', 'is_gravity_forms_installed'), 10); } if (self::is_gravity_forms_installed(false, false) === 0) { add_action('after_plugin_row_' . self::$path, array('GFSalesforce', 'plugin_row')); return; } if ($pagenow == 'plugins.php' || defined('RG_CURRENT_PAGE') && RG_CURRENT_PAGE == "plugins.php") { //loading translations load_plugin_textdomain('gravity-forms-salesforce', FALSE, '/gravity-forms-salesforce/languages'); add_filter('plugin_action_links', array('GFSalesforce', 'settings_link'), 10, 2); } if (!self::is_gravityforms_supported()) { return; } self::$settings = get_option("gf_salesforce_settings"); if (is_admin()) { //loading translations load_plugin_textdomain('gravity-forms-salesforce', FALSE, '/gravity-forms-salesforce/languages'); //creates a new Settings page on Gravity Forms' settings screen if (self::has_access("gravityforms_salesforce")) { RGForms::add_settings_page("Salesforce", array("GFSalesforce", "settings_page"), self::get_base_url() . "/images/salesforce-50x50.png"); } self::refresh_transients(); } //integrating with Members plugin if (function_exists('members_get_capabilities')) { add_filter('members_get_capabilities', array("GFSalesforce", "members_get_capabilities")); } //creates the subnav left menu add_filter("gform_addon_navigation", array('GFSalesforce', 'create_menu')); if (self::is_salesforce_page()) { //enqueueing sack for AJAX requests wp_enqueue_script(array("sack")); //loading data lib require_once self::get_base_path() . "/data.php"; //loading Gravity Forms tooltips require_once GFCommon::get_base_path() . "/tooltips.php"; add_filter('gform_tooltips', array('GFSalesforce', 'tooltips')); //runs the setup when version changes self::setup(); } else { if (in_array(RG_CURRENT_PAGE, array("admin-ajax.php"))) { //loading data class require_once self::get_base_path() . "/data.php"; add_action('wp_ajax_rg_update_feed_active', array('GFSalesforce', 'update_feed_active')); add_action('wp_ajax_gf_select_salesforce_form', array('GFSalesforce', 'select_salesforce_form')); } else { //handling post submission. add_action("gform_after_submission", array('GFSalesforce', 'export'), 10, 2); } } add_action('gform_entry_info', array('GFSalesforce', 'entry_info_link_to_salesforce'), 10, 2); }
/** * Handle the OAuth response from Salesforce * * @return void */ public function processSalesforceResponse() { if (!empty($_GET['code']) && !empty($_GET['display']) && $_GET['display'] === 'page') { $settings = self::$settings; $salesforceService = self::getSalesforceService(); // The token's not the same, nor may the endpoint be. delete_transient('salesforce_endpoint_token'); try { self::log_debug(sprintf('processSalesforceResponse: Received access code (%s). Now fetching Access Token.', esc_attr($_GET['code']))); // This was a callback request from Salesforce, get the token $salesforceService->requestAccessToken($_GET['code']); unset($settings['error']); } catch (Exception $e) { self::log_error('processSalesforceResponse: Clearing token, since there was an error.'); self::clearToken(); $settings['error'] = self::processErrorMessage($e->getMessage()); self::log_error('processSalesforceResponse: ' . $settings['error'] . ' [Raw error message: ' . $e->getMessage() . ']'); } update_option("gf_salesforce_settings", $settings); self::$settings = $settings; // Whether the response worked or not wp_redirect(self::link_to_settings(false)); exit; } }