Custom Fields
Re-Envisioned
Support MB Frontend Submission How to Sideload Featured Image on Frontend Submission?

This topic contains 2 replies, has 2 voices, and was last updated by  thomastran40 1 year, 2 months ago.

  • Creator
    Topic
  • #9477

    thomastran40
    Participant

    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');  
    
Viewing 1 replies (of 1 total)
  • Author
    Replies
  • #9482

    Anh Tran
    Keymaster

    Hello,

    The MB Frontend Submission uses WordPress wp_insert_post() and wp_update_post() to create/update a post. Both functions fire the save_post hook. So, your code still works in the frontend. Please try and let me know how it goes.

Viewing 1 replies (of 1 total)

The topic ‘How to Sideload Featured Image on Frontend Submission?’ is closed to new replies.