On further investigation, I noticed that the file wasn’t importing properly (folder permissions).
So I wrote a patch for the code in class-config.php.
Line: 412
$file = wp_handle_upload($_FILES['settings_import_file']);
if ( isset( $file['file'] ) && !is_wp_error($file) ) {
require_once (ABSPATH . 'wp-admin/includes/class-pclzip.php');
$zip = new PclZip( $file['file'] );
$upload_dir = wp_upload_dir();
$unzipped = $zip->extract( $upload_dir['path'] );
if ( $unzipped[0]['stored_filename'] == 'settings.ini' ) {
$options = parse_ini_file( $unzipped[0]['stored_filename'] , true );
foreach ($options as $name => $optgroup) {
if ($name != 'wpseo_taxonomy_meta') {
update_option($name, $optgroup);
} else {
update_option($name, json_decode( urldecode( $optgroup['wpseo_taxonomy_meta'] ), true ) );
}
}
@unlink( $file['file'] ); // Remove archive file
$content .= '<p><strong>'.__('Settings successfully imported.', 'wordpress-seo' ).'</strong></p>';
} else {
$content .= '<p><strong>'.__('Settings could not be imported:', 'wordpress-seo' ).' '.__('Unzipping failed.', 'wordpress-seo' ).'</strong></p>';
}
} else {
if ( is_wp_error($file) )
$content .= '<p><strong>'.__('Settings could not be imported:', 'wordpress-seo' ).' '.$file['error'].'</strong></p>';
else
$content .= '<p><strong>'.__('Settings could not be imported:', 'wordpress-seo' ).' '.__('Upload failed.', 'wordpress-seo' ).'</strong></p>';
}
That works for MU but will need testing on standalone installations. It’s probably correct because it uses wp_upload_dir().
Thanks for the great plugin as always ??