Cookies en red Multisite donde los sitios tienen su propio nombre de dominio
Decidí integrar varios sitios WordPress independientes en una única instalación Multisite.
Creé una nueva instalación Multisite con subdominios, creé un sitio de red MU con URL de subdominio, y exporté el contenido del sitio independiente original, luego importé ese contenido al sitio MU del subdominio. Después eliminé el sitio independiente original desde cPanel, y configuré el nombre de dominio del sitio MU al nombre de dominio original.
El sitio principal carga bien ahora en su nombre de dominio original, pero cuando intento iniciar sesión en el sitio del subdominio en site.example.com/wp-admin/
(usando las credenciales del administrador de red del nuevo multisite), recibo un error:
ERROR: Las cookies están bloqueadas o no son compatibles con tu navegador. Debes habilitar las cookies para usar WordPress.
Pero las cookies están habilitadas en Chrome.
Intenté agregar lo siguiente a wp-config.php
:
define('COOKIE_DOMAIN', false);
...pero el problema persiste.
El mismo problema ocurre si uso WP Migrate DB Pro para importar un sitio independiente a un sitio de subdominio MU, luego elimino el sitio independiente desde cPanel, y después configuro el dominio del sitio de subdominio MU para que sea el dominio del sitio independiente original... el frontend del sitio carga bien, pero simplemente no puedo iniciar sesión en el administrador de WP.

Primero limpia la caché de tu navegador (incluyendo cookies) y la caché de tu servidor (por ejemplo, plugins de caché). Luego configura lo siguiente en tu archivo wp-config.php
:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
También puedes revisar la respuesta desde AQUÍ:
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define('SUNRISE', 'on');
Si aún falla, entonces lee esta respuesta o contacta al soporte de tu servidor. Puede haber un problema de configuración en el servidor.

Hola Scott. Un problema similar ha surgido en otro sitio MU. He agregado las constantes mencionadas anteriormente al wp-config.php
, pero en este otro sitio MU, childsitedomain.com/wp-login.php
produce el error The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line.
¿Alguna idea sobre cómo abordar esta situación?

Si comento esa declaración, recibo el error después de iniciar sesión en el sitio hijo: ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

He planteado este problema en una nueva pregunta.

Utilizando WordPress versión 4.9.4.
Estaba recibiendo el error de cookies y revisé varias opciones de ayuda hasta que finalmente lo solucioné usando partes de la corrección de Scott. (Nota: No realicé ninguna limpieza de caché de cookies).
Eliminé la línea de
sunrise.php
enwp-config.php
(estaba usando mapeo de dominios nativo, así que eliminé los cambios de instalación del plugin MU que había hecho)Ajusté mi
wp-config.php
a:/* Multisitio */ define('WP_DEBUG', false); define( 'WP_ALLOW_MULTISITE', true ); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'www.misitio.ejemplo'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); /* define( ‘COOKIE_DOMAIN’, $_SERVER[ ‘HTTP_HOST’ ] ); */ define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); /* ¡Eso es todo, deja de editar! Feliz blogging. */

Finalmente, después de horas, literalmente, de solucionar problemas, pude resolver esto en la instancia de AWS Lightsail Bitnami Multisite Wordpress (WordPress 5.0.4) realizando lo siguiente:
- Asegúrate de que el plugin WPMU Domain Mapping esté desactivado
Edita /opt/bitnami/apps/wordpress/htdocs/wp-config.php...
a. Añade lo siguiente:
define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); /* ¡Eso es todo, deja de editar! Feliz blogging. */
b. Comenta:
// define('SUNRISE', 'on');
Después de estos cambios, el inicio de sesión fue exitoso - sin errores. Gracias por las aportaciones de todos. Si no fuera por eso, todavía estaría rascándome la cabeza.
Encontré la respuesta aquí:
https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite
Esta funcionalidad de mapeo de dominios está incluida en WordPress Multisite desde la versión 4.5. Si estás usando una versión anterior, necesitarás el plugin WordPress MU Domain Mapping.
Así que parece que el plugin WPMU Domain Mapping está innecesariamente incluido en el paquete de AWS Lightsail Bitnami Multisite.

