Support » Plugin: Wordbooker » Comments pulled from facebook show as admin, not facebook user

  • Resolved ericwilmoth

    (@ericwilmoth)


    Hi–great plugin, considering all it does. I’ve been running tests back and forth between it and the Add Link to Facebook plugin, and one of the main cons showing up with wordbooker is that the comments being imported from facebook are showing up on my site as me–the admin (though it doesn’t also use my gravitar…so, weird…). Add link to Facebook, on the other hand, shows the correct username.

    I’ve been overhauling my comments management in the interest of relaunching my site with a long awaited post, and after lots of delays, I’m leaning towards ‘add link’ for now…though i like some of the other features you have in wordbooker.

    Any chance this incorrect labeling of commenters is an easy fix?
    I am using Wordbooker: 2.2.0

    Thanks!

    http://wordpress.org/plugins/wordbooker/

Viewing 15 replies - 16 through 30 (of 95 total)
  • Plugin Author Steve

    (@steveatty)

    The theme developer is obviously doing something odd.. If you check the comments table in the database you should see that the user names are correct so we need to know how the theme handles comments. I assume it’s a premium theme? If not I could look at the code and see what it’s doing

    Yeah–i noticed the correct names in the admin area, too.

    The theme is free…just that it caters to comic strip/book posting formats (the only reason it’s special, and why going with a different theme isn’t a real option).

    the theme is comicpress.

    Plugin Author Steve

    (@steveatty)

    OK I’ll dig into it tomorrow and try to work out what is going on

    Cool man. I’ll hold off, then, and keep my fingers crossed…

    Thanks!

    If I get any news from the theme developer, I’ll let you know.
    Oh, yeah–the developer had me grab latest mods of comicpress 4.1 from his github page:
    https://github.com/frumph/comicpress

    That’s the version i’m using now.

    Plugin Author Steve

    (@steveatty)

    OK I’ve got it – will get it loaded into my test site tomorrow.

    Awesome!

    Plugin Author Steve

    (@steveatty)

    I’ve found it…

    When Wordbooker posts a comment from Facebook it sets the user_id to 1 rather than 0. This is because setting it to zero can cause problems with some third party antispam plugins and it also allows comments to be auto approved as they belong to admin.

    Now WordPress and the standard WordPress themes use the built in comment handling code but comicpress does this:

    if($comment->user_id > 0) :
    		$user = get_userdata($comment->user_id);
    		if($user->display_name)
    			$author = $user->display_name;
    		elseif($user->user_nickname)
    			$author = $user->nickname;
    		elseif($user->user_nicename)
    			$author = $user->user_nicename;
    		else
    			$author = $user->user_login;
    	endif;

    We can easily fix the wrong name being displayed by putting in an additional check in the IF statement.

    Now all we’ve got to do is fix the avatar – as comicpress uses a hard coded avatar call comicpress_avatar which echoes its output right to the screen rather than intercepting the avatar_hook which is what Wordbooker does:

    add_filter('get_avatar','wordbooker_get_avatar',1, 3 );

    ….this is going to be a little more messy.

    Plugin Author Steve

    (@steveatty)

    And its done… I think.

    Two changes:

    1) Comment author name:

    Change

    if($comment->user_id > 0) :

    to

    if($comment->user_id > 0 && strlen(author)==0) :

    and change

    if (!empty($current_avatar_directory) && ($current_avatar_directory !== 'none')) {
    			$avatar_str = get_avatar($id_or_email, 64, comicpress_random_default_avatar($id_or_email), esc_html(get_comment_author()));
    		} else
    			$avatar_str = get_avatar($id_or_email, 64);

    to

    if (!empty($current_avatar_directory) && ($current_avatar_directory !== 'none')) {
    			$avatar_str = get_avatar($comment, 64, comicpress_random_default_avatar($id_or_email), esc_html(get_comment_author()));
    		} else
    			$avatar_str = get_avatar($comment, 64);

    as documented at http://codex.wordpress.org/Function_Reference/get_avatar

    Plugin Author Steve

    (@steveatty)

    Holy cow, Steve–you rock! Nice earlybird action!

    I gotta run out the door, as some funky stuff came up this morning…
    …but I can’t wait to play with this when I get back!

    Thank you so much!

    Steve, Where do I make these changes?

    Plugin Author Steve

    (@steveatty)

    In the comment-functions.php file which is in the functions directory in the comicpress theme.

    The two changes to get_avatar are on lines 34 and 36 and the change to the if logic is on line 72.

    … there is nothing different than what I have in the theme

    https://github.com/Frumph/comicpress/blob/master/functions/comment-functions.php

    well except the if logic part ..but that’s just the username display?

    which I should rewrite at some point ;/

    Plugin Author Steve

    (@steveatty)

    Look at the get_avatar calls – not using $id_or_email but $comment which means that the wordpress avatar hook works so Wordbooker can replace the avatar if needed … but its possible that I might need to tweak Wordbooker’s avatar code if its too aggressive.

Viewing 15 replies - 16 through 30 (of 95 total)
  • The topic ‘Comments pulled from facebook show as admin, not facebook user’ is closed to new replies.