In php tutto è possibile.
Con:
$giorno = date("w"); // il giorno della settimana numerico ossia 0 (zero) sta per domenica fino a 6 (sei) che sta per sabato.
$provenienza = $_SERVER['REMOTE_ADDRESS']; // IP di provenienza (non ricordo bene la sintassi ma dovrebbe essere questa)
Per gli altri due controlli c'è da fare un discorso un pò più lungo e ne parleremo in seguito
CIAO