ScanUpload adds a QR-code upload widget to any page with a shortcode. A visitor scans the QR code with their phone, uploads files, and those files are automatically imported into your WordPress site.
How it works
[scanupload] shortcode to any page or post.The plugin is powered by the ScanUpload service, which requires a free ScanUpload account, Client ID and Client Secret.
Features
[scanupload] shortcode.https://example.com). While developing on localhost, enable Test Mode instead.[scanupload] shortcode to the page where you want the widget (see below).That is the whole configuration. Until credentials are saved, the widget shows a friendly “ScanUpload is not configured” message instead of a QR code.
Block Editor (nothing extra to install): edit the page, click +, search for Shortcode, add the block and paste [scanupload] into it.
Elementor: drag the Shortcode widget into the page and paste [scanupload] into its Shortcode field.
Any other theme or builder that renders shortcodes: paste [scanupload] where the widget should appear.
A visitor then points their phone camera at the code, chooses the files they want to send, and the files arrive on your site automatically. The widget lists each file as it arrives, so the visitor can see the upload working.
import_mode="media", the default) – files appear under Media Library.import_mode="media_attach") – files appear in the library, attached to the post or page you choose.import_mode="folder") – files are saved under wp-content/uploads/<sub-folder>/ and are not added to the Media Library.In folder mode the plugin also writes .htaccess, index.html and web.config guard files into that folder so uploaded files cannot be executed.
[scanupload]
Optional attributes:
header – Header text shown above the QR code. Default: “Upload files from your phone”.show_header – 1 or 0. Default 1.size – small, medium, large or xlarge. Default large.file_preview_mode – list or grid. Default list.import_mode – media, media_attach or folder. Overrides the site-wide setting for this widget.attach_to – Post ID to attach imported media to when import_mode="media_attach". Use attach_to="current" to attach to the post currently being viewed.class – Extra CSS class for the widget container.Example:
[scanupload header="Scan to send us files" size="large" import_mode="media_attach" attach_to="42"]
When a logged-in visitor uploads files, the imported attachments are attributed
to that user. Anonymous visitors upload unattributed (author 0).
Media is only attached to a post the uploader is allowed to edit; otherwise it
is imported unattached. Use the scanupload_allow_attach_to_post filter to
allow guest submissions to a fixed public post.
scanupload_import_author_id – author ID assigned to imported attachments (default: the current user, 0 for anonymous visitors).scanupload_allow_attach_to_post – whether imported media may be attached to a post (default: only when the uploader can edit it). Use it to allow guest submissions to a fixed public post.scanupload_import_rate_limit – maximum import requests per rate-limit window (default 10).scanupload_import_rate_window – rate-limit window in seconds (default 600, i.e. 10 minutes).scanupload_import_client_ip – client IP used for rate limiting (default: the direct peer address). Useful behind a trusted reverse proxy.This plugin is a bridge to the ScanUpload service and only connects to it when you configure it and a visitor uses the widget:
https://hub.scanupload.net) when a [scanupload] widget is shown. The browser sends only the configured Client ID and your site’s origin.https://identity.scanupload.net) using the Client ID and Client Secret you entered.No tracking or analytics data is collected or sent by this plugin. Uploaded files are transmitted to and from the ScanUpload service solely to operate the upload feature, and are then stored on your site. No data is shared with any third party. See the ScanUpload Terms and Conditions for how ScanUpload handles the files it processes.
By installing, configuring and using the plugin you consent to the connections described above.
This plugin bundles the following open-source libraries. Both are included as
readable, unminified source so the shipped code can be reviewed as-is:
Both licences are GPL-compatible. The plugin’s own code is licensed under
GPL-2.0-or-later; see license.txt.