Elementor\TemplateLibrary\Classes\Import_Images::import PHP Method

import() public method

public import ( $attachment )
    public function import($attachment)
    {
        $saved_image = $this->_return_saved_image($attachment);
        if ($saved_image) {
            return $saved_image;
        }
        // Extract the file name and extension from the url
        $filename = basename($attachment['url']);
        if (function_exists('file_get_contents')) {
            $options = ['http' => ['user_agent' => 'Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64; rv:49.0) Gecko/20100101 Firefox/49.0']];
            $context = stream_context_create($options);
            $file_content = file_get_contents($attachment['url'], false, $context);
        } else {
            $file_content = wp_remote_retrieve_body(wp_safe_remote_get($attachment['url']));
        }
        if (empty($file_content)) {
            return false;
        }
        $upload = wp_upload_bits($filename, null, $file_content);
        $post = ['post_title' => $filename, 'guid' => $upload['url']];
        $info = wp_check_filetype($upload['file']);
        if ($info) {
            $post['post_mime_type'] = $info['type'];
        } else {
            // For now just return the origin attachment
            return $attachment;
            //return new \WP_Error( 'attachment_processing_error', __( 'Invalid file type', 'elementor' ) );
        }
        $post_id = wp_insert_attachment($post, $upload['file']);
        wp_update_attachment_metadata($post_id, wp_generate_attachment_metadata($post_id, $upload['file']));
        update_post_meta($post_id, '_elementor_source_image_hash', $this->_get_hash_image($attachment['url']));
        $new_attachment = ['id' => $post_id, 'url' => $upload['url']];
        $this->_replace_image_ids[$attachment['id']] = $new_attachment;
        return $new_attachment;
    }