Reproduciendo archivos de audio/video en lugar de descargarlos en la sección de descargas de Woocommerce “Mi cuenta”.
Tengo una pregunta rápida en relación a WooCommerce y los archivos descargables. Me gustaría hacer que los productos comprados se reproduzcan en la sección “Mi cuenta” en lugar de descargarlos fácilmente (lo contrario a cómo WooCommerce maneja los productos descargables/virtuales).
He logrado localizar el código que maneja la vista de los “Productos descargables” en la sección “Mi cuenta” (templates/order/order-downloads.php), sin embargo, no puedo hacer que funcione, ya que el enlace resulta en la “versión segura”.
https://example.com/?downloadfile=XXXX&order=wcorder_cSzbzLqustvlw&email=XXXXXXXX&key=XXXXX
En lugar de la URL amigable/no segura del archivo:
He cambiado esta línea para que funcione como un shortcode de audio, sin embargo, no se reproduce ya que no obtiene la URL completa del archivo.
case 'download-file':
echo do_shortcode(' ) . '"]');
break;
Sé que no es el mejor enfoque cambiar el código allí, sin embargo, solo quiero hacer que funcione de manera que el cliente pueda reproducir el archivo, pero no descargarlo directamente. ¿Puedes ayudarme a lograr esto?
EDITAR
Con la ayuda de Martin Mirchev, pude obtener lo siguiente:
case 'download-file':
$url_file = esc_url( $download['file']['file'] );
$address = explode(".", $url_file);
if ($address[2] == "mp3") {
echo "<div id='content' class='fancybox-hide' style='min-width:450px; min-height:250px;'>";
echo do_shortcode('['file'] ) . '"]');
echo "</div>";
echo "<a href='#content' class='ari-fancybox'>Escuchar MP3</a>";
}
¿Habría alguna posibilidad de aplicar la misma personalización en WooCommerce en lugar de sobrescribir el archivo de plantilla?
davy.ai
Para hacer que los productos comprados se reproduzcan en la sección “Mi cuenta” de WooCommerce en lugar de descargarlos, debes modificar el código que maneja la vista de los “Productos descargables” en el archivo templates/order/order-downloads.php.
Puedes usar el siguiente código para lograr esto:
Este código verifica si el archivo es un MP3 y luego lo muestra utilizando un shortcode de audio en una ventana emergente fancybox.
Si bien este código funciona, no es el mejor enfoque modificar directamente el archivo de plantilla. En su lugar, puedes crear un plugin o un tema hijo para personalizar la funcionalidad de WooCommerce sin modificar los archivos principales.
Para lograr esto, debes utilizar los ganchos y filtros de acción de WordPress proporcionados por WooCommerce. Por ejemplo, puedes utilizar el filtro
woocommerce_available_download_link
para modificar la URL del enlace de descarga y agregar tu funcionalidad personalizada.Aquí tienes un ejemplo de fragmento de código que muestra cómo usar este filtro para modificar la URL del enlace de descarga:
Este código verifica si el archivo es un MP3 y luego reemplaza el enlace de descarga por una ventana emergente fancybox que reproduce el archivo al hacer clic en él.
En resumen, si bien modificar directamente el archivo de plantilla puede funcionar, no se recomienda. Es mejor utilizar los ganchos y filtros de acción proporcionados por WooCommerce para personalizar su funcionalidad sin modificar los archivos principales.