Pregunta sobre WooCommerce de Wordpress:

Problema de descarga

Un usuario preguntó 👇

Hola,

Tengo archivos almacenados en mi cuenta de Google Drive (porque son demasiado pesados). Luego cambio la URL compartida a una URL de descarga directa.

Ex: https://drive.google.com/file/d/FILE_ID/edit?usp=sharing
A: https://drive.google.com/uc?export=download&id=FILE_ID

Una vez que envío el enlace en mi navegador, puedo descargar el archivo directamente. Agregué este enlace a mi producto y ahora el usuario puede descargar el archivo, pero el nombre del archivo no está incluido. Por ejemplo, mi archivo se llama «hello.zip», cuando el usuario va a su cuenta para descargar el archivo, obtiene un archivo «uc» cada vez. Traté de descargar este archivo porque el peso es el mismo, este archivo «uc» fue renombrado como «hello.zip» y funciona.

¿Cómo arreglar este problema?

Gracias

Lanzador de hilos

(@maxwilliam)

Hace 2 años, 4 meses

Creo que encontré algo. En el archivo: incluye / class-wc-download-handler.php Cambié la línea 433: encabezado (‘Asunto-Eliminación: archivo adjunto; nombre de archivo = «‘. $ Nombre de archivo. ‘»;’); En: encabezado (‘Eliminación de contenido: archivo adjunto; nombre de archivo = «blablabla.doc»;’);

Ahora, esto cambia el nombre del archivo cuando intento descargarlo. Entonces hay un problema al obtener el nombre de archivo de la URL…

Lanzador de hilos

(@maxwilliam)

Hace 2 años, 4 meses

Encontré una solución temporal. Archivo: incluye / class-wc-download-handler.php En la línea 195: $ nombre de archivo = actual (explosión (‘?’, $ Nombre de archivo));

Esa es la razón del problema porque con Google Drive el nombre del archivo no se transmite en la URL. Así que intenté recuperar este nombre de archivo usando curl pero fallé …

Por lo tanto, cuando crea su producto y envía un archivo para descargar, debe completar el nombre de archivo y la URL. Entonces uso el campo de nombre para nombrar mi archivo (el mismo nombre que mi archivo almacenado en mi Google Drive por extensión).

Luego hice cambios en la línea 194:

if (strstr ($ nombre de archivo, ‘?’)) {$ nombre de archivo = actual (explosión (‘?’, $ nombre de archivo)); }

En:

if (strstr ($ nombre de archivo, ‘?’)) {$ nombre de archivo = actual (explosión (‘?’, $ nombre de archivo));

$ producto = wc_get_product ($ product_id); $ drive_filename = $ producto-> get_downloads (); foreach ($ drive_filename as $ key => $ each_download) {$ filename = $ each_download[“name”]; }}

Funciona por minuto 🙂

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.