И что тут непонятного? Даже без знания WP:
Argument #1 ($filename) must be of type string, WP_Error given
Вам английским по белому пишут, что вы передаёте в функцию filesize не строку, а объект типа WP_Error.
Этот объект возвращается из функции download_url, в описании которой
сказано:
Return
string|WP_Error Filename on success, WP_Error on failure.
То есть, во время выполнения функции download_url у вас возникает ошибка, соответственно функция возвращает WP_Error.
Ну а дальше читайте описание класса
WP_Error, чтобы понять, как ввывести это сообщение.