Hva kan vi hjelpe med?

Slette ubrukte bilder fra PCK i WooCommerce

You are here:
< Alle overskrifter

I mange tilfeller må man sende opp varene på nytt, eller gamle varer skal slettes. Over tid bygger dette opp ett enormt volum av bilder. Grunnen til dette er for at APIet til WooCommerce ikke støtter å slette bilder, samt vi ikke benytter oss av plugins. Men vi har en løsning. Vi anbefaler alle å bruke dette, da dette hjelper deg å holde disken ryddig. Det er en kode du må legge inn i functions.php Det denne koden gjør er å slette ubrukte bilder fra Syncit hver time, med en bulk på 100 bilder om gangen.

function delete_pck_images($request){	 
	global $wpdb;
	$params = $request->get_params();
	
	$limit = $params["number_of_images"];
	$wp_posts = $wpdb->prefix."posts";
	$wp_postmeta = $wpdb->prefix."postmeta";
	
	$sql_q ="SELECT * FROM $wp_posts i WHERE i.post_type = 'attachment' and i.post_name LIKE '%_pck%' AND NOT EXISTS (SELECT * FROM $wp_posts p WHERE p.ID = i.post_parent) AND NOT EXISTS (SELECT * FROM $wp_postmeta pm WHERE pm.meta_key = '_thumbnail_id' AND pm.meta_value = i.ID) LIMIT 0,$limit";
	 
	    
	$results = $wpdb->get_results($sql_q);
	$data= array();
	if(!empty($results)){
		 foreach($results as $img){
			$res = wp_delete_attachment($img->ID,true);
			 $data[] = $res;
		 }
	 } 
	 return $data;
	 
}


add_action( 'rest_api_init', function () {
	 
    register_rest_route( 'wc/v3', 'delete_pck_images', array(
        'methods' => 'POST', // array( 'GET', 'POST', 'PUT', )
        'callback' => 'delete_pck_images',
    ));
	
}); 
Table of Contents