Otorgar insignia basada en número de insignias de bronce/plata/oro.

Puedes usar esta consulta para insignias personalizadas a nivel de miembro:

Consulta SQL

SELECT user_id, current_timestamp granted_at 
FROM user_badges  
JOIN badges
On user_badges.badge_id = badges.id
WHERE badges.badge_type_id = 3
GROUP BY user_id 
HAVING count(*) >= 15

badge_type_ids

bronce: 3
plata: 2
oro: 1

Otra opción si quieres tener más de 3 grupos de insignias de destino es recopilarlos en secciones personalizadas y luego consultar por badge_grouping_id. Por ejemplo, aquí con 4 rangos de tripulación pirata:

Consulta SQL

SELECT user_id, current_timestamp granted_at 
FROM user_badges  
JOIN badges
On user_badges.badge_id = badges.id
WHERE badges.badge_grouping_id = 1
GROUP BY user_id 
HAVING count(*) >= 10

badge_grouping_ids

Empezando: 1
Comunidad: 2
Publicación: 3
Nivel de confianza: 4
Otro: 5

Y luego cuenta para tus secciones personalizadas..

5 Me gusta