Acabo de terminar de solucionar un problema similar con multisitio en subdominios.
Con:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
El sitio seguía mostrando un error de cookies y en algunos casos al intentar lo sugerido anteriormente.........
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
Esto causó un error diferente que eliminaba las definiciones que hacían referencia a "COOKIE_DOMAIN" al visitar los subsitios.
Finalmente pude iniciar sesión después de asegurarme de que ambos estuvieran definidos justo encima de la información de la red multisitio
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');
Intenta asegurarte de que ambos estén definidos. Espero que esto ayude.

He comentado la línea define('SUNRISE', 'on');
/* define('SUNRISE', 'on'); */ define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']); define('COOKIE_DOMAIN', '');
Luego, ya no veo el siguiente mensaje de error:
ERROR: Las cookies están bloqueadas o no son compatibles con tu navegador. Debes habilitar las cookies para usar WordPress.
El inicio de sesión también comenzó a funcionar.

Yo también estaba teniendo este problema y encontré muchas soluciones como las mencionadas aquí, pero no funcionaron.
Lo que sí funcionó fue simplemente agregar lo siguiente a la configuración multisite en wp-config:
define('COOKIE_DOMAIN', false);
para que la sección en wp-config quede así:
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define('COOKIE_DOMAIN', false);
Lo publico aquí para que otros puedan encontrarlo y pasen menos tiempo golpeándose la cabeza contra el escritorio de lo que yo lo hice.

No sé ustedes, pero a mí me ayudó sorprendentemente mucho cambiar esto:
define( 'COOKIEDOMAIN', '' );
por esto:
define( 'COOKIE_DOMAIN', '' );
Y sí, todavía me atrevo a considerarme un desarrollador experimentado de PHP y WordPress. Solo quería compartir que esto nos pasa a todos. :)

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
//define('DOMAIN_CURRENT_SITE', 'masterdigitalservices.com');
//define('PATH_CURRENT_SITE', '/');
//define('SITE_ID_CURRENT_SITE', 1);
//define('BLOG_ID_CURRENT_SITE', 1);
Aquí está mi nuevo wp-config. Parece que estaba configurado para un sitio específico y no permitía que otros dominios funcionaran, solo subdominios. Excelentes respuestas aquí.

ESTO LO SOLUCIONÓ PARA MÍ No había configurado WordPress completamente para el nuevo nombre de dominio. Había creado mi sitio subdominio.dominio.com Luego quería quedarme como nuevodominio.com en lugar de subdominio.dominio.com Esto requería:
- En WordPress red > administrador > sitio, cambiar el sitio al nuevo nombre (lo cual ya había hecho, el sitio estaba funcionando)
- En WordPress red > administrador > ajustes > dominios, agregar el nuevo nombre al ID del sitio y marcar sí para dominio primario (para indicar que este nombre es el principal). Para encontrar el ID del sitio, puedes pasar el cursor sobre red > administrador > sitio que mostrará en qué ID de sitio estás trabajando. Espero que esto ayude a cualquiera que recibía el mensaje de que las cookies están bloqueadas o no son compatibles al intentar iniciar sesión. Saludos, SamTapsell

Pude resolver el problema después de agregar lo siguiente en wp-config.php. Referencia
define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );
define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );

Resolví el problema con esto:
Cambiar la configuración de DOMAIN_CURRENT_SITE en wp-config.php a:
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
Así que mi configuración es esta:
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Luego pude iniciar sesión en todos los sitios multisitio en URLs como web1.ejemplo.com/wp-admin o web2.ejemplo.com/wp-admin.

Esto es lo que usamos en SlickStack para instalaciones Multisite... funciona tanto para redes de subdominios como para nombres de dominio personalizados:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('NOBLOGREDIRECT', 'https://ejemplo.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Y luego:
define('COOKIE_DOMAIN', false);
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
define('ADMIN_COOKIE_PATH', '/');
