Actualmente estoy trabajando en un complemento para cargar archivos en wordpress usando el cargador de archivos. El usuario puede guardar una lista de archivos para usar en otra ubicación del tema. Todo funciona, excepto cuando quiero borrar archivos.
Puedo eliminar los archivos usando el cargador de medios, lo cual no es un problema. Los archivos se eliminan en el fondo de wordpress. Pero cuando se elimina un archivo en el cargador de medios, también quiero que se elimine de la lista que el usuario está editando actualmente, por lo que los archivos no se pueden guardar en mi tabla de base de datos personalizada cuando ya no existe en el "entorno de medios". Sé qué javascript necesito para eliminarlos de mi lista, pero no sé cómo obtener los archivos eliminados del cargador de medios.
A continuación hay dos soluciones posibles que parecen lógicas, pero aún no he encontrado el enfoque correcto.
Enfoque 1
function someFunction() {
(...)
file_frame.on('select', handle_upload); //This works
file_frame.on('delete', handle_delete_media); //perhaps something like this exists?
}
Enfoque 2 (No estoy seguro de si es un buen enfoque, ya que requiere la selección de archivos)
function handle_upload() {
var files = file_frame.state().get('selection').toJSON(); //This works
var files = file_frame.state().get('deleted').toJSON(); //perhaps something like this exists?
(...)
}
Cualquier ayuda sería muy apreciada.
EDIT
Este es el código para abrir el Cargador de medios
function open_uploader(e)
{
e.preventDefault();
if(file_frame) {
file_frame.open();
return;
}
file_frame = wp.media.frames.file_frame = wp.media({
title: 'Select files for your List',
multiple: true,
button: {
text: 'Insert into List',
}
});
file_frame.on('select', handle_upload);
//file_frame.on('delete', handle_media_delete); I NEED SOMETHING LIKE THIS
file_frame.open();
}
Y este código es el script para agregar los archivos seleccionados a la lista, que ya funciona. Esto es básicamente solo un código jQuery.
function handle_upload(e)
{
var files = file_frame.state().get('selection').toJSON();
jQuery(files).each(function(index, attachment){
var url = attachment.url.toString();
var media_id = attachment.id.toString();
var title = attachment.title.toString();
var description = attachment.description.toString();
(...)
});
}