Not working for some users
-
Hello, this plugin worked fabulous for us until recently. Each time I test it, in three different browsers, it works. However I continue to have users post as Anonymous. I can’t figure out how some users are getting by the check. Our site has a lot of comment activity and we allow users to post without logging in, so this plugin is awesome at helping multiple users not user the same nicknames. Any suggestions? Here is our site: http://wp.me/P2in2v-44B
-
However I continue to have users post as Anonymous.
Is there a user named Anonymous?
The way it’s supposed to work, and fwiw this has not changed codewise in forever, is it looks for the username and the email. If either is found, it won’t let you post with that username or email.
Hello again! I never realized you replied to my message until now. oops. Yes we created a user named Anonymous to prevent this and somehow users are still bypassing the plugin and can using the name Anonymous.
- This reply was modified 7 years, 11 months ago by jemar707.
That’s okay π
So I made a brand new clean site, made a user with the role of Subscriber and the name
anonymous
and the emailanon@example.com
Then I opened a new private window and attempted to comment as
anonymous
andAnonymous
andSomeone
with the emailstest@example.com
andanon@example.com
All gave the expected error.
That means it’s most likely that you have something else preventing it from running.
What other plugins are active?
I figured it out. We didn’t require users to enter a name, so if the field was left blank it would pass Impostercide check and then still display Anonymous when comment posted. Problem was we didn’t want to require email address as per the Diacussiom settings where it is both Name & Email. So I required comment_author in a preprocess function and then it works well if they try to use Anonymous.
- This reply was modified 7 years, 11 months ago by jemar707.
I JUST noticed this reply. Oh WP changes. Why you gotta be like that?
Intersting. I disabled username and email check in Discussion settings, and I still can’t use an existing user’s name or email to leave a comment.
Are you somehow ONLY disabling usernames and not both usernames and emails? If so, can you share that code? I may be able to make something of that…
Currently have the discussion settings to allow users to comment without a name and email. And, then adding this function to force name
function require_comment_name($fields) { if ($fields['comment_author'] == '') wp_die('Error: please enter a valid name.'); return $fields; } add_filter('preprocess_comment', 'require_comment_name');
- This reply was modified 7 years, 11 months ago by Ipstenu (Mika Epstein).
And that works okay? What was the version that didn’t work?
Yes the above code works to require only name. We have name placeholder set to Anonymous. If Anonymous, Impostercize triggers and works because we have an existing Anonymous user. If name is left blank it produces the error: please enter a valid name.
Prior to that without that function, the user could leave the name field blank but the comment would appear as Anonymous, somehow bypassing Impostercize. My guess is that when the user name was left blank, the default behavior is for WP to assign the commenter_name Anonymous, but perhaps it wasn’t happening until after Impostercize checks passed because it was blank.
We have name placeholder set to Anonymous.
I think that’s the missing piece to my puzzle π How did you do that?
//We want to force entering a user name on the comment form, but can’t use the regular Discussion Settings because it then also requires email address. So that setting is left off and this function make just Comment Author required. Need this so Impostercize will work. Uses preprocess_commentβ filter to make Name field required
function require_comment_name($fields) { if ($fields['comment_author'] == '') wp_die('Error: please enter a valid name.'); return $fields; } add_filter('preprocess_comment', 'require_comment_name'); //new functions to add placeholders for comment form fields function my_update_comment_fields( $fields ) { $commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $label = $req ? '*' : ' ' . __( '(optional)', 'text-domain' ); $aria_req = $req ? "aria-required='true'" : ''; $fields['author'] = '<p class="comment-form-author"> <label for="author">' . __( "Name", "text-domain" ) . $label . '</label> <input id="author" name="author" type="text" placeholder="' . esc_attr__( "Pick A Nickname", "text-domain" ) . '" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" ' . $aria_req . ' /> </p>'; /* We don't want email to appear on comment form $fields['email'] = '<p class="comment-form-email"> <label for="email">' . __( "Email", "text-domain" ) . $label . '</label> <input id="email" name="email" type="email" placeholder="' . esc_attr__( "name@email.com", "text-domain" ) . '" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" ' . $aria_req . ' /> </p>'; */ /* We don't want URL to appear on comment form $fields['url'] = '<p class="comment-form-url"> <label for="url">' . __( "Website", "text-domain" ) . '</label> <input id="url" name="url" type="url" placeholder="' . esc_attr__( "http://google.com", "text-domain" ) . '" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /> </p>'; */ return $fields; } add_filter( 'comment_form_default_fields', 'my_update_comment_fields' );
- This reply was modified 7 years, 11 months ago by Ipstenu (Mika Epstein).
I only know enough to be dangerous with this stuff, I patched that together from another source, not sure where.
I wrapped your code with code tags π I’ll play with this and see if I can figure out what’s going on. I think it’s what we call a race condition, where two things are happening at the same time.
- The topic ‘Not working for some users’ is closed to new replies.