[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDMLrH2_wqQs4_RzXai2lWZNaLN8rRrxvhpZWjxw57Ls":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":13,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":61,"crawl_stats":36,"alternatives":69,"analysis":169,"fingerprints":534},"url-image-importer","URL Image Importer","1.0.8","Infinite Uploads","https:\u002F\u002Fprofiles.wordpress.org\u002Fbww\u002F","\u003Cp>URL Image Importer allows you to effortlessly import images from URLs, CSV spreadsheets, or WordPress XML export files directly into your Media Library. Simply paste one or multiple image links, upload a CSV file, or import your WordPress export file—and it will handle the rest, importing them all with ease!\u003C\u002Fp>\n\u003Cp>The plugin fetches images directly from external links, validates them, and adds them to your Media Library—saving you time and effort. It’s perfect for quickly adding assets to your site without the hassle of downloading files to your computer and manually uploading them to WordPress.\u003C\u002Fp>\n\u003Ch3>URL Image Importer Plugin Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Import any image directly into your WordPress Media Library from a URL—no file uploads required.\u003C\u002Fli>\n\u003Cli>Import multiple images at once using a \u003Cstrong>CSV spreadsheet\u003C\u002Fstrong> with image URLs in bulk.\u003C\u002Fli>\n\u003Cli>Import from \u003Cstrong>WordPress XML export files\u003C\u002Fstrong> to restore or migrate images between sites.\u003C\u002Fli>\n\u003Cli>Works seamlessly with any hosting environment or server setup.\u003C\u002Fli>\n\u003Cli>Automatically validate and save images, ensuring they’re ready to use in your content.\u003C\u002Fli>\n\u003Cli>Get smart recommendations based on available space in your temporary uploads directory.\u003C\u002Fli>\n\u003Cli>Works with any server or hosting provider.\u003C\u002Fli>\n\u003Cli>Upload any size file directly to a connected Infinite Uploads cloud account.\u003C\u002Fli>\n\u003Cli>Uploads directory disk utility for quickly analyzing storage usage in your media library.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Import Images to your Media Library\u003C\u002Fh3>\n\u003Cp>Paste in a publicly accessible URL with a compatible file extension or upload a CSV\u002FXML file and enjoy media management ease.\u003C\u002Fp>\n\u003Ch3>Bulk Import Support\u003C\u002Fh3>\n\u003Cp>Allows you to paste multiple URLs, upload a CSV file, or use a WordPress XML export to import several images simultaneously without timing out. It processes one at a time, recursively importing them.\u003C\u002Fp>\n\u003Ch3>CSV Imports\u003C\u002Fh3>\n\u003Cp>Upload a CSV file containing one or more image URLs (and optional metadata). The plugin automatically processes each row and imports all valid images into your Media Library. Perfect for large-scale imports from spreadsheets or external asset lists.\u003C\u002Fp>\n\u003Ch3>XML Imports from WordPress Export Feature\u003C\u002Fh3>\n\u003Cp>Easily import images from a standard WordPress XML export file. The importer automatically parses the XML file, locates image URLs, and downloads them into your Media Library. This is ideal for restoring lost media or transferring content between sites.\u003C\u002Fp>\n\u003Ch3>Uploads Disk Utility\u003C\u002Fh3>\n\u003Cp>The URL Image Importer plugin includes a media library disk utility that shows a breakdown of the files in your uploads directory by type and size. See how many images, videos, archives, documents, code, and other files (like audio) there are and how much space they’re taking up.\u003C\u002Fp>\n\u003Ch3>FTP\u002FSFTP Client-free File Uploading\u003C\u002Fh3>\n\u003Cp>Upload files right to the WordPress media library from URLs without additional credentials and settings. Skip the protocol settings, server names, port numbers, usernames, long passwords, and private keys. Grab the image & paste the URL in!\u003C\u002Fp>\n\u003Ch3>Compatible with Big File Uploads\u003C\u002Fh3>\n\u003Cp>Bypass the upload limits on your server, set by your hosting provider, that prevent you from uploading large files to your media library.\u003C\u002Fp>\n\u003Ch3>Wanna make your media library infinitely scalable? Move your big files and uploads directory to the cloud.\u003C\u002Fh3>\n\u003Cp>Big File Uploads is built to work with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Finfinite-uploads\u002F\" rel=\"ugc\">Infinite Uploads\u003C\u002Fa> to make your site’s upload directory infinitely scalable. A large WordPress media library can slow down your server and run up the cost of bandwidth and storage with your hosting provider. Move your uploads directory to the Infinite Uploads cloud to save on storage and bandwidth and improve site performance and security. Learn more about \u003Ca href=\"https:\u002F\u002Finfiniteuploads.com\u002F?utm_source=wordpress.org&utm_medium=readme&utm_campaign=URLII_readme&utm_term=promo\" rel=\"nofollow ugc\">Infinite Uploads cloud storage and content delivery network\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin does not collect or share any data. Site admins can optionally subscribe to email updates which is subject to our \u003Ca href=\"https:\u002F\u002Finfiniteuploads.com\u002Fprivacy\u002F?utm_source=wordpress.org&utm_medium=readme&utm_campaign=bfu_readme&utm_term=privacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>About Us\u003C\u002Fh3>\n\u003Cp>Infinite Uploads builds WordPress plugins and is a premium cloud storage provider and content delivery network (CDN) for all your WordPress media files. Learn more here:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Finfiniteuploads.com\u002F?utm_source=wordpress.org&utm_medium=readme&utm_campaign=bfu_readme&utm_term=about_us\" rel=\"nofollow ugc\">infiniteuploads.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Learn how to manage large files on our blog:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Finfiniteuploads.com\u002Fblog\u002F?utm_source=wordpress.org&utm_medium=readme&utm_campaign=URLII_readme&utm_term=blog\" rel=\"nofollow ugc\">Infinite Uploads Blog, Tips, Tricks, How-tos, and News\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Enjoy!\u003C\u002Fp>\n\u003Ch3>Contact and Credits\u003C\u002Fh3>\n\u003Cp>Maintained by the cloud architects and WordPress engineers at \u003Ca href=\"https:\u002F\u002Finfiniteuploads.com\u002F?utm_source=wordpress.org&utm_medium=readme&utm_campaign=URLII_readme&utm_term=credits\" rel=\"nofollow ugc\">Infinite Uploads\u003C\u002Fa>.\u003C\u002Fp>\n","Import images from URLs, CSV files, or WordPress XML exports directly into your WordPress Media Library to use across your entire site!",500,4129,0,"2025-12-29T20:47:00.000Z","6.7.5","5.3","7.4",[19,20,21,22,23],"csv-import","image-import","import-image","import-image-to-media-library","media-library","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Furl-image-importer.1.0.8.zip",96,2,"2026-01-05 15:33:33","2026-03-15T15:16:48.613Z",[31,46],{"id":32,"url_slug":33,"title":34,"description":35,"plugin_slug":4,"theme_slug":36,"affected_versions":37,"patched_in_version":6,"severity":38,"cvss_score":39,"cvss_vector":40,"vuln_type":41,"published_date":28,"updated_date":42,"references":43,"days_to_patch":45},"CVE-2025-14120","url-image-importer-authenticated-author-stored-cross-site-scripting-via-svg-file-upload","URL Image Importer \u003C= 1.0.7 - Authenticated (Author+) Stored Cross-Site Scripting via SVG File Upload","The URL Image Importer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via SVG File uploads in all versions up to, and including, 1.0.7 due to insufficient sanitization of SVG files. This makes it possible for authenticated attackers, with Author-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses the SVG file.",null,"\u003C=1.0.7","medium",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2026-01-06 04:31:57",[44],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F8704320e-9624-4924-92e8-adb61356aecb?source=api-prod",1,{"id":47,"url_slug":48,"title":49,"description":50,"plugin_slug":4,"theme_slug":36,"affected_versions":51,"patched_in_version":52,"severity":53,"cvss_score":54,"cvss_vector":55,"vuln_type":56,"published_date":57,"updated_date":58,"references":59,"days_to_patch":45},"CVE-2025-12138","url-image-importer-authenticated-author-arbitrary-file-upload","URL Image Importer \u003C= 1.0.6 - Authenticated (Author+) Arbitrary File Upload","The URL Image Importer plugin for WordPress is vulnerable to arbitrary file uploads due to insufficient file type validation in all versions up to, and including, 1.0.6. This is due to the plugin relying on a user-controlled Content-Type HTTP header to validate file uploads in the 'uimptr_import_image_from_url()' function which writes the file to the server before performing proper validation. This makes it possible for authenticated attackers, with Author-level access and above, to upload arbitrary files on the affected site's server which may make remote code execution possible via the uploaded PHP file.",">=1.0 \u003C=1.0.6","1.0.7","high",8.8,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H","Unrestricted Upload of File with Dangerous Type","2025-11-20 18:48:27","2025-11-21 07:31:49",[60],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F1da18430-1bd0-4f63-9e22-5d26de2be410?source=api-prod",{"slug":62,"display_name":7,"profile_url":8,"plugin_count":63,"total_installs":64,"avg_security_score":65,"avg_patch_time_days":66,"trust_score":67,"computed_at":68},"bww",6,101310,98,18,93,"2026-04-04T05:31:01.049Z",[70,95,117,137,152],{"slug":71,"name":72,"version":73,"author":74,"author_profile":75,"description":76,"short_description":77,"active_installs":78,"downloaded":79,"rating":80,"num_ratings":81,"last_updated":82,"tested_up_to":83,"requires_at_least":84,"requires_php":85,"tags":86,"homepage":91,"download_link":92,"security_score":93,"vuln_count":45,"unpatched_count":13,"last_vuln_date":94,"fetched_at":29},"smart-auto-upload-images","Smart Auto Upload Images – Import External Images","1.2.3","Burhan Nasir","https:\u002F\u002Fprofiles.wordpress.org\u002Fburhandodhy\u002F","\u003Cp>Smart Auto Upload Images automatically imports external images from your post content into your WordPress media library. When you save or update a post, the plugin detects any external image URLs, downloads them to your server, and replaces the original URLs with your hosted versions. This improves site performance, ensures image availability, and gives you complete control over your content.\u003C\u002Fp>\n\u003Ch3>Why Auto Upload Images to Your Media Library?\u003C\u002Fh3>\n\u003Cp>When you copy content from external sources or use remote images, you risk broken images when the original source removes them. Hosting images on your own server provides several benefits:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Better SEO performance\u003C\u002Fstrong> – Search engines favor self-hosted images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Faster page load times\u003C\u002Fstrong> – Eliminates external HTTP requests\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Full content control\u003C\u002Fstrong> – Images remain available even if sources go offline\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How Auto Upload Images Works\u003C\u002Fh3>\n\u003Cp>The plugin runs automatically whenever you save or update a post. Here’s the process:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Scans post content for external image URLs (any image not hosted on your domain)\u003C\u002Fli>\n\u003Cli>Downloads each external image to a temporary location\u003C\u002Fli>\n\u003Cli>Validates image file integrity and format\u003C\u002Fli>\n\u003Cli>Uploads valid images to your WordPress media library\u003C\u002Fli>\n\u003Cli>Replaces original external URLs with new local URLs\u003C\u002Fli>\n\u003Cli>Attaches imported images to your post in the media library\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>No manual intervention required. Just write your content and let the plugin handle the rest.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Ch3>Automatic External Image Detection\u003C\u002Fh3>\n\u003Cp>The plugin automatically identifies external images in your post content when you save. It distinguishes between local images (already hosted on your site) and external images that need importing.\u003C\u002Fp>\n\u003Ch3>Smart URL Replacement\u003C\u002Fh3>\n\u003Cp>After importing images, the plugin intelligently replaces all instances of the external URL with your new local URL. This works with images in:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Post content (Classic Editor and Gutenberg blocks)\u003C\u002Fli>\n\u003Cli>Image galleries\u003C\u002Fli>\n\u003Cli>Featured images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Media Library Integration\u003C\u002Fh3>\n\u003Cp>All imported images are added to your WordPress media library with proper metadata. You can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Edit images using WordPress image editor\u003C\u002Fli>\n\u003Cli>View which post each image is attached to\u003C\u002Fli>\n\u003Cli>Set custom alt text during import\u003C\u002Fli>\n\u003Cli>Apply your site’s image optimization settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Flexible Domain Exclusions\u003C\u002Fh3>\n\u003Cp>Exclude specific domains from auto-import. Useful for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>CDN-hosted images you want to keep external\u003C\u002Fli>\n\u003Cli>Partner websites where you have permission to hotlink\u003C\u002Fli>\n\u003Cli>Your own secondary domains\u003C\u002Fli>\n\u003Cli>Social media embeds you want to keep as external\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Custom Post Type Control\u003C\u002Fh3>\n\u003Cp>Choose which post types trigger auto-upload. Enable for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Posts and pages (default)\u003C\u002Fli>\n\u003Cli>WooCommerce products\u003C\u002Fli>\n\u003Cli>Custom portfolio post types\u003C\u002Fli>\n\u003Cli>Documentation posts\u003C\u002Fli>\n\u003Cli>Or disable for specific types you want to skip\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advanced File Naming Patterns\u003C\u002Fh3>\n\u003Cp>Set custom file naming patterns for imported images using dynamic tags:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>%filename%\u003C\u002Fcode> – Original filename\u003C\u002Fli>\n\u003Cli>\u003Ccode>%post_title%\u003C\u002Fcode> – Current post title\u003C\u002Fli>\n\u003Cli>\u003Ccode>%post_id%\u003C\u002Fcode> – Post ID\u003C\u002Fli>\n\u003Cli>\u003Ccode>%image_title%\u003C\u002Fcode> – Image title attribute\u003C\u002Fli>\n\u003Cli>\u003Ccode>%date%\u003C\u002Fcode> – Current date\u003C\u002Fli>\n\u003Cli>\u003Ccode>%time%\u003C\u002Fcode> – Current timestamp\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example: \u003Ccode>%post_title%-%filename%\u003C\u002Fcode> becomes \u003Ccode>my-blog-post-example-image.jpg\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Custom Alt Text Patterns\u003C\u002Fh3>\n\u003Cp>Define alt text patterns for better SEO:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>%post_title%\u003C\u002Fcode> – Use post title in alt text\u003C\u002Fli>\n\u003Cli>\u003Ccode>%filename%\u003C\u002Fcode> – Use filename as alt text\u003C\u002Fli>\n\u003Cli>Custom text – Set consistent alt text across imports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Image Size Constraints\u003C\u002Fh3>\n\u003Cp>Set maximum width and height for imported images to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Control storage usage\u003C\u002Fli>\n\u003Cli>Maintain consistent image sizes\u003C\u002Fli>\n\u003Cli>Automatically resize oversized images\u003C\u002Fli>\n\u003Cli>Prevent huge images from slowing your site\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Featured Image from URL\u003C\u002Fh3>\n\u003Cp>Set a post’s featured image using an external URL. The plugin will:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Download the image from the URL\u003C\u002Fli>\n\u003Cli>Import it to your media library\u003C\u002Fli>\n\u003Cli>Set it as the post’s featured image\u003C\u002Fli>\n\u003Cli>Work via REST API or post editor\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Import External Images from Posts\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install and activate Auto Upload Images\u003C\u002Fli>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Configure your preferences (or use defaults)\u003C\u002Fli>\n\u003Cli>Create or edit any post with external images\u003C\u002Fli>\n\u003Cli>Click Save or Update – images import automatically\u003C\u002Fli>\n\u003Cli>Check your Media Library to see imported images\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Exclude Specific Domains\u003C\u002Fh3>\n\u003Cp>If you want to prevent images from certain domains from being imported:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Find the “Excluded Domains” section\u003C\u002Fli>\n\u003Cli>Enter domains one per line (e.g., cdn.example.com)\u003C\u002Fli>\n\u003Cli>Save settings\u003C\u002Fli>\n\u003Cli>Images from excluded domains will be left as external URLs\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Set Custom File Names for Imported Images\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Find “File Name Pattern” setting\u003C\u002Fli>\n\u003Cli>Enter your pattern using available tags:\n\u003Cul>\n\u003Cli>Example: \u003Ccode>%post_title%-%filename%\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Example: \u003Ccode>imported-%date%-%filename%\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Save settings\u003C\u002Fli>\n\u003Cli>New imports will use your naming pattern\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>This helps organize your media library and improves SEO with descriptive file names.\u003C\u002Fp>\n\u003Ch3>How to Set Featured Image via URL\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Using the Post Editor:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Edit your post\u003C\u002Fli>\n\u003Cli>Find the Featured Image section in the sidebar\u003C\u002Fli>\n\u003Cli>Enter the external image URL in the “Set from URL” field\u003C\u002Fli>\n\u003Cli>The image imports automatically and sets as featured image\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Integration with Page Builders\u003C\u002Fh3>\n\u003Cp>Auto Upload Images works with popular page builders:\u003C\u002Fp>\n\u003Ch3>Gutenberg Block Editor\u003C\u002Fh3>\n\u003Cp>All images in Gutenberg blocks are automatically detected and imported when you save the post.\u003C\u002Fp>\n\u003Ch3>Classic Editor\u003C\u002Fh3>\n\u003Cp>External images in Classic Editor content are imported on post save.\u003C\u002Fp>\n\u003Ch3>WooCommerce\u003C\u002Fh3>\n\u003Cp>Enable auto-import for Product post type to automatically import external product images.\u003C\u002Fp>\n\u003Ch3>Custom Post Types\u003C\u002Fh3>\n\u003Cp>Configure any custom post type to trigger auto-import functionality.\u003C\u002Fp>\n\u003Cp>Just ensure Auto Upload Images is active when running imports.\u003C\u002Fp>\n\u003Ch3>Performance and Storage Considerations\u003C\u002Fh3>\n\u003Ch3>Server Storage\u003C\u002Fh3>\n\u003Cp>Imported images consume server storage. Monitor your hosting plan’s disk space if importing large quantities of images.\u003C\u002Fp>\n\u003Ch3>Import Speed\u003C\u002Fh3>\n\u003Cp>Import time depends on:\u003Cbr \u002F>\n* Image file sizes\u003Cbr \u002F>\n* Your server’s download speed\u003Cbr \u002F>\n* Number of images per post\u003Cbr \u002F>\n* Configured maximum dimensions\u003C\u002Fp>\n\u003Ch3>Optimization Tips\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Set maximum width\u002Fheight to reduce storage\u003C\u002Fli>\n\u003Cli>Use an image optimization plugin after import\u003C\u002Fli>\n\u003Cli>Exclude domains hosting very large images\u003C\u002Fli>\n\u003Cli>Test with small batches before bulk imports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer Features\u003C\u002Fh3>\n\u003Ch3>Filter: smart_aui_validate_image_url\u003C\u002Fh3>\n\u003Cp>Programmatically control which image URLs get imported.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>add_filter( ‘smart_aui_validate_image_url’, function( $is_valid, $url ) {\u003Cbr \u002F>\n    \u002F\u002F Skip images from specific paths\u003Cbr \u002F>\n    if ( strpos( $url, ‘\u002Fcdn\u002Favatars\u002F’ ) !== false ) {\u003Cbr \u002F>\n        return false;\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    return $is_valid;\u003Cbr \u002F>\n}, 10, 2 );\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Additional Hooks\u003C\u002Fh3>\n\u003Cp>Check plugin documentation for additional filters and actions to customize behavior.\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch3>Images Not Importing\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> External images remain unchanged after saving post\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Check if domain is in excluded domains list\u003Cbr \u002F>\n* Verify your server can make external HTTP requests\u003Cbr \u002F>\n* Check WordPress debug log for errors\u003Cbr \u002F>\n* Ensure PHP has necessary image processing libraries\u003Cbr \u002F>\n* Verify write permissions on uploads directory\u003C\u002Fp>\n\u003Ch3>Import Errors in Debug Log\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Seeing errors in wp-content\u002Fdebug.log\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Check image URL is publicly accessible\u003Cbr \u002F>\n* Verify image format is supported (JPG, PNG, GIF, WebP)\u003Cbr \u002F>\n* Ensure external server allows download\u002Fhotlinking\u003Cbr \u002F>\n* Check SSL certificate validity if using HTTPS images\u003C\u002Fp>\n\u003Ch3>Images Upload but URLs Not Replaced\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Images added to media library but old URLs remain\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Clear any caching plugins\u003Cbr \u002F>\n* Check post content in Text\u002FHTML mode\u003Cbr \u002F>\n* Verify images aren’t in excluded domain list\u003Cbr \u002F>\n* Review file naming pattern doesn’t cause conflicts\u003C\u002Fp>\n\u003Ch3>Duplicate Images in Media Library\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Same image imported multiple times\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Plugin should detect and reuse existing images (v1.2.0+)\u003Cbr \u002F>\n* Check if images have different URLs but same file\u003Cbr \u002F>\n* Clear media library of duplicates and re-save post\u003C\u002Fp>\n\u003Ch3>Featured Image Not Setting from URL\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Featured image URL not importing\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Verify URL is publicly accessible\u003Cbr \u002F>\n* Check image format is supported\u003Cbr \u002F>\n* Ensure PHP memory limit is sufficient\u003Cbr \u002F>\n* Review error logs for specific error messages\u003C\u002Fp>\n\u003Ch3>Maximum Width\u002FHeight Not Applied\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Images exceed configured dimensions\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Ensure GD or ImageMagick is installed on server\u003Cbr \u002F>\n* Check PHP memory limit allows image processing\u003Cbr \u002F>\n* Verify dimensions are set in plugin settings\u003Cbr \u002F>\n* Test with smaller images first\u003C\u002Fp>\n","Import external images automatically on save. Adds to media library and updates URLs. No manual downloads. Works with any post type.",2000,9668,80,4,"2026-01-31T07:43:00.000Z","6.9.4","6.2","8.0",[87,88,89,23,90],"auto-upload","external-images","import-images","seo","https:\u002F\u002Fburhandodhy.me","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsmart-auto-upload-images.1.2.3.zip",97,"2025-11-07 00:00:00",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":13,"num_ratings":13,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":24,"tags":108,"homepage":114,"download_link":115,"security_score":116,"vuln_count":13,"unpatched_count":13,"last_vuln_date":36,"fetched_at":29},"wp-image-importer","WP Image Importer","1.0.5","cedcommerce","https:\u002F\u002Fprofiles.wordpress.org\u002Fcedcommerce\u002F","\u003Cp>WP Image Importer plugin allows you to easily import images and insert into your wordpress posts, custom post.\u003Cbr \u002F>\nSupports Image Sources:\u003Cbr \u002F>\nPixabay, Flickr and Facebook.\u003C\u002Fp>\n\u003Ch4>Main features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>You can search Images for both commercial and non-commertial use based on your need from flickr and pixabay.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Facebook albums can be imported through this plugin\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Facebook images can also be imported through this plugin\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>You can import your albums from flickr now.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>You can import your set of photos from flickr now.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Much smoother, optimized and compatible with lates wordpress.\u003C\u002Fli>\n\u003Cli>Images are displayed into groups based on search result fetched from pixabay and flickr.\u003C\u002Fli>\n\u003Cli>Pagination on each query for image search.\u003C\u002Fli>\n\u003Cli>You can preview Images after search by clicking on the image, So you can easily choose images of your choice from all the images.\u003C\u002Fli>\n\u003Cli>You can upload images directly to media library as image attachments.\u003C\u002Fli>\n\u003Cli>You can search images by Image type(horizental\u002Fvertical).\u003C\u002Fli>\n\u003Cli>You can set the feature Image for your post.\u003C\u002Fli>\n\u003Cli>Images are saved to your own server so there is no problem if image is removed from its source\u003C\u002Fli>\n\u003Cli>\u003Cstrong>An interactive graphical user interface for albums and images.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Instant album filter option.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Panel for your suggestions, so that you can suggest your reviews and ideas for better improvement.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Fully responsive Image galary.\u003C\u002Fli>\n\u003Cli>You can set attribution in WordPress caption right next to images.\u003C\u002Fli>\n\u003Cli>Easy to use and install.\u003C\u002Fli>\n\u003Cli>Easy to configure.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>If you need support or have any question then kindly use our online chat window \u003Ca href=\"http:\u002F\u002Fcedcommerce.com\" rel=\"nofollow ugc\">here\u003C\u002Fa> or send us email at \u003Ca href=\"mailto:support@cedcommerce.com\" rel=\"nofollow ugc\">support@cedcommerce.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Follow Us\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Our Official Website\u003C\u002Fstrong> – \u003Ca href=\"http:\u002F\u002Fcedcommerce.com\u002F\" rel=\"nofollow ugc\">http:\u002F\u002Fcedcommerce.com\u002F\u003C\u002Fa> \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Our Facebook Page\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002FCedCommerce\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.facebook.com\u002FCedCommerce\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Our Google+ Account\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Fplus.google.com\u002Fu\u002F0\u002F118378364994508690262\" rel=\"nofollow ugc\">https:\u002F\u002Fplus.google.com\u002Fu\u002F0\u002F118378364994508690262\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Our Twitter Account\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fcedcommerce\" rel=\"nofollow ugc\">https:\u002F\u002Ftwitter.com\u002Fcedcommerce\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Our LinkedIn Account\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fcedcommerce\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fcedcommerce\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","WP Image Importer plugin allows you to easily insert image into your wordpress post from facebook, flickr and pixabay",30,5237,"2021-06-29T11:57:00.000Z","5.6.17","4.4",[109,110,111,112,113],"facebook-images","image-importer","images","import-images-from-social-media","wordpress-image-importer","http:\u002F\u002Fcedcommerce.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-image-importer.zip",85,{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":127,"num_ratings":27,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":17,"tags":131,"homepage":134,"download_link":135,"security_score":136,"vuln_count":13,"unpatched_count":13,"last_vuln_date":36,"fetched_at":29},"sage-auto-upload-images","Sage Auto Upload Images","1.0.0","Joseph Adediji","https:\u002F\u002Fprofiles.wordpress.org\u002Fjosylad\u002F","\u003Cp>\u003Cstrong>Sage Auto Upload Images\u003C\u002Fstrong> is a comprehensive WordPress plugin that automatically detects external images in your post content, imports them to your local media library, and optimizes them for better SEO performance. Perfect for content migration, broken link prevention, and improving website loading speeds.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🚀 Why Choose Sage Auto Upload Images?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Stop worrying about broken image links and slow loading times caused by external image dependencies. This plugin automatically converts external image URLs into locally hosted media files, ensuring your content remains intact and loads faster for better user experience and SEO rankings.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>💡 Perfect For:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Content migration from other platforms\u003Cbr \u002F>\n* Importing RSS feeds with external images\u003Cbr \u002F>\n* Fixing broken image links in bulk\u003Cbr \u002F>\n* Optimizing website performance and SEO\u003Cbr \u002F>\n* Managing large volumes of content with external media\u003Cbr \u002F>\n* Bloggers and content creators who frequently use external images\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>🔄 Automatic Image Import & Processing\u003C\u002Fstrong>\u003Cbr \u002F>\n* Automatically detect external images in post content during save\u003Cbr \u002F>\n* Download and import images to your WordPress media library\u003Cbr \u002F>\n* Replace external URLs with local URLs in post content\u003Cbr \u002F>\n* Process images on-the-fly without manual intervention\u003C\u002Fp>\n\u003Cp>\u003Cstrong>⚙️ Advanced Customization Options\u003C\u002Fstrong>\u003Cbr \u002F>\n* Custom image file name patterns with dynamic placeholders ({post_id}, {index}, etc.)\u003Cbr \u002F>\n* Custom alt text patterns for better image SEO ({post_title}, {post_id}, etc.)\u003Cbr \u002F>\n* Exclude specific post types from automatic processing\u003Cbr \u002F>\n* Domain exclusion list to skip trusted external sources\u003Cbr \u002F>\n* Custom base URL configuration for uploaded images\u003C\u002Fp>\n\u003Cp>\u003Cstrong>📏 Image Processing & Control\u003C\u002Fstrong>\u003Cbr \u002F>\n* Set maximum width and height for uploaded images\u003Cbr \u002F>\n* Automatic image resizing using WordPress image editor\u003Cbr \u002F>\n* JPEG compression quality control (1-100%, default: 82%)\u003Cbr \u002F>\n* Support for multiple image formats (JPG, JPEG, PNG, GIF, WebP)\u003Cbr \u002F>\n* Fallback to JPG format for unsupported file types\u003Cbr \u002F>\n* Automatic featured image setting (first imported image)\u003Cbr \u002F>\n* Duplicate image detection and prevention\u003C\u002Fp>\n\u003Cp>\u003Cstrong>📦 Bulk Import & Processing\u003C\u002Fstrong>\u003Cbr \u002F>\n* Retroactively process existing posts with external images\u003Cbr \u002F>\n* Batch processing of posts (10 at a time for reliability)\u003Cbr \u002F>\n* Detailed import logs with success\u002Ferror tracking\u003Cbr \u002F>\n* Download retry mechanism with exponential backoff\u003Cbr \u002F>\n* Ideal for processing large amounts of existing content\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🎨 Modern Admin Interface\u003C\u002Fstrong>\u003Cbr \u002F>\n* Success and error notifications after processing\u003Cbr \u002F>\n* Intuitive bulk import tool with detailed logging\u003Cbr \u002F>\n* User-friendly configuration options\u003C\u002Fp>\n","Automatically detect and import external images to your WordPress media library. Bulk process existing posts and prevent broken links.",10,211,50,"2025-11-01T16:01:00.000Z","6.8.5","3.8",[132,88,20,133,23],"bulk-import","image-seo","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsage-auto-upload-images\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsage-auto-upload-images.1.0.0.zip",100,{"slug":138,"name":139,"version":140,"author":141,"author_profile":142,"description":143,"short_description":144,"active_installs":13,"downloaded":145,"rating":13,"num_ratings":13,"last_updated":146,"tested_up_to":83,"requires_at_least":147,"requires_php":85,"tags":148,"homepage":24,"download_link":151,"security_score":136,"vuln_count":13,"unpatched_count":13,"last_vuln_date":36,"fetched_at":29},"easy-alt-import-lite","Easy Alt Import Lite","2.3.3","ftmpub","https:\u002F\u002Fprofiles.wordpress.org\u002Fftmpub\u002F","\u003Cp>\u003Cstrong>Easy Alt Import Lite\u003C\u002Fstrong> is the fastest way to bulk update ALT texts in your WordPress Media Library using a simple CSV file. Perfect for SEO optimization, accessibility compliance, and e-commerce stores with many product images.\u003C\u002Fp>\n\u003Cp>Upload, preview, select, and apply your changes — with one-click undo if needed. The plugin is lightweight, secure, and fully compliant with WordPress coding standards.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>For the Pro version and full documentation, visit \u003Ca href=\"https:\u002F\u002Fftmpub.ch\u002Feasy-alt-import-plugin-wordpress\u002F\" rel=\"nofollow ugc\">FTMPUB.ch\u003C\u002Fa>\u003C\u002Fstrong> — direct download, support, and extra features.\u003C\u002Fp>\n\u003Ch4>Highlights\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Bulk CSV import — update only the ALT text field\u003C\u002Fli>\n\u003Cli>Preview interface — compare current vs. new ALT before applying\u003C\u002Fli>\n\u003Cli>Selective import — choose which images to process\u003C\u002Fli>\n\u003Cli>Auto-separator detection — comma (\u003Ccode>,\u003C\u002Fcode>) and semicolon (\u003Ccode>;\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Template generator — CSV prefilled with your image IDs\u003C\u002Fli>\n\u003Cli>Backup & restore — undo the last optimization in one click\u003C\u002Fli>\n\u003Cli>Performance-safe limits — up to 10,000 rows per file, 5 MB max\u003C\u002Fli>\n\u003Cli>Security-first — nonces, capability checks, CSV-injection protection\u003C\u002Fli>\n\u003Cli>Internationalization — proper translator comments and text domain\u003C\u002Fli>\n\u003Cli>100% free — no lock-in\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Who is it for?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WooCommerce stores with hundreds of product images\u003C\u002Fli>\n\u003Cli>Photographers and bloggers improving on-page SEO\u003C\u002Fli>\n\u003Cli>Any site aiming for better image accessibility\u003C\u002Fli>\n\u003Cli>Agencies managing multiple client sites\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>CSV Format\u003C\u002Fh3>\n\u003Cp>Your CSV must contain exactly two columns (case-insensitive):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>ID\u003C\u002Fstrong> — WordPress attachment ID (numeric)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ALT\u003C\u002Fstrong> — The new ALT text for that image\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example (international\u002Fcomma):\u003Cbr \u002F>\n    ID,ALT\u003Cbr \u002F>\n    123,Handmade ceramic mug on wooden table\u003C\u002Fp>\n\u003Cp>Example (French\u002Fsemicolon):\u003Cbr \u002F>\n    ID;ALT\u003Cbr \u002F>\n    123;Mug en céramique sur table en bois\u003C\u002Fp>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Download the CSV template from \u003Cstrong>Easy Alt Import\u003C\u002Fstrong> in the admin menu.\u003C\u002Fli>\n\u003Cli>Open the file in Excel\u002FLibreOffice\u002FNumbers or any text editor.\u003C\u002Fli>\n\u003Cli>Edit only the \u003Cstrong>ALT\u003C\u002Fstrong> column; keep IDs unchanged.\u003C\u002Fli>\n\u003Cli>Save as CSV (UTF-8 recommended).\u003C\u002Fli>\n\u003Cli>Upload the CSV, preview, select, and apply your changes.\u003C\u002Fli>\n\u003Cli>If needed, \u003Cstrong>Undo\u003C\u002Fstrong> the last optimization.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Need help or want the \u003Cstrong>Pro version with extra features\u003C\u002Fstrong>?\u003Cbr \u002F>\n👉 \u003Ca href=\"https:\u002F\u002Fftmpub.ch\u002Feasy-alt-import-plugin-wordpress\u002F\" rel=\"nofollow ugc\">Easy Alt Import Pro on FTMPUB.ch\u003C\u002Fa>\u003C\u002Fp>\n","Bulk edit image ALT texts from a CSV with preview, selective apply, and one-click undo — improve SEO, image accessibility, and WooCommerce product vis &hellip;",288,"2025-12-05T11:58:00.000Z","5.0",[149,150,19,133,23],"alt-text","bulk-image-editing","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-alt-import-lite.2.3.3.zip",{"slug":153,"name":154,"version":52,"author":155,"author_profile":156,"description":157,"short_description":158,"active_installs":13,"downloaded":159,"rating":13,"num_ratings":13,"last_updated":160,"tested_up_to":83,"requires_at_least":161,"requires_php":162,"tags":163,"homepage":167,"download_link":168,"security_score":136,"vuln_count":13,"unpatched_count":13,"last_vuln_date":36,"fetched_at":29},"michael-cloud-image-auto-importer","Michael Cloud Image Auto Importer","Michael Omondi","https:\u002F\u002Fprofiles.wordpress.org\u002Fmike17894\u002F","\u003Cp>Michael Cloud Image Auto Importer lets you import images from Google Drive straight into your WordPress Media Library.\u003Cbr \u002F>\nIt is ideal for bloggers, photographers, and content creators who store their media in Google Drive.\u003C\u002Fp>\n\u003Cp>The plugin connects securely to your Google Drive account, allows you to select folders, and imports images in bulk while avoiding duplicates.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Secure Google Drive OAuth 2.0 integration\u003Cbr \u002F>\n* Bulk image import from Drive folders\u003Cbr \u002F>\n* Automatic duplicate detection using MD5 file hashes\u003Cbr \u002F>\n* SEO-friendly alt text generation from filenames\u003Cbr \u002F>\n* Optional image compression with quality control\u003Cbr \u002F>\n* Real-time import progress tracking\u003Cbr \u002F>\n* Detailed import logs with statistics\u003Cbr \u002F>\n* Privacy-focused design with explicit user consent\u003Cbr \u002F>\n* No usage limits, subscriptions, or trialware\u003Cbr \u002F>\n* WordPress.org compliant coding standards\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Google Drive API (provided by Google LLC) to import images from Google Drive into your WordPress media library.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Service:\u003C\u002Fstrong> Google Drive API\u003Cbr \u002F>\n\u003Cstrong>Purpose:\u003C\u002Fstrong> To browse, list, and download images from your Google Drive account\u003Cbr \u002F>\n\u003Cstrong>Data Transmitted:\u003C\u002Fstrong>\u003Cbr \u002F>\n– OAuth 2.0 authentication tokens (for API access)\u003Cbr \u002F>\n– File metadata (names, IDs, sizes, MIME types)\u003Cbr \u002F>\n– MD5 hashes of files (for duplicate detection)\u003Cbr \u002F>\n– File content when downloading images\u003C\u002Fp>\n\u003Cp>\u003Cstrong>When data is transmitted:\u003C\u002Fstrong>\u003Cbr \u002F>\n– When you connect your Google Drive account\u003Cbr \u002F>\n– When browsing\u002Flisting folders\u003Cbr \u002F>\n– When importing images\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Service Provider Information:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Fdevelopers.google.com\u002Fdrive\u002Fterms\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fp>\n\u003Cp>\u003Cstrong>User Consent:\u003C\u002Fstrong> This plugin requires explicit user consent before making any connections to Google services. You must enable “External Connections” in the plugin settings before connecting to Google Drive.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Secure Google Drive Integration\u003C\u002Fstrong> – Uses official Google API with OAuth 2.0\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Image Import\u003C\u002Fstrong> – Import entire folders at once\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Duplicate Detection\u003C\u002Fstrong> – Uses MD5 file hashing to skip existing images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO Optimization\u003C\u002Fstrong> – Auto-generates alt text from filenames\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image Compression\u003C\u002Fstrong> – Optional compression with adjustable quality\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Progress Tracking\u003C\u002Fstrong> – Real-time progress bar and statistics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Import Logs\u003C\u002Fstrong> – Detailed logs of all imports with success\u002Ffailure rates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy First\u003C\u002Fstrong> – Requires explicit consent before connecting to Google\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Limits\u003C\u002Fstrong> – Import as many images as you need\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean Design\u003C\u002Fstrong> – Intuitive WordPress admin interface\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Configure Settings\u003C\u002Fstrong> – Enter Google API credentials in plugin settings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Grant Consent\u003C\u002Fstrong> – Enable external connections (required for Google Drive)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Connect Drive\u003C\u002Fstrong> – Authorize access to your Google Drive account\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Import Images\u003C\u002Fstrong> – Paste Google Drive folder URL and start import\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Track Progress\u003C\u002Fstrong> – Monitor real-time progress with detailed statistics\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Privacy & Security\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>User Consent Required\u003C\u002Fstrong> – Explicit opt-in required for Google Drive access\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Tracking\u003C\u002Fstrong> – No analytics, ads, or user tracking\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Direct Downloads\u003C\u002Fstrong> – Images download directly to your server\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure Storage\u003C\u002Fstrong> – Google API credentials stored securely in WordPress database\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Third Parties\u003C\u002Fstrong> – No external image processing services\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Control\u003C\u002Fstrong> – Option to remove all data on uninstall\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Google API Setup\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Create Google Cloud Project\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Visit \u003Ca href=\"https:\u002F\u002Fconsole.cloud.google.com\u002F\" rel=\"nofollow ugc\">Google Cloud Console\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Create new project or select existing\u003C\u002Fli>\n\u003Cli>Name: “Michael Cloud Image Auto Importer”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Enable Google Drive API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Go to “APIs & Services” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> “Library”\u003C\u002Fli>\n\u003Cli>Search for “Google Drive API”\u003C\u002Fli>\n\u003Cli>Click “Enable”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Create OAuth 2.0 Credentials\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Go to “APIs & Services” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> “Credentials”\u003C\u002Fli>\n\u003Cli>Click “Create Credentials” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> “OAuth client ID”\u003C\u002Fli>\n\u003Cli>Application type: “Web application”\u003C\u002Fli>\n\u003Cli>Name: “Cloud Auto Importer”\u003C\u002Fli>\n\u003Cli>Authorized redirect URI: \u003Ccode>[your-site]\u002Fwp-admin\u002Fadmin.php?page=cloud-auto-importer\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Configure Plugin\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Copy “Client ID” and “Client Secret”\u003C\u002Fli>\n\u003Cli>Paste into plugin Settings page\u003C\u002Fli>\n\u003Cli>Save settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Languages\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>English (default)\u003C\u002Fli>\n\u003Cli>Translations welcome – uses WordPress translation system\u003C\u002Fli>\n\u003Cli>Translation files: \u003Ccode>\u002Flanguages\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Text Domain: michael-cloud-image-auto-importer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Developed by:\u003C\u002Fstrong> Michael Otieno (WordPress.org: mike17894)\u003Cbr \u002F>\n\u003Cstrong>Google API:\u003C\u002Fstrong> Uses official Google APIs PHP Client Library\u003Cbr \u002F>\n\u003Cstrong>Coding Standards:\u003C\u002Fstrong> Built following WordPress PHP, JS, and CSS coding standards\u003Cbr \u002F>\n\u003Cstrong>Privacy:\u003C\u002Fstrong> No third-party tracking, analytics, or external services except Google Drive API as documented\u003Cbr \u002F>\n\u003Cstrong>License:\u003C\u002Fstrong> 100% GPLv2+ compatible\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, please use the WordPress.org support forum:\u003Cbr \u002F>\nhttps:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmichael-cloud-image-auto-importer\u002F\u003C\u002Fp>\n","Import images from Google Drive directly into the WordPress Media Library with automatic alt text generation.",178,"2026-03-06T16:24:00.000Z","5.6","7.2",[164,165,20,23,166],"cloud","google-drive","photos","https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmichael-cloud-image-auto-importer\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmichael-cloud-image-auto-importer.1.0.7.zip",{"attackSurface":170,"codeSignals":321,"taintFlows":378,"riskAssessment":519,"analyzedAt":533},{"hooks":171,"ajaxHandlers":258,"restRoutes":315,"shortcodes":316,"cronEvents":317,"entryPointCount":320,"unprotectedCount":45},[172,178,182,187,191,194,197,201,205,209,213,217,220,224,226,230,234,238,242,247,251,255],{"type":173,"name":174,"callback":175,"file":176,"line":177},"action","plugins_loaded","load_textdomain","classes\\tuxedo_big_file_uploads.php",73,{"type":173,"name":179,"callback":180,"file":176,"line":181},"admin_notices","init_review_notice",74,{"type":183,"name":184,"callback":185,"file":176,"line":186},"filter","plupload_init","filter_plupload_settings",75,{"type":183,"name":188,"callback":189,"file":176,"line":190},"upload_post_params","filter_plupload_params",76,{"type":183,"name":192,"callback":185,"file":176,"line":193},"plupload_default_settings",77,{"type":183,"name":195,"callback":189,"file":176,"line":196},"plupload_default_params",78,{"type":183,"name":198,"callback":199,"file":176,"line":200},"upload_size_limit","filter_upload_size_limit",79,{"type":173,"name":202,"callback":203,"file":176,"line":204},"post-upload-ui","upload_output",82,{"type":173,"name":206,"callback":207,"file":176,"line":208},"enqueue_block_editor_assets","gutenberg_notice",83,{"type":183,"name":210,"callback":211,"file":176,"line":212},"block_editor_settings_all","gutenberg_size_filter",84,{"type":183,"name":214,"callback":215,"file":176,"line":216},"plugin_action_links_tuxedo-big-file-uploads\u002Ftuxedo_big_file_uploads.php","plugins_list_links",88,{"type":183,"name":218,"callback":215,"file":176,"line":219},"network_admin_plugin_action_links_tuxedo-big-file-uploads\u002Ftuxedo_big_file_uploads.php",91,{"type":173,"name":221,"callback":222,"file":176,"line":223},"network_admin_notices","upgrade_notice",101,{"type":173,"name":179,"callback":222,"file":176,"line":225},103,{"type":173,"name":179,"callback":227,"file":228,"line":229},"display_notices","src\\Admin\\PromoNotices.php",42,{"type":173,"name":179,"callback":231,"file":232,"line":233},"uimptr_check_plugin_conflicts","url-image-importer.php",105,{"type":183,"name":235,"callback":236,"file":232,"line":237},"upload_mimes","uimptr_add_svg_mime_type",149,{"type":183,"name":239,"callback":240,"priority":125,"file":232,"line":241},"wp_check_filetype_and_ext","uimptr_check_svg_filetype",159,{"type":173,"name":243,"callback":244,"priority":245,"file":232,"line":246},"admin_menu","closure",20,268,{"type":173,"name":248,"callback":249,"file":232,"line":250},"admin_enqueue_scripts","uimptr_admin_styles",333,{"type":183,"name":252,"callback":253,"priority":125,"file":232,"line":254},"infinite_uploads_exclude_file","uimptr_exclude_temp_files_from_cloud",2770,{"type":173,"name":256,"callback":256,"file":232,"line":257},"uimptr_cleanup_temp_files",2774,[259,265,269,273,276,279,283,287,291,295,299,303,307,311],{"action":260,"nopriv":261,"callback":262,"hasNonce":263,"hasCapCheck":263,"file":176,"line":264},"bfu_chunker",false,"ajax_chunk_receiver",true,81,{"action":266,"nopriv":261,"callback":267,"hasNonce":261,"hasCapCheck":263,"file":176,"line":268},"bfu_file_scan","ajax_file_scan",94,{"action":270,"nopriv":261,"callback":271,"hasNonce":261,"hasCapCheck":263,"file":176,"line":272},"bfu_upload_dismiss","ajax_upload_dismiss",95,{"action":274,"nopriv":261,"callback":275,"hasNonce":261,"hasCapCheck":263,"file":176,"line":26},"bfu_upgrade_dismiss","ajax_upgrade_dismiss",{"action":277,"nopriv":261,"callback":278,"hasNonce":261,"hasCapCheck":263,"file":176,"line":93},"bfu_subscribe_dismiss","ajax_subscribe_dismiss",{"action":280,"nopriv":261,"callback":281,"hasNonce":263,"hasCapCheck":263,"file":228,"line":282},"uimptr_handle_promo_action","handle_promo_action",43,{"action":284,"nopriv":261,"callback":285,"hasNonce":263,"hasCapCheck":261,"file":232,"line":286},"uimptr_bfu_file_scan","uimptr_ajax_file_scan",1933,{"action":288,"nopriv":261,"callback":289,"hasNonce":263,"hasCapCheck":263,"file":232,"line":290},"uimptr_import_single_url","uimptr_ajax_import_single_url",1970,{"action":292,"nopriv":261,"callback":293,"hasNonce":263,"hasCapCheck":263,"file":232,"line":294},"uimptr_process_xml_import","uimptr_ajax_process_xml_import",2055,{"action":296,"nopriv":261,"callback":297,"hasNonce":261,"hasCapCheck":263,"file":232,"line":298},"uimptr_test_connection","uimptr_test_ajax_connection",2066,{"action":300,"nopriv":261,"callback":301,"hasNonce":263,"hasCapCheck":263,"file":232,"line":302},"uimptr_process_csv_import","uimptr_ajax_process_csv_import",2142,{"action":304,"nopriv":261,"callback":305,"hasNonce":263,"hasCapCheck":263,"file":232,"line":306},"uimptr_batch_import","uimptr_ajax_batch_import",2304,{"action":308,"nopriv":261,"callback":309,"hasNonce":263,"hasCapCheck":261,"file":232,"line":310},"uimptr_cancel_import","uimptr_ajax_cancel_import",2332,{"action":312,"nopriv":261,"callback":313,"hasNonce":261,"hasCapCheck":261,"file":232,"line":314},"uimptr_subscribe_dismiss","uimptr_ajax_subscribe_dismiss",2826,[],[],[318],{"hook":256,"callback":256,"file":232,"line":319},2778,14,{"dangerousFunctions":322,"sqlUsage":323,"outputEscaping":331,"fileOperations":374,"externalRequests":45,"nonceChecks":375,"capabilityChecks":376,"bundledLibraries":377},[],{"prepared":125,"raw":27,"locations":324},[325,328],{"file":232,"line":326,"context":327},1723,"$wpdb->get_results() with variable interpolation",{"file":232,"line":329,"context":330},3007,"$wpdb->query() with variable interpolation",{"escaped":332,"rawEcho":333,"locations":334},125,19,[335,338,340,342,344,346,348,350,352,354,356,358,361,363,364,366,368,370,372],{"file":176,"line":336,"context":337},473,"raw output",{"file":176,"line":339,"context":337},530,{"file":176,"line":341,"context":337},567,{"file":176,"line":343,"context":337},657,{"file":176,"line":345,"context":337},678,{"file":176,"line":347,"context":337},701,{"file":176,"line":349,"context":337},718,{"file":176,"line":351,"context":337},745,{"file":176,"line":353,"context":337},763,{"file":176,"line":355,"context":337},791,{"file":228,"line":357,"context":337},141,{"file":359,"line":360,"context":337},"test-svg.php",39,{"file":359,"line":362,"context":337},40,{"file":359,"line":229,"context":337},{"file":232,"line":365,"context":337},128,{"file":232,"line":367,"context":337},404,{"file":232,"line":369,"context":337},421,{"file":232,"line":371,"context":337},804,{"file":232,"line":373,"context":337},805,46,12,26,[],[379,396,414,425,468,488,499,509],{"entryPoint":380,"graph":381,"unsanitizedCount":45,"severity":38},"uimptr_handle_xml_import (url-image-importer.php:338)",{"nodes":382,"edges":394},[383,388],{"id":384,"type":385,"label":386,"file":232,"line":387},"n0","source","$_FILES",343,{"id":389,"type":390,"label":391,"file":232,"line":392,"wp_function":393},"n1","sink","file_get_contents() [SSRF\u002FLFI]",362,"file_get_contents",[395],{"from":384,"to":389,"sanitized":261},{"entryPoint":397,"graph":398,"unsanitizedCount":45,"severity":38},"uimptr_ajax_import_single_url (url-image-importer.php:1938)",{"nodes":399,"edges":411},[400,403,406],{"id":384,"type":385,"label":401,"file":232,"line":402},"$_POST",1957,{"id":389,"type":404,"label":405,"file":232,"line":402},"transform","→ uimptr_import_image_from_url()",{"id":407,"type":390,"label":408,"file":232,"line":409,"wp_function":410},"n2","file_put_contents() [File Write]",1548,"file_put_contents",[412,413],{"from":384,"to":389,"sanitized":261},{"from":389,"to":407,"sanitized":261},{"entryPoint":415,"graph":416,"unsanitizedCount":45,"severity":38},"uimptr_ajax_batch_import (url-image-importer.php:2147)",{"nodes":417,"edges":422},[418,420,421],{"id":384,"type":385,"label":401,"file":232,"line":419},2237,{"id":389,"type":404,"label":405,"file":232,"line":419},{"id":407,"type":390,"label":408,"file":232,"line":409,"wp_function":410},[423,424],{"from":384,"to":389,"sanitized":261},{"from":389,"to":407,"sanitized":261},{"entryPoint":426,"graph":427,"unsanitizedCount":27,"severity":38},"\u003Curl-image-importer> (url-image-importer.php:0)",{"nodes":428,"edges":460},[429,431,432,434,436,439,444,447,449,451,454,457],{"id":384,"type":385,"label":430,"file":232,"line":387},"$_FILES (x5)",{"id":389,"type":390,"label":391,"file":232,"line":392,"wp_function":393},{"id":407,"type":385,"label":433,"file":232,"line":387},"$_FILES (x3)",{"id":435,"type":390,"label":408,"file":232,"line":409,"wp_function":410},"n3",{"id":437,"type":385,"label":438,"file":232,"line":387},"n4","$_FILES (x2)",{"id":440,"type":390,"label":441,"file":232,"line":442,"wp_function":443},"n5","get_var() [SQLi]",2635,"get_var",{"id":445,"type":385,"label":446,"file":232,"line":402},"n6","$_POST (x2)",{"id":448,"type":404,"label":405,"file":232,"line":402},"n7",{"id":450,"type":390,"label":408,"file":232,"line":409,"wp_function":410},"n8",{"id":452,"type":385,"label":433,"file":232,"line":453},"n9",2230,{"id":455,"type":404,"label":456,"file":232,"line":453},"n10","→ uimptr_attachment_exists()",{"id":458,"type":390,"label":441,"file":232,"line":459,"wp_function":443},"n11",2650,[461,462,463,464,465,466,467],{"from":384,"to":389,"sanitized":263},{"from":407,"to":435,"sanitized":263},{"from":437,"to":440,"sanitized":263},{"from":445,"to":448,"sanitized":261},{"from":448,"to":450,"sanitized":261},{"from":452,"to":455,"sanitized":261},{"from":455,"to":458,"sanitized":263},{"entryPoint":469,"graph":470,"unsanitizedCount":13,"severity":487},"ajax_chunk_receiver (classes\\tuxedo_big_file_uploads.php:402)",{"nodes":471,"edges":484},[472,474,478,481],{"id":384,"type":385,"label":438,"file":176,"line":473},422,{"id":389,"type":390,"label":475,"file":176,"line":476,"wp_function":477},"fopen() [File Access]",506,"fopen",{"id":407,"type":385,"label":479,"file":176,"line":480},"$_REQUEST (x2)",632,{"id":435,"type":390,"label":482,"file":176,"line":343,"wp_function":483},"echo() [XSS]","echo",[485,486],{"from":384,"to":389,"sanitized":263},{"from":407,"to":435,"sanitized":263},"low",{"entryPoint":489,"graph":490,"unsanitizedCount":13,"severity":487},"\u003Ctuxedo_big_file_uploads> (classes\\tuxedo_big_file_uploads.php:0)",{"nodes":491,"edges":496},[492,493,494,495],{"id":384,"type":385,"label":438,"file":176,"line":473},{"id":389,"type":390,"label":475,"file":176,"line":476,"wp_function":477},{"id":407,"type":385,"label":479,"file":176,"line":480},{"id":435,"type":390,"label":482,"file":176,"line":343,"wp_function":483},[497,498],{"from":384,"to":389,"sanitized":263},{"from":407,"to":435,"sanitized":263},{"entryPoint":500,"graph":501,"unsanitizedCount":13,"severity":487},"uimptr_ajax_process_xml_import (url-image-importer.php:1975)",{"nodes":502,"edges":507},[503,505],{"id":384,"type":385,"label":438,"file":232,"line":504},1986,{"id":389,"type":390,"label":391,"file":232,"line":506,"wp_function":393},2005,[508],{"from":384,"to":389,"sanitized":263},{"entryPoint":510,"graph":511,"unsanitizedCount":13,"severity":487},"uimptr_ajax_process_csv_import (url-image-importer.php:2069)",{"nodes":512,"edges":517},[513,515],{"id":384,"type":385,"label":386,"file":232,"line":514},2080,{"id":389,"type":390,"label":391,"file":232,"line":516,"wp_function":393},2106,[518],{"from":384,"to":389,"sanitized":263},{"summary":520,"deductions":521},"The url-image-importer plugin v1.0.8 exhibits a mixed security posture. On the positive side, it demonstrates good practices such as a high percentage of prepared SQL statements and properly escaped outputs, along with a robust number of nonce and capability checks. The absence of dangerous functions and critical\u002Fhigh severity taint flows is also encouraging. However, there are notable areas of concern. The presence of one AJAX handler without any authentication checks creates a significant attack vector that could be exploited by unauthenticated users.\n\nThe vulnerability history reveals a pattern of past security issues, including high and medium severity vulnerabilities like Cross-site Scripting and Unrestricted File Uploads. While there are currently no unpatched CVEs, the historical prevalence of these types of vulnerabilities, especially those related to input sanitization and file handling, suggests potential weaknesses in how user-supplied data is processed. The taint analysis, while not reporting critical issues, did find flows with unsanitized paths, which can be a precursor to security problems if not addressed.\n\nIn conclusion, while the plugin has several strengths in its current implementation, the combination of an unprotected AJAX endpoint and a history of serious vulnerabilities warrants caution. The potential for unauthenticated actions and the recurring types of past exploits indicate that careful monitoring and potentially further code review are advisable to ensure ongoing security.",[522,524,527,530],{"reason":523,"points":125},"Unprotected AJAX handler",{"reason":525,"points":526},"History of High severity CVEs",15,{"reason":528,"points":529},"History of Medium severity CVEs",7,{"reason":531,"points":532},"Taint flows with unsanitized paths",8,"2026-03-16T19:39:16.086Z",{"wat":535,"direct":544},{"assetPaths":536,"generatorPatterns":539,"scriptPaths":540,"versionParams":541},[537,538],"\u002Fwp-content\u002Fplugins\u002Furl-image-importer\u002Fcss\u002Furl-image-importer.css","\u002Fwp-content\u002Fplugins\u002Furl-image-importer\u002Fjs\u002Furl-image-importer.js",[],[538],[542,543],"url-image-importer\u002Fcss\u002Furl-image-importer.css?ver=","url-image-importer\u002Fjs\u002Furl-image-importer.js?ver=",{"cssClasses":545,"htmlComments":547,"htmlAttributes":548,"restEndpoints":550,"jsGlobals":551,"shortcodeOutput":553},[546],"url-image-importer-wrap",[],[549],"data-id=\"url-image-importer-admin-page\"",[],[552],"urlImageImporter",[]]