apply_filters с несколькими аргументами и множественными add_filter
Я использую apply_filters для связи между плагинами, но столкнулся с проблемой передачи аргументов. Есть один аргумент - массив, и несколько реализаций add_filter, соответствующих apply_filters, каждая из которых передает исходный массив и добавляет в него данные.
Кажется, что из apply_filter можно передать несколько аргументов, но add_filter может возвращать только один аргумент. Так ли это, или как правильно работать с несколькими аргументами между вызовами add_filter?
Мне нужно передать второй аргумент - ID аккаунта, но похоже, что только первый add_filter получает возможность работать с этим аргументом. Я планирую объединить оба аргумента в один массив и передать его - массив с массивом в качестве первого значения и ID пользователя в качестве второго аргумента.
Дополнено примером
$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, 'Plugin 1 user error', true);
return $error;
}
add_filter('check_for_more_errors', 'error_check_2', 2, 2);
// $userid ниже фактически является $error, возвращенным из error_check_1
function error_check_2($userid, $error){
$error[] = get_user_meta($userid, 'Plugin 2 user error', true);
return $error;
}
Вышеприведенный код не работает так, как я ожидаю или мне нужно. Фильтры, кажется, соединяются последовательно, где возвращаемый аргумент первого становится аргументом для следующего.
Мне нужно, чтобы обе функции получали переменную $id, а переменная $error дополнялась, как в примере.

apply_filters
требует передачи значения для фильтрации во втором параметре функции (после имени хука)
$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;
}
