Mijn vraag
Voor een webshop wil ik de producten uit de oude osCommerce database overzetten naar een nieuwe WooCommerce site. Via een plugin lukt dit prima en alle producten zijn gekopieerd maar niet alle afbeeldingen gaan mee. Ik heb gemerkt dat afbeeldingen met een spatie in de url niet worden overgezet. Zou iemand kunnen kijken naar onderstaande functie hoe ik die moet aanpassen om alle afbeeldingen over te zetten?
function woocommerce_osc_import_image($url){
$attach_id = 0;
$wp_upload_dir = wp_upload_dir();
$filename = $wp_upload_dir['path'].'/'.sanitize_file_name(basename($url));
if(file_exists($filename)){
$url = $filename;
}else{
//Encode the URL
$base = basename($url);
$url = str_replace($base,urlencode($base),$url);
}
if($f = @file_get_contents($url)){
file_put_contents($filename,$f);
$wp_filetype = wp_check_filetype(basename($filename), null );
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, 37 );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
}
return $attach_id;
}
Alvast ontzettend bedankt!
Groet,
Stephanie
Voor een webshop wil ik de producten uit de oude osCommerce database overzetten naar een nieuwe WooCommerce site. Via een plugin lukt dit prima en alle producten zijn gekopieerd maar niet alle afbeeldingen gaan mee. Ik heb gemerkt dat afbeeldingen met een spatie in de url niet worden overgezet. Zou iemand kunnen kijken naar onderstaande functie hoe ik die moet aanpassen om alle afbeeldingen over te zetten?
function woocommerce_osc_import_image($url){
$attach_id = 0;
$wp_upload_dir = wp_upload_dir();
$filename = $wp_upload_dir['path'].'/'.sanitize_file_name(basename($url));
if(file_exists($filename)){
$url = $filename;
}else{
//Encode the URL
$base = basename($url);
$url = str_replace($base,urlencode($base),$url);
}
if($f = @file_get_contents($url)){
file_put_contents($filename,$f);
$wp_filetype = wp_check_filetype(basename($filename), null );
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, 37 );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
}
return $attach_id;
}
Alvast ontzettend bedankt!
Groet,
Stephanie