Agregar botones de descarga de archivos en página de producto de Woocommerce  

 
Sika
 Sika
Usuario activo

Hola, tengo un Woocommerce y todos los productos tienen archivos descargables distintos, asociados a cada producto. Hay alguna manera de hacer que en la página del producto aparezca la opción de "Descargar" y el nombre del archivo descargable que tiene asociado el producto y listo? Sin necesidad de compra ni nada.

Llevo semanas dando vueltas a plugins que sustituyen el botón de "agregar al carrito" por "Descargar" y lo vinculan con los archivos descargables del producto, pero no funcionan. Sabes alguna manera?

También probé con este código (Incrustado en la página de producto, uso Elementor) y estuvo funcionando, pero de pronto dejó de funcionar:


Muchísimas gracias de antemano por la ayuda. Un saludo!

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 09/09/2019 7:27 pm
Jhon Marreros Guzman
Miembro Moderator

Hola

De donde obtuviste ese código?

Veo que le falta etiquetas PHP, por ejemplo esto es incorrecto:

action="get_permalink( $product_id )"

En todo caso debería ser:

action=""

Pero no se si en donde lo estas insertando acepta código PHP, en todo caso tendrías que modificar el archivo de detalle de producto directamente para agregar todo el código.

Saludos.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 09/09/2019 7:46 pm

Cursos Gratuitos WordPress

Sika
 Sika
Usuario activo

Hola,

Ese código lo saqué de uno de los plug-ins que hacía esa funcionalidad, y probé a incrustarlo y funcionó, pero ya no está funcionando. Por lo que veo en tu comentario, habría que editar el producto, cosa que no se hacer...

Sabes de alguna manera de poder hacer esto? Me asombra que un Store como Woocommerce tan testeado y famoso no tenga esta funcionalidad más a mano.

Mil gracias por la rápida respuesta!

ResponderCitar
Respondido : 09/09/2019 8:26 pm
Jhon Marreros Guzman
Miembro Moderator

Hola

Esos enlaces entiendo que lo agregaste como parte del producto, son enlaces que sólo lo verá el cliente que haya comprado o quieres mostrarlo para todos los visitantes?

De manera general podrías evaluar hacerlo por código, tal como se comenta en:
Contenido solo visible a usuarios registrados
Aunque en este caso esta validado para que el usuario tenga acceso permitido a esa descarga.

Si son enlaces que lo pueden ver cualquier visitante, has evaluado mostrarlo como parte de la descripción?

Saludos.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 09/09/2019 9:00 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Sika
 Sika
Usuario activo

Hola,

Perdona la demora pero estuve probando lo del enlace, pero efectivamente es sólo para clientes identificados. Yo quiero que cualquiera pueda descargárselo directamente desde la página de producto. El problema es que ya tengo creados cientos de productos con sus respectivos archivos, por lo que lo ideal sería que de alguna manera pudieran aparecer en la página de producto directamente. He seguido probando algún otro plug-in y nada, se te ocurre alguna manera?

Miles de gracias por tu ayuda!!

ResponderCitar
Respondido : 10/09/2019 4:57 pm
Jhon Marreros Guzman
Miembro Moderator

Hola

Entiendo que estas probando este código:

add_action('woocommerce_after_add_to_cart_form', 'download_products');

function download_products()
{

    $downloads = array();
    $user_id = get_current_user_id();
    $downloads = wc_get_customer_available_downloads($user_id);
    if (!empty($downloads)) {
        foreach ($downloads as $download) {

            echo 'Download';

        }
    }

}

Si te das cuenta hay una parte que obtiene el ID del usuario actual:

$user_id = get_current_user_id();

En tu caso sería asignar el id de algún usuario registrado que tenga acceso, es decir por ejemplo si el ID del usuario es 123, asignarías

$user_id = 123;

Puedes averiguar el ID del usuario en el backend del sitio, el ID aparece en la url cuando editas un usuario.

Saludos.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 10/09/2019 6:40 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Sika
 Sika
Usuario activo

Hola,

Gracias por la respuesta. La verdad es que Elementor no admite ese código, no lo reconoce, aparece como texto.

Estoy ante una duda, si a través de algún plug-in consiguiera meter ese código de java en la página de producto y le modifico el user id por el de un administrador por ejemplo, cualquier persona que entre a cualquier página de producto va a poder descargarse los archivos asociados?

Es que no tengo claro si me estoy yendo de la solución que necesito, que sólo es hacer públicos los archivos descargables de los productos, o es que no hay manera más fácil de hacerlo?

Muchas gracias de antemano!

ResponderCitar
Respondido : 10/09/2019 8:09 pm
Jhon Marreros Guzman
Miembro Moderator

Hola

Lo normal si todos los usuarios que verán el producto deben ver esos enlaces es que lo hayas colocado como parte de la descripción o de un campo adicional público ( con algún plugin )

Al colocarlo como descargable te complicaste un poco.

El código lo debes colocar en el archivo functions.php del theme (al final del archivo), pensé que lo habías realizado antes, lo último que te envié es una modificación al código para que lo vea cualquier usuario ya que estará seteado para un usuario con permisos.

Saludos.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 10/09/2019 8:21 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Sika
 Sika
Usuario activo

Hola!

Supongo que eso funcione, el problema es que estoy usando Elementor para editar la página de producto, entonces creo que Elementor interfiere sobre lo que aparece en la página de producto y no deja que se muestre esa función.

No obstante no quiero marearte mas, miles de gracias por la ayuda de todas formas. Igual a alguien le puede ayudar en el futuro. Yo buscaré la manera de hacerlo con Elementor, si doy con ella la compartiré por aquí.

ResponderCitar
Respondido : 10/09/2019 9:02 pm
Bulmaro
Miembro Moderator

Hola Sika,

Considero que Elementor no debería interferir con lo proporcionado por Jhon.

Esto debido a que Elementor es un constructor de páginas web, mas no modifica el core o núcleo de Woocommerce, es decir, no modifica su comportamiento solo y como lo mencioné al inicio del párrafo, puede modificar el diseño de las páginas web de woocommerce. Vaya, podrá modificar el front de woocommerce, mas no el core o backend.

Cualquier consulta que tengas adicionalmente estamos para auxiliarte.

Por último, se me ocurre que ya que hiciste los productos configurándolos como virtuales y descargables una solución simple sería la de establecer su precio en $0.00 y a la vez instalar el plugin Free Downloads for Woocommerce -> https://es.wordpress.org/plugins/download-now-for-woocommerce/

Otra opción, es igualmente establecer el costo en $0.00 y combinarlo con el plugin -> https://zemez.io/wordpress/support/knowledge-base/download-button-jetelements-module-elementor/ que está desarrollado para integrarse con Elementor.

Saludos.

ArellanoB

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 10/09/2019 11:34 pm

Cursos Gratuitos WordPress

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Por favor Iniciar Sesión o Registro