About this plugin
Effortless QR Code Generator is a WordPress plugin that allows you to create QR codes using a simple shortcode. It supports both client-side JavaScript rendering and server-side PHP rendering.
Features
- Simple shortcode: Use [effortless_qrcode url="https://example.com"] to generate QR codes
- Dual rendering modes: Client-side (JavaScript) or server-side (PHP/PNG)
- Developer API: Generate QR codes programmatically from your plugins/themes
- Customizable size: Control QR code dimensions (100-500 pixels)
- Custom colors: Set dark and light colors for the QR code
- Error correction levels: Choose L, M, Q, or H
- Cached PNG images: Server-rendered QR codes are cached in the uploads folder
- Responsive design: QR codes adapt to different screen sizes
- No external dependencies: All code is bundled locally
- Privacy-friendly: No data sent to external services
- Accessibility ready: Proper alt text support
- Performance optimized: Scripts load only when needed
Shortcode Parameters
- url – The URL to encode (required)
- size – Size in pixels (default: 150, min: 100, max: 500)
- color_dark – Dark color in hex format (default: #000000)
- color_light – Light color in hex format (default: #ffffff)
- render – Rendering mode: “client” or “server” (default: client)
- ecc – Error correction level: L, M, Q, H (default: M)
- alt – Alt text for accessibility (server rendering only)
- class – Additional CSS class (server rendering only)
- data – Arbitrary data to encode (plain text, WiFi, vCard, etc.). When set, overrides url and disables link
- link – Wrap QR code in a clickable link: “yes” or “no” (default: no). Only works with URL content, ignored when data is used
- title – Tooltip text shown on hover
- target – Link target attribute: “_blank”, “_self”, etc. (default: _blank)
Usage Examples
Basic usage (client-side):
com”]
Server-side rendering:
com” render=”server”]
With custom size and colors:
com” size=”200″ color_dark=”#0073aa”]
Server-side with high error correction:
com” render=”server” ecc=”H” alt=”Scan me”]
PHP API for Developers
Third-party plugins and themes can generate QR codes programmatically using the Effortless_QRCode_Native class.
Basic Usage:
php // Make sure the plugin is active if ( class_exists( 'Effortless_QRCode_Native' ) ) {
com' );
if ( $result ) { echo '<img src="'. esc_url( $result['url'] ). >
With Custom Options:
com', // Data to encode (required) 200, // Size in pixels (default: 150) '#0073aa', // Dark color (default: #000000) '#ffffff', // Light color (default: #ffffff) 'H', // ECC level: L, M, Q, H (default: M) 4 // Margin in modules (default: 4) );
>
Display in a Template:
php if ( class_exists( 'Effortless_QRCode_Native' ) ) { $result = Effortless_QRCode_Native::generate_png( get_permalink() );
>
API Reference
Effortless_QRCode_Native::generate_png( $data, $size, $color_dark, $color_light, $ecc, $margin )
Generates a QR code PNG image and saves it to the WordPress uploads folder.
Parameters:
- $data (string) – Required. The data to encode (URL, text, etc.)
- $size (int) – Optional. Image size in pixels. Default: 150
- $color_dark (string) – Optional. Hex color for dark modules. Default: ‘#000000’
- $color_light (string) – Optional. Hex color for light modules. Default: ‘#ffffff’
- $ecc (string) – Optional. Error correction level (L, M, Q, H). Default: ‘M’
- $margin (int) – Optional. Quiet zone margin in modules. Default: 4
Returns:
Array on success with keys:
* url – Public URL to the generated PNG image
* path – Server filesystem path to the PNG file
* debug – Debug information string
Returns false on failure.
Notes:
- Images are cached based on all parameters (same input = same file)
- Files are stored in wp-content/uploads/effortless-qrcodes/
- Requires GD library for PNG generation
Error Correction Levels
- L – 7% recovery capacity (smallest QR code)
- M – 15% recovery capacity (default, good balance)
- Q – 25% recovery capacity
- H – 30% recovery capacity (largest QR code, best for print)
Higher error correction allows the QR code to be read even if partially damaged or obscured.
Privacy
This plugin does not collect, store, or transmit any personal data. QR codes are generated locally (either in the browser or on your server).
Requirements
- PHP 7.4+ with GD library (for server-side PNG generation)
- WordPress 5.0+
- JavaScript enabled (for client-side rendering only)