- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Problema Unzip funzionante ovunque ma non in function o plugin
-
Problema Unzip funzionante ovunque ma non in function o plugin
Salve a tutti, ho realizzato un file test.php che fa l'unzip di un file.zip e sposta il contenuto dalla directory del file alla directory del tema.
Funziona perfettamente sia in locale che sul server ma se inserisco la funzione all'interno del function.php o all'interno di un plugin non funziona, ho provato a cambiare i permessi, qualsiasi cosa ... niente!Non credo che sia un problema di codice piuttosto mi sorge il dubbio che debba impostare qualche permesso su wordpress, qualsiasi suggerimento è più che apprezzato, grazie!
La funzione che utilizzo è la seguente:[PHP]
$file = 'files.zip';// get the absolute path to $file$path = pathinfo(realpath($file), PATHINFO_DIRNAME);$destination = ABSPATH . 'wp-content/themes/miotema/';
$zip = new ZipArchive;$res = $zip->open($file);if ($res === TRUE) { // extract it to the path we determined above $zip->extractTo($destination); $zip->close(); echo "WOOT! $file extracted to $destination";} else { echo "Doh! I couldn't open $file";}[/PHP]
-
Ovviamente valuto retribuzione ma mi sembrava scontato.
Grazie
-
Ciao
io la prima cosa che farei è di usare una delle cartelle di default di Wordpress (come quella delle immagini) e vedere se si risolve.
-
In che senso? scusa non ho capito!
Quando richiamo direttamente il file test.zip che fa unzip, tutto funziona sia che il file sia nel tema che dentro il folder plugin ... ma non va se integro la funzione nel function ...
-
Ciao
potrebbe essere un problema di permessi in scrittura di Wordpress per questo ti ho detto di provare a cambiare cartella. Mi spiace di non poterti aiutare oltre.
-
Innanzitutto grazie per la collaborazione, ho già modificato i permessi ovunque a 777 ma non è cambiato niente - non è un problema di location o permessi piuttosto credo che non richiami qualche classe necessaria a far funzionare l'unzip all'interno del tema o nel plugin.
-
Risolto, si può chiudere.
Per altri utenti posto a seguire il codice che dal folder del plugin estrae i files da file.zip e li inserisce nella directory del tema.register_activation_hook( FILE, 'my_theme_files_setup' );
function my_theme_files_setup(){
// Unzip files for my theme
require_once(ABSPATH .'/wp-admin/includes/file.php');
global $wp_filesystem;
WP_Filesystem();
$filename = 'file.zip';
$zip_from = get_home_path().'wp-content/plugins/my-plugin/'.$filename;
$zip_to = str_replace(ABSPATH, $wp_filesystem->abspath(), get_template_directory().'');
if(!unzip_file($zip_from,$zip_to))
{}
}