• User Attivo

    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]


  • User Attivo

    Ovviamente valuto retribuzione ma mi sembrava scontato.
    Grazie


  • Moderatore

    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.


  • User Attivo

    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 ...


  • Moderatore

    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.


  • User Attivo

    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.


  • User Attivo

    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))
    {

    	}	
    

    }