Formulario de carga PHP, PDF, Doc & Docx

Estoy luchando para que este código de carga funcione para un archivo docx, funciona bien para doc y pdf.

$allowedExts = array("pdf", "doc", "docx");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "application/msword"))
&& ($_FILES["file"]["size"] < 20000000)
&& in_array($extension, $allowedExts))
 {
  if ($_FILES["file"]["error"] > 0)
 {
   echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
 }

Esto es parte de un proyecto de hace un tiempo y, honestamente, no puedo recordar cómo hacerlo.

Sé que no es el método de carga más seguro, pero si alguien pudiera ayudarlo, ¡se lo agradecería!

Estoy pensando que necesito agregar otra línea aquí:

if ((($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "application/msword"))
&& ($_FILES["file"]["size"] < 20000000)

Simplemente no estoy seguro de qué ... ¡Se agradece la ayuda!

Edit: Así que he llegado a esta etapa (¡con la ayuda de comentarios!)

$allowedExts = array("pdf", "doc", "docx");
$extension = end(explode(".", $_FILES["file"]["name"]));
//if ((($_FILES["file"]["type"] == "application/pdf")
//|| ($_FILES["file"]["type"] == "application/msword"))
if (($_FILES["file"]["type"] == "application/pdf") 
|| ($_FILES["file"]["type"] == "application/msword") 
|| ($_FILES["file"]["type"] == "application/vnd.openxmlformats-    officedocument.wordprocessingml.document"))
&& ($_FILES["file"]["size"] < 20000000)

&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {

Pero ahora viene con: Error de análisis: error de sintaxis, T_BOOLEAN_AND inesperado en /var/sites/s/stanation.com/public_html/forms/process/insert.php en la línea 30

Respuestas a la pregunta(3)

Su respuesta a la pregunta