I have a custom post type of "Websites" and a Front-end Submission form to add a website. I use the following that works via the WP Admin Panel. How can i trigger the same type of functionality on my website frontend submission form?
function download_featured_image( $post_id ) {
if ( has_post_thumbnail() ) {
return;
}
// example image
$image = "https://cdn.restpack.io/a/cache/st/screenshot/6dba6142c1b6e0930f0b201f4dc3fb37c01d2f73";
// magic sideload image returns an HTML image, not an ID
$media = media_sideload_image($image, $post_id);
// therefore we must find it so we can set it as featured ID
if(!empty($media) && !is_wp_error($media)){
$args = array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_status' => 'any',
'post_parent' => $post_id
);
// reference new image to set as featured
$attachments = get_posts($args);
if(isset($attachments) && is_array($attachments)){
foreach($attachments as $attachment){
// grab source of full size images (so no 300x150 nonsense in path)
$image = wp_get_attachment_image_src($attachment->ID, 'full');
// determine if in the $media image we created, the string of the URL exists
if(strpos($media, $image[0]) !== false){
// if so, we found our image. set it as thumbnail
set_post_thumbnail($post_id, $attachment->ID);
// only want one image
break;
}
}
}
}
}
add_action( 'save_post', 'download_featured_image');