Rather than using -o you can use || to do short-circuit evaluation, i.e., if a condition is true the subsequent conditions won't be evaluated.
if [ -z "$1" ] || [ "$1" = '-h' ] || [ "$1" = '--help' ]; then
echo "$usage"
exit 0
fi
If you're only running this script in bash you can do use this more compact syntax:
if [[ -z "$1" || "$1" = '-h' || "$1" = '--help' ]]; then
echo "$usage"
exit 0
fi
but that may not work in other shells.
Note that I've also quoted the argument to echo. In general, you should quote parameters unless you explicitly want word splitting. I guess I ought to mention that printf is more robust than echo, but echo is ok for fixed strings.
$1in this case. May I recommend shellcheck.net ?