Soporte » Guías – Resolución de problemas » Compartir tabla wp_users en 2 wordpress

  • Resuelto davidlambda

    (@davidlambda)


    Buenas! Os comento un problema que tengo con un par de wordpress para ver si a alguien le ha pasado lo mismo:

    – Tengo un wordpress A con un theme X (dominio.com) y un wordpress B con un theme Y (sub.dominio.com)

    – En el wordpress A (dominio.com), tengo un área privada, en la cual permito registro y login de usuarios para que puedan organizar sus propios docs internos de empresa. Este wordpress contiene un theme X con sus propios roles personalizados, los cuales, depende del rol que tengan, pueden ver un contenido u otro.

    – En el wordpress B (sub.dominio.com), tengo un theme Y, el cual funciona para listados de anuncios clasificados. Tiene un área privada en la cual puedes organizar tus anuncios, editarlos, crearlos, borrarlos, cambiar tu contraseña, cambiar información de tu perfil, etc. Hay un único rol, el cual puede administrar todo lo que he comentado anteriormente.

    · Con toda esta info, necesito que, al registrarse un usuario en el wordpress A, pueda administrar su perfil tanto en el wordpress A, como en el wordpress B.

    Ya probé con esto, pero al iniciar sesión en el segundo wordpress, el rol asociado no existe y las capabilities que no tiene hace que no se muestre el área privada:

    define('CUSTOM_CAPABILITIES_PREFIX', 'tr_');
    define('CUSTOM_USER_TABLE', 'tr_users');
    define('CUSTOM_USER_META_TABLE', 'tr_usermeta');

    ¿A alguien le ha ocurrido lo mismo? ¿Alguna alternativa/solución?

    ¡¡Muchas gracias de antemano!!

    • Este debate fue modificado hace 1 semana, 5 días por  davidlambda.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Hola

    Para compartir la tabla de usuarios en ambas instalaciones tienes que modificar la asignación de tablas en la configuración de la instalación, haciendo que la segunda use las tablas de usuarios de la primera (USERS y USERMETA).

    Revisa esto:

    Dos sitios WordPress con los mismos usuarios

    Si tu consulta está aclarada, recuerda cerrar el debate marcándolo como resuelto, así nos ayudas a mantener el foro al día.

    Buenas @jose64 ,

    Gracias por tu respuesta.

    Ya he estado mirando en foros/blogs en internet respecto a mi problema y uno de los muchos enlaces que estuve analizando fue el que me envías de AyudaWp. Es más, los pasos que dicen en el blog, ya los he realizado, lo puse ya en mi primer comentario.

    Actualmente lo que tengo realizado es lo siguiente:
    1- Una misma base de datos, con todas las tablas de cada wordpress.
    2- Ambos wordpress utilizan su propio prefijo de tabla para que funcionen con sus propios temas y plugins.
    3- En el wordpress B (sub.dominio.com), en el archivo wp_config.php tengo estas líneas para que los usuarios del wordpress A sean compartidos con el wordpress B(en mi primer comentario tengo el prefijo tr_, lo cambié y ahora es rc_, para que utilicen los usuarios del wordpress A):

    define('CUSTOM_CAPABILITIES_PREFIX', 'rc_');
    define('CUSTOM_USER_TABLE', 'rc_users');
    define('CUSTOM_USER_META_TABLE', 'rc_usermeta');

    Aún haciendo todo esto, tengo dos problemas ahora:
    1- El usuario administrador hace login en el wordpress B, pero no accede al dashboard de wordpress. Al intentar acceder a wp-admin me muestra el siguiente mensaje:
    Lo siento, no tienes permisos para acceder a esta página.
    2- Al no poder acceder al dashboard de wordpress como administrador, no puedo activar el registro de usuario de wordpress A para el wordpress B.

    Son muchas temas a resolver y analizar, lo sé, pero necesito realizar esto para que mis usuarios no se registren por doble partida tanto en un sitio web (wordpress A) como en otro (wordpress B). Lo más lógico y lo que me gustaría hacer es como hace Google, un único registro de usuario para uso de todas sus apps.

    • Esta respuesta fue modificada hace 1 semana, 2 días por  davidlambda.
    • Esta respuesta fue modificada hace 1 semana, 2 días por  davidlambda.

    Hola @davidlambda

    Define los roles personalizados igual en las dos instalaciones de forma que los usuarios se puedan intercambiar sin problema.

    Elimina la primera línea del código que añadiste (define('CUSTOM_CAPABILITIES_PREFIX', 'rc_');) y haz la prueba.

    Hola @jose64

    Lo he solucionado mediante este issue https://stackoverflow.com/questions/30952936/sharing-user-on-2-wordpress-installs-in-2-sub-domains-on-same-server

    Creo que la solución va relacionada con lo que me comentas de eliminar/editar la línea define('CUSTOM_CAPABILITIES_PREFIX', 'rc_'); ya que lo que he hecho ha sido lo siguiente:

    – Desde la base de datos, he duplicado las filas que contenían el valor rc_capabilities dentro del campo meta_key de la tabla rc_usermeta (para cada usuario). A las filas duplicadas:

    • Les asigno un nuevo umeta_id (seguir el orden del último umeta_id)
    • Susituyo el prefijo rc_ por tr_

    Una vez hecho esto, ya he podido acceder al dashboard como administrador al WordPress B (que antes me mostraba el mensaje de que no tenía permisos), y así, a los nuevos usuarios que se registren mediante el wordpress A, les asigno su rol en concreto mediante el administrador del WordPress B

    ¡Muchas gracias de todas formas!

    • Esta respuesta fue modificada hace 1 semana, 2 días por  davidlambda.
Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Debes estar registrado para responder a este tema.