Находим в webloginpe.class.php загадочный код:
foreach ($theUser as $attribute => $value)
{
if (empty($theUser[$filterBy]) || $theUser[$filterBy] == '' && $filterBy !== 'webgroup')
{
$username = $theUser['username'];
unset($CompleteUserList[$username]);
}
if (isset($filterValue) && $filterBy !== 'webgroup')
{
if ($theUser[$filterBy] !== '' && !empty($theUser[$filterBy]))
{
$isValue = strpos(strtolower($filterValue), strtolower($theUser[$filterBy]));
$isValueAlt = strpos(strtolower($theUser[$filterBy]), strtolower($filterValue));
if ($isValue === false && $isValueAlt === false)
{
$username = $theUser['username'];
unset($CompleteUserList[$username]);
}
}
}
}
Непонятно: зачем здесь цикл, зачем проверяется на webgroup, если выше уже проверялось, и зачем проверяется на пустую строку, если уже empty стоит. Меняем на такой:
if (isset($filterValue))
{
if (!empty($theUser[$filterBy]))
{
$isValue = strpos(strtolower($filterValue), strtolower($theUser[$filterBy]));
$isValueAlt = strpos(strtolower($theUser[$filterBy]), strtolower($filterValue));
if ($filterValue=='null' || $isValue === false && $isValueAlt === false)
{
$username = $theUser['username'];
unset($CompleteUserList[$username]);
}
}
elseif ($filterValue=='null') continue;
}
if (empty($theUser[$filterBy]))
{
$username = $theUser['username'];
unset($CompleteUserList[$username]);
}
Теперь payment(null) будет работать.