/** * Load extra assets early in the page build process to tap into proper hooks * * @since 1.1 */ public function onload() { global $facebook; $mentions_options = get_option(self::MENTIONS_OPTION_NAME); if (!is_array($mentions_options)) { $mentions_options = array(); } $this->mentions_options = $mentions_options; // prompt to log in or update account info if (!class_exists('Facebook_Admin_Login')) { require_once dirname(__FILE__) . '/login.php'; } Facebook_Admin_Login::connect_facebook_account(array('manage_pages', 'publish_actions', 'publish_stream')); // prep user-specific functionality and comparisons $this->current_user = wp_get_current_user(); if (!class_exists('Facebook_User')) { require_once dirname(dirname(__FILE__)) . '/facebook-user.php'; } // does the current user have associated Facebook account data stored in WordPress? $facebook_user_data = Facebook_User::get_user_meta($this->current_user->ID, 'fb_data', true); if (is_array($facebook_user_data) && isset($facebook_user_data['fb_uid'])) { $this->user_associated_with_facebook_account = true; $this->user_permissions = $facebook->get_current_user_permissions($this->current_user); if (!is_array($this->user_permissions)) { $this->user_permissions = array(); } } else { $this->user_associated_with_facebook_account = false; $this->user_permissions = array(); } $this->settings_api_init(); }
/** * Conditionally load features on the edit profile page * * @since 1.2 */ public static function init() { $current_user = wp_get_current_user(); if (!($current_user && user_can($current_user, 'edit_posts'))) { return; } // prompt to log in or update account info if (!class_exists('Facebook_Admin_Login')) { require_once dirname(__FILE__) . '/login.php'; } Facebook_Admin_Login::connect_facebook_account(array('publish_actions', 'publish_stream')); // use the Admin Login async JS an an indicator of further login action needed (not connected or connected without all required Timeline permissions) if (remove_action('admin_enqueue_scripts', array('Facebook_Admin_Login', 'add_async_load_javascript_filter'), -1, 2)) { add_action('admin_enqueue_scripts', array('Facebook_User_Profile', 'add_async_load_javascript_filter'), -1, 2); } else { // connected. permissions exist add_action('personal_options', array('Facebook_User_Profile', 'personal_options')); add_action('personal_options_update', array('Facebook_User_Profile', 'save_data')); add_action('show_user_profile', array('Facebook_User_Profile', 'enhance_input_field')); } add_filter('user_contactmethods', array('Facebook_User_Profile', 'user_contactmethods'), 1, 2); }