Pues tu estructura lógica está mal, porque se entiende que defines $total dentro del if() y eso está bien.
El problema es que la linea del error está fuera de dicho alcance (en el
else), de ahí el error.
Si ordenas tu código lo verás en menos de 3 segundos.