Hola buenos dias.
Queria preguntaros como podemos limpiar las metas de usarios no admin de nuestra base de datos de wordpress, podemos realizar una limpieza de estas metas a traves de una consulta SQL? Existe alguna otra forma de realizar esta limpieza? Es aconsejable realizar este tipo de limpieza regularmente?
Gracias
Saludos
David
Hola David.
Se podría pero hay que ir con mucho cuidado porque un error puede afectar funcionalidades importantes (como WooCommerce, membresías, campos personalizados, etc.).
DELETE um
FROM wp_usermeta um
INNER JOIN wp_users u ON u.ID = um.user_id
LEFT JOIN wp_usermeta um_cap ON um_cap.user_id = u.ID
AND um_cap.meta_key = 'wp_capabilities'
WHERE um_cap.meta_value NOT LIKE '%administrator%'
OR um_cap.meta_value IS NULL;
Tienes que modificar wp_ por tu prefijo
Esta consulta borra todas las metas (incluyendo nickname, first_name, billing_address, etc.) de cualquier usuario que no tenga el rol administrator.
Si quieres que te diga la verdad, la tabla _usermeta que tienes pesa muy poco, entonces borrar todas las metas de usuarios no-administradores probablemente no te aporte casi nada (o incluso podría causarte más problemas que beneficios). Si tuvieras decenas de miles o cientos de miles de usuarios registrados que no son administradores (muchos spam, bots, cuentas inactivas) si que valdría la pena pero en tu caso no creo que ganes nada.
Nota: realiza una copia de seguridad de la base de datos antes de realizar cualquier modificación.
Un saludo