Don’t Let Support Get Lost in Translation

I was lurking in the #wordpress support channel on IRC last night and noticed somebody getting the shrug off for a support issue because he wasn’t a native English speaker.

Now, the advice I initially gave him was ridiculed by others in the channel as stupid, but without really knowing the guy’s issue I was doing the best I could with what I could decipher from his broken English. And its not like anybody else was giving it a go, so I invited him into a private chat to get a better feeling for his problem.

We went round and round, him explaining in broken English and me trying to be as clear and concise as possible. Finally, I offered to use Google Translate so he could explain in Portuguese. He was floored that I would do this, but we tried it anyway. Turns out, it made all the difference in the world.

We went back and forth like that, me doing hyperspeed copy pasta with Translate, him doling out the Portuguese and after a few minutes we managed to get his issue resolved.

The problem as I see it is this: WordPress is all about contribution, whether it’s code, knowledge or time. Turning new WordPress users off by turning them away doesn’t really garner much support for the community, especially with the non-English-speaking crowd (who by the way make up about 2/3 of the worldwide community!).

Many users who seek support in IRC support are novice-level and they’re just trying to figure things out. It really doesn’t take all that much extra effort to meet them half way.

HowTo: Disable Access to the WordPress Dashboard for Non-Admins

Update: I had a few requested to bundle this into a plugin so I did. You can download it here.

Currently, I’m working on a site where we didn’t want non-admins to even be able to access the wp-admin dashboard. I searched around quite a bit looking for a complete shutoff-solution but most of the results detail how to literally disable the “Dashboard” menu in wp-admin.

Finally, trolling the comments on a like-solution in a post by c. bavota, I stumbled across a simplified version of bavotasan’s function that does exactly what I want, plus it redirects unworthy users to the homepage!

The simplified function was authored by somebody going only by the moniker of Jake.

It’s a pretty simple solution. It adds an action calling a function called ‘redirect_dashboard’ which checks the user level, and if the currently-logged-in-user is unworthy, they get bounced to the homepage. Pretty neat. On line #4, the function checks the user level, with the default set as ‘level_10’ or administrator. I modified this to ‘level_7’ to exclude anyone below the Editor level, but you could choose whichever capability level suits your purpose. Vist the Roles and Capabilities Codex page to find out more about user levels.

Here’s the snippet (which should be added to your theme’s functions.php file)

add_action('admin_init', 'no_mo_dashboard');
function no_mo_dashboard() {
  if (!current_user_can('manage_options') && $_SERVER['DOING_AJAX'] != '/wp-admin/admin-ajax.php') {
  wp_redirect(home_url()); exit;
  }
}