Cómo bloquear el acceso al panel de administración en WordPress para usuarios no administradores

En muchos proyectos de WordPress + WooCommerce es recomendable evitar que los usuarios con roles distintos al de administrador accedan al panel de administración (/wp-admin). Esto no solo mejora la experiencia del usuario, sino que también refuerza la seguridad del sitio.

A continuación, te explico cómo redirigir a los usuarios no administradores al inicio del sitio cada vez que intenten acceder al backend.
Este comportamiento se implementa usando la acción init y comprobando el rol del usuario actual.

¿Dónde insertar el código?
Debes agregar el siguiente fragmento en el archivo functions.php de tu tema activo o en un plugin personalizado.

// Bloquear acceso al panel de administración para todos excepto administradores
add_action('init', 'bloquear_acceso_admin');
function bloquear_acceso_admin() {
    if (is_admin() && !current_user_can('administrator') && !(defined('DOING_AJAX') && DOING_AJAX)) {
        wp_redirect(home_url());
        exit;
    }
}