Consider an operator (not necessarily linear) $\mathcal{O}: C^{\infty} (\mathbb{R}) \to C^\infty(\mathbb{R})$ which satisfies the following property for any function $f \in C^\infty(\mathbb{R})$ and any constant function $c \in C^\infty(\mathbb{R})$ \begin{equation} \mathcal{O} \left(f + c \right) = \mathcal{O} \left(f \right) \end{equation}
Must the operator $\mathcal{O}$ be a differential operator? If not, what additional conditions should $\mathcal{O}$ have for it to have to be a differential operator? For example, would $\mathcal{O}$ being a linear operator suffice?