Respuestas de foro creadas

Viendo 15 respuestas - de la 1 a la 15 (de un total de 347)
  • ASTRA es un buen tema. Me alegro que te funcione.

    Recuerda cerrar este debate y, si tienes cualquier otra cuestión, no dudes en preguntar en uno nuevo.

    Saludos.

    Hola Sara.

    Generalmente, este error se debe a tres posibles causas: un agotamiento de los recursos del servidor (memoria o tiempo de ejecución), una incompatibilidad con la versión de PHP, o un conflicto con otro plugin o con el tema..

    Aunque has subido la memoria a 128M, WooCommerce es exigente.

    • Límite de memoria de PHP: Lo recomendado es 256M o superior. Intenta aumentar este valor de nuevo en la configuración de PHP de tu panel Plesk. 128M suele ser insuficiente para una tienda online funcional.
    • Versión de PHP: Asegúrate de que estás usando una versión de PHP 8.0 o superior. Las versiones más antiguas pueden causar errores críticos. Puedes verificar y cambiar tu versión de PHP fácilmente desde el panel de Plesk, en la sección «Configuración de PHP» de tu dominio.

    Si lo anterior no funciona, activa el modo de depuración de WordPress para saber qué está pasando realmente. Intenta activar WooCommerce de nuevo y revisa el archivo debug.log. El mensaje de error que encuentres ahí será la clave.

    Saludos.

    Hola Ángel.

    Lo que describes es un sistema de gestión de perfiles de usuario en el front-end, con permisos diferenciados y la inclusión de contenido relacionado (las actividades).

    Ecosistema de Plugins Recomendado

    1. Para la Ficha y la Página «Mi Cuenta»: Ultimate Member (la versión gratuita es muy potente).
    2. Para los Campos Personalizados Avanzados: Advanced Custom Fields (ACF) (la versión gratuita será suficiente para empezar).
    3. Para el Formulario de Inscripción: Seguir usando WPForms, pero conectándolo con el sistema de Ultimate Member.
    4. Para las «Actividades de Voluntariado»: Crear un Custom Post Type (CPT) con un plugin como Custom Post Type UI.
    5. Para los Certificados: Un plugin de generación de PDF como PDF & Print by BestWebSoft o uno más avanzado si se necesita un diseño complejo.

    Te recomiendo ir paso a paso. Empieza por configurar Ultimate Member y la ficha, y luego avanza con las actividades.

    1. Usa Ultimate Member como base para la ficha y el área «Mi Cuenta».
    2. Configura los campos editables y no editables dentro de Ultimate Member.
    3. Crea un CPT «Actividad» con CPT UI.
    4. Usa ACF para enlazar cada actividad con un voluntario.
    5. Muestra las actividades en el perfil del usuario con un código personalizado.
    6. Implementa un plugin de PDF para la funcionalidad de certificados.

    Este es un proyecto que puede llegar a ser complejo, pero esta arquitectura te dará un resultado muy profesional y funcional.

    Si te atascas en algún punto, no dudes en preguntar. ¡Es un proyecto muy interesante!

    Saludos.

    Hola Ángel.

    Para darte la solución, necesito entender un poco mejor cómo está construida esa «ficha de área privada».

    ¿Se trata de…?:

    1. El perfil de usuario estándar de WordPress? (lo que un usuario ve en wp-admin/profile.php o en una página de «Mi Cuenta» creada por un plugin).
    2. Un «Custom Post Type» (CPT) o «Entrada Personalizada»? Por ejemplo, un tipo de contenido llamado «Perfil de socio» que se asigna a un usuario.
    3. Una página creada con un plugin de membresía específico? (Como MemberPress, Ultimate Member, etc.).

    Saludos.

    Hola Ángel.

    Por favor, cierra este debate y plantea la cuestión del formulario de iscripción en uno nuevo.

    Siempre debe haber un tema por debate que si no nos perdemos 🙂

    Saludos.

    Hola Ángel ¡Genial!

    Si necesitáis algo más, comentadlo. Aquí tenéis un montón de «voluntarios con este tipo de conocimientos» 🙂

    Y, por favor, cierra este debate para que conste como resuelto. Muchas gracias.

    Saludos.

    Hola.

    Por defecto, WPForms no incluye una opción para calcular automáticamente la edad a partir de una fecha de nacimiento en su versión gratuita. Las funciones de cálculo avanzado suelen estar en la versión Pro y, aun así, están más orientadas a operaciones numéricas que a la lógica de fechas.

    Podemos solucionarlo añadiendo un pequeño fragmento de código JavaScript.

    Vamos a configurar tus campos de WPForms y luego añadiremos el código necesario

    Paso 1: Configurar los campos en WPForms

    Primero, asegúrate de que tu formulario tiene los dos campos que necesitamos: uno para la fecha de nacimiento y otro para mostrar la edad.

    1. Campo de Fecha de Nacimiento:
      • Añade un campo de «Fecha / Hora» a tu formulario.
      • En la etiqueta, escribe algo como «Fecha de nacimiento».
      • Ve a las opciones Avanzadas de este campo. En el campo «Clases CSS», escribe fecha-nacimiento. Usaremos esta clase para identificar el campo con nuestro código.
    2. Campo para la Edad:
      • Añade un campo de «Texto de una línea» o «Número».
      • En la etiqueta, pon «Edad».
      • Ve a las opciones Avanzadas. En el campo «Clases CSS», escribe edad-calculada.
      • Para evitar que los usuarios modifiquen la edad manualmente, activa la opción «Solo lectura».

    Paso 2: Añadir el código JavaScript

    Ahora necesitamos añadir el código que hará el cálculo. La mejor manera de añadir código JavaScript en WordPress, y la más segura, es usando un plugin específico para ello. Esto evita que pierdas los cambios si actualizas tu tema.

    Si no tienes un plugin de gestión de código indtalado, puedes usar Code Snippets.

    Crea un snippet de Javascript con este código:

    document.addEventListener('DOMContentLoaded', function() {
    // Busca el formulario de WPForms en la página.
    // Usamos un selector general para que funcione en cualquier formulario.
    const formContainer = document.querySelector('.wpforms-container');

    if (formContainer) {
    // Añadimos un listener que se activa cada vez que hay un cambio dentro del formulario.
    formContainer.addEventListener('input', function(event) {

    // Verificamos si el cambio ocurrió en nuestro campo de fecha de nacimiento.
    if (event.target.closest('.fecha-nacimiento')) {
    const fechaNacimientoInput = event.target;
    const edadInput = formContainer.querySelector('.edad-calculada input');

    if (fechaNacimientoInput.value && edadInput) {
    // Obtenemos la fecha de nacimiento introducida.
    const fechaNacimiento = new Date(fechaNacimientoInput.value);

    // Obtenemos la fecha actual.
    const hoy = new Date();

    // Calculamos la diferencia de años.
    let edad = hoy.getFullYear() - fechaNacimiento.getFullYear();
    const mes = hoy.getMonth() - fechaNacimiento.getMonth();

    // Ajustamos la edad si aún no ha cumplido años este año.
    if (mes < 0 || (mes === 0 && hoy.getDate() < fechaNacimiento.getDate())) {
    edad--;
    }

    // Mostramos la edad en el campo de solo lectura.
    // Si la edad es negativa (fecha futura), mostramos 0.
    edadInput.value = Math.max(0, edad);
    } else if (edadInput) {
    // Si el campo de fecha se vacía, vaciamos también el de edad.
    edadInput.value = '';
    }
    }
    });
    }
    });

    Asegúrate de que se ejecute en todos los sitios y se coloque en el footer.

    Ahora, cuando un usuario seleccione una fecha en el campo de nacimiento, la edad se calculará y aparecerá automáticamente en el campo «Edad».

    Este código calcula y muestra la edad. Si además necesitas validar que la edad esté entre 3 y 10 años, podemos añadir una validación extra con JavaScript.

    Hacemos esto con JavaScript (que se ejecuta en el navegador del usuario o «front-end») porque proporciona una respuesta instantánea sin necesidad de recargar la página, lo que mejora mucho la experiencia de usuario (UX).

    Si tienes alguna otra duda o te encuentras con algún problema, no dudes en preguntar. Y recuerda hacer una copia de seguridad del sitio antes de insertar cualquier código.

    Saludos.

    Hola Iván.

    Según dice en la descripción del tema en el repositorio de WordPress: El panel de administración avanzado te permitirá personalizarlo sin necesidad de conocimientos técnicos.
    Así que debe haber alguna opción en el menú para hacerlo. Esta opción no tiene que estar necesariamente en el personalizador.

    Saludos.

    Me alegro de que te haya funcionado.

    Asi Avada no se actualiza será porque no tiene licencia o ya caducó. Mira qué versión de Avada tienes y cuál es la última.

    Hola @davo9

    El mensaje «Parse error: syntax error» indica que el código del plugin Fusion Builder está utilizando una sintaxis de PHP que la versión de PHP de tu servidor de hosting no entiende. Esto suele ocurrir cuando un plugin se actualiza a una versión más moderna, pero el servidor se queda en una versión de PHP antigua.

    Para solucionarlo, primero necesitamos que recuperes el acceso a tu web y luego arreglaremos la causa real del problema.

    Como no puedes acceder al panel de administración de WordPress, la forma más rápida de desactivar el plugin que causa el error es renombrar su carpeta.

    1. Accede a los archivos de tu web: Necesitarás conectarte a tu servidor utilizando el Administrador de Archivos de tu panel de hosting (cPanel, Plesk, etc.).
    2. Navega a la carpeta de plugins: Una vez dentro, sigue esta ruta: wp-content/plugins/.
    3. Localiza y renombra la carpeta del plugin: Busca la carpeta llamada fusion-builder. Haz clic derecho sobre ella y selecciona «Renombrar».
    4. Cámbiale el nombre: Añade algo al final, por ejemplo: fusion-builder-desactivado.

    Al renombrar la carpeta, WordPress no podrá encontrar el plugin y lo desactivará automáticamente. Esto debería eliminar el error crítico y permitirte volver a entrar en tu panel de administración (/wp-admin).

    Desactivar el plugin es solo un parche temporal, ya que es una parte esencial de tu tema (Avada). La solución real es actualizar la versión de PHP de tu hosting a una más reciente y compatible. Deberías usar, como mínimo, PHP 8.1 o 8.2 para mayor seguridad y rendimiento.

    Aquí te explico cómo hacerlo:

    1. Antes de hacer cualquier cambio importante, es fundamental que realices una copia de seguridad completa de tu sitio web (archivos y base de datos). Puedes usar un plugin como UpdraftPlus (si puedes acceder) o la herramienta de backups de tu proveedor de hosting.
    2. Entra en tu cuenta de cPanel, Plesk o el panel de control que te proporcione tu proveedor de alojamiento.
    3. Busca una opción llamada «Administrador de PHP», «Seleccionar versión de PHP», «MultiPHP Manager» o algo similar. Suele estar en la sección de «Software» o «Avanzado».
    4. En el menú desplegable, selecciona una versión actualizada. Te recomiendo elegir PHP 8.1 o 8.2, ya que son estables y seguras. Guarda los cambios.
    5. Una vez actualizada la versión de PHP, visita tu web para asegurarte de que todo carga correctamente.

    Cuando hayas actualizado la versión de PHP y tu web funcione correctamente:

    1. Accede de nuevo por FTP o el Administrador de Archivos y cambia el nombre de la carpeta fusion-builder-desactivado a su nombre original: fusion-builder.
    2. Ve a tu panel de WordPress y asegúrate de que el plugin Fusion Builder está activo y de que no aparece ningún error en el sitio.

    Si tienes alguna duda en el proceso, no dudes en volver a preguntar.

    Saludos.

    Hola.

    El «error 500» y el mensaje de «error crítico» son, sin duda, de los más comunes y a la vez más vagos que te puedes encontrar.

    El mensaje que ves, «Error crítico en este sitio web», es la forma en que WordPress intenta proteger tu sitio cuando algo va mal, enviando los detalles del error al correo del administrador. Es un gran avance con respecto a la pantalla blanca de la muerte, pero aún así, no nos da la información completa a simple vista.

    Lo más probable es que la causa sea un conflicto con un plugin o un tema que has instalado o actualizado recientemente, o bien, un problema de límites de memoria en el servidor de tu hosting.

    Saludos.

    Hola Dennis.

    Lo que buscas es una solución de gestión de inventario y precios que permita una logística compleja por almacén, algo que WordPress y WooCommerce no ofrecen de forma nativa. Esto va más allá de un simple inventario multisede; implica lógicas de precios y envíos condicionales basadas en el origen del producto.

    Para lograr esto, la mejor solución es utilizar un enfoque con plugins especializados, ya que intentar programarlo a medida sería una tarea enorme, propensa a errores y difícil de mantener.

    Aquí te expongo la estrategia y las herramientas que te recomiendo para construir esta funcionalidad.

    El problema se desglosa en tres partes principales que deben trabajar juntas:

    1. Gestión de productos por almacén y precios: Necesitas un sistema que permita asociar un mismo producto (con el mismo SKU) a múltiples «almacenes» y asignar un precio único para cada ubicación.
      Stock Locations for WooCommerce
      Multi Inventory Management for WooCommerce
    2. Lógica de envíos condicionales: El carrito debe calcular los costes de envío por separado, basándose en el origen de cada producto.
      Advanced Shipping Manager
      Advanced Shipping Packages for WooCommerce
    3. Selección de almacén por el cliente: El usuario debe poder elegir el almacén de origen si un producto está disponible en múltiples ubicaciones.
      Este es el punto más delicado. Si un mismo SKU está en varios almacenes, el cliente debe poder elegir. Esto requiere que el plugin de inventario multisede que elijas ofrezca esta funcionalidad en el front-end del producto. No he encontrado ninguno específico para esto.
      Verifica la compatibilidad: Asegúrate de que el plugin de inventario (el punto 1) tiene una opción para mostrar al cliente las diferentes ubicaciones disponibles para un producto y permitirle seleccionar una de ellas.
      Implementación: Este tipo de plugin suele añadir un selector en la página del producto, donde el cliente puede ver «Disponible en ALMACEN MADRID (20€)» y «Disponible en ALMACEN MALAGA (25€)» y elegir cuál añadir al carrito.

    Consideraciones y Consejos de Seguridad

    • Los plugins que te propongo pueden no ser los únicos que sirvan. Me he limitado a la búsqueda en el repositorio de WordPress o los oficiales de WooCommerce. Podría haber plugins comerciales que sirvan.
    • Asegúrate de que los plugins que elijas estén bien valorados, actualizados regularmente y sean compatibles con la última versión de WordPress y WooCommerce.
    • Antes de instalar cualquier plugin en tu sitio en producción, pruébalo siempre en un entorno de desarrollo o staging (una copia exacta de tu web). Esto te permite comprobar que no hay conflictos de plugins, que las lógicas funcionan correctamente y que el diseño no se rompe.
    • Antes y después de cualquier cambio importante, realiza una copia de seguridad completa de tu web (archivos y base de datos).

    Este es un proyecto con mucha complejidad, por lo que te recomiendo que te tomes el tiempo necesario para investigar bien cada plugin y probar la solución de principio a fin antes de lanzarla.

    Saludos.

    Hola.

    Tal como planteas la cuestión no podemos ayudarte. Tienes que proporcionar más datos:
    ¿Qué tema usas?, por ejemplo.
    Pon enlace a la página para que podamos ver qué pasa.
    ¿Seguro que el archivo del logotipo se ha subido con fondo transparente?

    Saludos.

    Hola.

    La redirección que mencionas es un problema típico en este tipo de migraciones y casi siempre se debe a una configuración incorrecta de la URL del sitio en la base de datos.

    La principal razón de la redirección es que WordPress almacena la URL del sitio en la base de datos. Cuando restauras la base de datos del sitio antiguo, esta sigue conteniendo la URL del dominio anterior. Al iniciar WordPress, lee esa URL y, como el sitio no está en ese dominio, te redirige automáticamente.

    Por lo que cuentas, supongo que tienes la instalación de WordPress que has heredado ya instalada en un servidor.

    Si es así, toca cambiar la URL en la base de datos.

    Esta es la parte más crítica para resolver la redirección.

    Edición de la URL en la Base de Datos

    1. Abre la tabla wp_options: En tu base de datos, localiza la tabla que termina con _options (el prefijo wp_ puede variar si el sitio original lo usaba de forma diferente).
    2. Busca siteurl y home: Dentro de esta tabla, busca las filas con los nombres de opción siteurl y home.
    3. Actualiza las URLs: Cambia el valor de ambas filas a la nueva URL de tu sitio. Por ejemplo, si tu sitio se llama www.adlatere.com, la URL será http://www.adlatere.com o similar.

    ¡Atención! Es muy importante que la URL no termine en una barra (/).

    1. Verifica y corrige URLs serializadas: Si el sitio tiene enlaces o imágenes insertados directamente en el contenido (en entradas, páginas o widgets), sus URLs también estarán desactualizadas. Para corregir esto de forma segura, te recomiendo usar una herramienta de búsqueda y reemplazo. Un plugin muy útil para esto es Better Search Replace una vez que logres poner el sitio en marcha.

      Antes de eso, puedes hacerlo directamente en la base de datos, pero es más arriesgado. Si quieres hacerlo manualmente, busca en todas las tablas las URLs antiguas y reemplázalas por las nuevas. Sin embargo, ten en cuenta que algunas URLs pueden estar serializadas y un simple buscar-y-reemplazar puede corromper los datos. Por eso, usar un script o plugin es la opción más segura.

    Configuración del Archivo wp-config.php

    Asegúrate de que los detalles de conexión a la base de datos son correctos.

    Edita wp-config.php: Abre el archivo wp-config.php que está en el directorio raíz.

    Actualiza las credenciales: Reemplaza las credenciales de la base de datos anterior con las de tu nueva base de datos.

    /** The name of the database for WordPress */
    define( 'DB_NAME', 'el_nombre_de_tu_nueva_basededatos' );

    /** MySQL database username */
    define( 'DB_USER', 'tu_usuario' );

    /** MySQL database password */
    define( 'DB_PASSWORD', 'tu_contraseña' );

    /** MySQL hostname */
    define( 'DB_HOST', 'localhost' );

    Si todo ha ido bien, deberías ver la página de inicio. Ahora puedes navegar al escritorio de WordPress (http://www.adlatere.com/wp-admin/) para iniciar sesión y empezar a trabajar en la web.

    Si sigues teniendo problemas, es posible que el antiguo sitio tuviera un plugin de redirecciones o de caché que necesites desactivar. Esto se podría hacer cambiando temporalmente el nombre del directorio de plugins (wp-content/plugins) para forzar su desactivación.

    Saludos.

    Hola Pablo.

    Te paso el código para que pruebes.

    Recuerda hacer siempre una copia de seguridad del sitio antes de implememtar este tipo de cambios.

    Vamos a «escuchar» cuando se registre un nuevo usuario (sin importar cómo) y le diremos a WooCommerce que envíe su correo de bienvenida.

    Este código puedes añadirlo en el archivo functions.php de tu tema hijo (nunca en el del tema padre) o, de forma más recomendable y segura, usando un plugin de fragmentos de código como Code Snippets.

    /**
    * Dispara el correo de bienvenida de WooCommerce cuando se registra un nuevo usuario,
    * independientemente del método de registro (ej. un formulario de Breakdance).
    */
    add_action( 'user_register', 'enviar_correo_bienvenida_wc_en_registro', 10, 1 );

    function enviar_correo_bienvenida_wc_en_registro( $user_id ) {
    // Primero, nos aseguramos de que WooCommerce esté activo para no causar un error fatal.
    if ( ! class_exists( 'WooCommerce' ) ) {
    return;
    }

    // Obtenemos la instancia del sistema de correos de WooCommerce.
    $mailer = WC()->mailer();
    $emails = $mailer->get_emails();

    // Comprobamos que la clase del correo electrónico 'Customer_New_Account' existe y está activa.
    if ( isset( $emails['WC_Email_Customer_New_Account'] ) ) {
    // Disparamos el correo, pasándole el ID del usuario recién creado.
    $emails['WC_Email_Customer_New_Account']->trigger( $user_id );
    }
    }

    ¿Qué hace este código?

    1. Se engancha a la acción user_register, que WordPress ejecuta cada vez que se crea un nuevo usuario con éxito.
    2. Dentro de nuestra función, comprueba si WooCommerce está activo.
    3. Obtiene el objeto del correo específico de «Nueva Cuenta» de WooCommerce.
    4. Llama al método trigger() de ese objeto, pasándole el ID del nuevo usuario. Esto es exactamente lo que hace WooCommerce por su cuenta, pero nosotros lo estamos forzando manualmente.

    Prueba esta solución y me cuentas.

    Saludos.

Viendo 15 respuestas - de la 1 a la 15 (de un total de 347)