function create_zip($themeName)
{
$exclude_files = array('.', '..', '.svn', 'thumbs.db', '!sources', 'style.less.cache', 'bootstrap.less.cache', '.gitignore', '.git');
$all_themes_dir = str_replace('\\', '/', get_theme_root());
$backup_dir = str_replace('\\', '/', WP_CONTENT_DIR) . '/themes_backup';
$zip_name = $backup_dir . "/" . $themeName . '.zip';
$backup_date = date("F d Y");
if (is_dir($all_themes_dir . "/" . $themeName)) {
$file_string = scan_dir($all_themes_dir . "/" . $themeName, $exclude_files);
}
if (function_exists('wp_get_theme')) {
$backup_version = wp_get_theme($themeName)->Version;
} else {
$backup_version = get_current_theme($themeName)->Version;
}
if (!is_dir($backup_dir)) {
if (mkdir($backup_dir, 0700)) {
$htaccess_file = fopen($backup_dir . '/.htaccess', 'a');
$htaccess_text = 'deny from all';
fwrite($htaccess_file, $htaccess_text);
fclose($htaccess_file);
}
}
$zip = new PclZip($zip_name);
if ($zip->create($file_string, PCLZIP_OPT_REMOVE_PATH, $all_themes_dir . "/" . $themeName) == 0) {
die("Error : " . $zip->errorInfo(true));
}
update_option($themeName . "_date_backup", $backup_date, '', 'yes');
update_option($themeName . "_version_backup", $backup_version, '', 'yes');
echo $backup_date . "," . $backup_version;
}