get_data( $handle, 'data' ); if ( $data ) $script = $data . "\n" . $script; $wp_scripts->add_data( $handle, 'data', $script ); } /** * Allow an author to disable posting to Timeline by default. * * @since 1.2 * * @param WP_User $wordpress_user WordPress user object for the current profile. * @return void */ public static function personal_options( $wordpress_user ) { if ( ! ( $wordpress_user && isset( $wordpress_user->ID ) ) ) return; if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); if ( ! Facebook_User::can_publish_to_facebook( $wordpress_user->ID, false /* do not check for the presence of publish override in this option field */ ) ) return; echo 'FacebookID, 'facebook_timeline_disabled', true ) ); echo ' />
'; } /** * Add a Facebook section to the WordPress user profile page. * * @since 1.5 * * @global \Facebook_Loader $facebook_loader Access Facebook application credentials. * @param WP_User $wp_user WordPress user for the current profile page. * @return void */ public static function facebook_section( $wp_user ) { global $facebook_loader; if ( ! ( $wp_user && isset( $wp_user->ID ) && method_exists( $wp_user, 'exists' ) && $wp_user->exists() && user_can( $wp_user, 'edit_posts' ) ) ) return; $section = '

' . esc_html( __( 'Facebook Account', 'facebook' ) ) . '

'; if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); $facebook_user_data = Facebook_User::get_user_meta( $wp_user->ID, 'fb_data', true ); $section .= 'credentials['app_id'] ) ) $section .= ' data-appid="' . esc_attr( $facebook_loader->credentials['app_id'] ) . '">'; $section .= ''; $section .= ''; if ( ! class_exists( 'Facebook_WP_Extend' ) ) require_once( $facebook_loader->plugin_directory . 'includes/facebook-php-sdk/class-facebook-wp.php' ); $permissions = Facebook_WP_Extend::get_permissions_by_facebook_user_id( $facebook_user_data['fb_uid'] ); if ( ! empty( $permissions ) ) { $permission_labels = array(); if ( isset( $permissions['installed'] ) ) $permission_labels[] = '' . esc_html( __( 'Public profile information', 'facebook' ) ) . ''; if ( isset( $permissions['publish_actions'] ) ) $permission_labels[] = esc_html( __( 'Publish to Timeline', 'facebook' ) ); if ( isset( $permissions['manage_pages'] ) && isset( $permissions['publish_stream'] ) ) $permission_labels[] = '' . esc_html( __( 'Manage your pages on your behalf (including creating content)', 'facebook' ) ) . ''; $section .= ''; } } else { $section .= '>'; $section .= ''; } $section .= '
' . esc_html( _x( 'Connected Profile', 'Connected Facebook Profile', 'facebook' ) ) . '

' . esc_html( $facebook_user_data['fb_uid'] ) . '

'; if ( isset( $facebook_user_data['activation_time'] ) ) $section .= '

' . sprintf( esc_html( __( 'Associated on %s', 'facebook' ) ), '' ) . '

'; $section .= '

' . '

'; $section .= '
' . esc_html( __( 'Permissions', 'facebook' ) ) . ''; if ( empty( $permissions ) ) { $section .= __( 'None', 'facebook' ); } else { $section .= '
  • ' . implode( '
  • ', $permission_labels ) . '
'; } $section .= '
' . esc_html( _x( 'Get started', 'Begin the process', 'facebook' ) ) . '
'; echo $section; } /** * Save custom user information. * * @since 1.2 * * @uses current_user_can() current user must be able to edit the passed WordPress user ID * @param int $wordpress_user_id WordPress user identifier * @return void */ public static function save_data( $wordpress_user_id ) { if ( ! ( $wordpress_user_id && current_user_can( 'edit_user', $wordpress_user_id ) ) ) return; // allow decoupling of a WordPress account and a Facebook account if ( isset( $_POST['facebook_remove'] ) ) { // WordPress Facebook User helper functions if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); $facebook_user_id = Facebook_User::get_facebook_profile_id( $wordpress_user_id ); if ( $facebook_user_id ) { // delete mapped FBID and other data Facebook_User::delete_user_meta( $wordpress_user_id, 'fb_data' ); // delete post to Timeline opt-in if stored Facebook_User::delete_user_meta( $wordpress_user_id, 'facebook_timeline_disabled' ); // Load WP HTTP helpers if ( ! class_exists( 'Facebook_WP_Extend' ) ) require_once( dirname( dirname(__FILE__) ) . '/includes/facebook-php-sdk/class-facebook-wp.php' ); // Revoke connection to app and all permissions Facebook_WP_Extend::graph_api_with_app_access_token( $facebook_user_id . '/permissions', 'DELETE' ); } unset( $facebook_user_id ); // no need to store any other Facebook data return; } if ( isset( $_POST['facebook_fbid'] ) && ctype_digit( $_POST['facebook_fbid'] ) ) { // WordPress Facebook User helper functions if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); try { $facebook_user = Facebook_User::get_facebook_user( $_POST['facebook_fbid'], array( 'fields' => array( 'id', 'username', 'link', 'third_party_id' ) ) ); if ( isset( $facebook_user['id'] ) ) { $facebook_user_data = array( 'fb_uid' => $facebook_user['id'], 'activation_time' => time() ); if ( ! empty( $facebook_user['username'] ) ) $facebook_user_data['username'] = $facebook_user['username']; if ( ! empty( $facebook_user['link'] ) ) $facebook_user_data['link'] = $facebook_user['link']; if ( ! empty( $facebook_user['third_party_id'] ) ) $facebook_user_data['third_party_id'] = $facebook_user['third_party_id']; Facebook_User::update_user_meta( $wordpress_user_id, 'fb_data', $facebook_user_data ); unset( $facebook_user_data ); } unset( $facebook_user ); } catch(Exception $e) {} } if ( isset( $_POST[ 'facebook_timeline' ] ) && $_POST[ 'facebook_timeline' ] == '1' ) { // WordPress Facebook User helper functions if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); Facebook_User::delete_user_meta( $wordpress_user_id, 'facebook_timeline_disabled' ); // delete if stored } else { // WordPress Facebook User helper functions if ( ! class_exists( 'Facebook_User' ) ) require_once( dirname( dirname(__FILE__) ) . '/facebook-user.php' ); Facebook_User::update_user_meta( $wordpress_user_id, 'facebook_timeline_disabled', '1' ); } } } ?>