Hola punto y coma no me queda muy claro dónde tienes el problema, o si viene de una página anterior o no. He hecho una pequeña prueba.
Después del if (isset($_POST['gestionar'])) { ... } he introducido esta línea
echo 'Se ha establecido la cookie fecha cuyo valor es'.$_COOKIE['fecha'].' y además la cookie pedidos vele'.$_COOKIE['pedidos'];
Al invocar el código con una url sobre un servidor me ha devuelto esto:
Se ha establecido la cookie fecha cuyo valor es y además la cookie pedidos vele Numero de pedidos: 0
Fecha del último pedido:
Es decir, primera vez = vacío. Y al invocarlo por segunda vez me ha devuelto algo así:
Se ha establecido la cookie fecha cuyo valor es 01/12/51 19:26:46 y además la cookie pedidos vele Numero de pedidos: 0
Fecha del último pedido: 01/12/51 19:26:46
Es decir, segunda vez = tiene contenido.
Esto parece dar una pista sobre la explicación que puede ser que el problema proviene del hecho de que setcookie () no establece las cookies de inmediato, envía los encabezados para que el navegador establezca las cookies. Esto significa que, para la primera carga de la página actual, setcookie () no genera $ _COOKIE.
Cuando el navegador más tarde solicita una página para la que previamente se ha establecido una cookie, envía las cookies en los encabezados para que PHP pueda recuperarlas en forma de $ _COOKIE.
Pero como en todo, existen "workarounds" para solucionar esto, pero lo primero es entender lo que ocurre para darle solución y no veo muy claro qué es lo que estás intentando hacer