Uso de apply_filters con múltiples argumentos y múltiples add_filter
Estoy usando apply_filters para conectar plugins pero tengo problemas con los argumentos. Hay un argumento, un array, y varias implementaciones de add_filter que coinciden con apply_filters, cada una pasa el array original y lo modifica.
Parece que puedes pasar varios argumentos desde apply_filter pero add_filter solo puede devolver un argumento, ¿es correcto o cómo manejas múltiples argumentos entre llamadas add_filter?
Necesito pasar un segundo argumento con un ID de cuenta, pero parece que por prioridad solo el primer add_filter puede trabajar con ese argumento. Planeo combinar ambos argumentos en un solo array para pasarlo, un array con otro array como primer valor y un ID de usuario como segundo argumento.
Editado para agregar ejemplo
$error = apply_filters('check_for_more_errors', $userid, $error);
add_filter('check_for_more_errors', 'error_check_1', 1, 2);
function error_check($userid, $error){
$error[] = get_user_meta($userid, 'Error de usuario en Plugin 1', true);
return $error;
}
add_filter('check_for_more_errors', 'error_check_2', 2, 2);
// $userid aquí es en realidad $error devuelto desde error_check_1
function error_check_2($userid, $error){
$error[] = get_user_meta($userid, 'Error de usuario en Plugin 2', true);
return $error;
}
El código anterior no funciona como espero o necesito. Los filtros parecen encadenarse, donde el argumento devuelto por el primero se pasa como argumento al siguiente.
Quiero que ambos obtengan la variable $id y que la variable $error sea modificada como en el ejemplo.

apply_filters
requiere que pases el valor a filtrar en el segundo parámetro de esta función (después del nombre de la etiqueta del hook)
$error = apply_filters('check_for_more_errors', $error, $userid);
add_filter('check_for_more_errors', 'error_check_1', 1, 2);
function error_check_1($error, $userid){
$error[] = get_user_meta($userid, 'Plugin 1 user error', true);
return $error;
}
add_filter('check_for_more_errors', 'error_check_2', 2, 2);
function error_check_2($error, $userid){
$error[] = get_user_meta($userid, 'Plugin 2 user error', true);
return $error;
}
