Quick Shop is a WordPress Shopping Cart with both Paypal and Email functionality built-in.
Quick Shop is a lightweight WordPress shopping cart. Define products as pipe-delimited text, drop a shortcode or block on any page, and you have an instant shop with a sidebar cart widget.
No WooCommerce-level complexity. Just products, a cart, and checkout.
Features:
- Define products as simple text:
Product Name | Price | Shipping | Property : Option1, Option2
- Shortcode
[quickshop product="Product Name"] for add-to-cart forms
- Gutenberg block — “Quick Shop Product” with product picker dropdown
- Sidebar cart widget showing items, quantities, and totals
- PayPal checkout
- Built-in email order form (sends order details to site admin via wp_mail)
- Configurable currency, decimal point, thousands separator, symbol position
- Free shipping threshold
- Terms and conditions link
- Restrict purchasing to logged-in users
- Translation ready
Sample product list:
Cap | 25.00
Bag | 120.00 | | Color : Red, Blue
Shirt | 9.95 | 4.00 | Size : S, M, L
Upgrading from v2.x:
- PHP sessions have been replaced with cookie-based cart storage — works with page caching and load balancers
- The TinyMCE editor button has been removed (use the Gutenberg block or type the shortcode directly)
- Email checkout no longer requires CForms2 — uses a built-in form with wp_mail()
- Inline styles replaced with a CSS file — update any custom CSS
FAQ
How do I change the currency?
Go to Quick Shop > Settings and set the currency code (e.g. USD, AUD), symbol (e.g. $), and whether the symbol appears before or after the number.
How do I add product options like size or color?
In the product list, add properties after the shipping price: Shirt | 9.95 | 4.00 | Size : S, M, L
The TinyMCE button is gone
The old TinyMCE 3 button was removed in v3.0.0 as it stopped working in WordPress 3.9 (2014). Use the Gutenberg block or type the shortcode directly.
I used CForms2 for email checkout
CForms2 is no longer maintained. Quick Shop v3.0.0 includes a built-in email order form that sends directly via wp_mail() — no external plugin needed.
ChangeLog
3.0.0
- New: Gutenberg block — “Quick Shop Product” with product picker dropdown
- New: Built-in email order form replacing CForms2 dependency (wp_mail)
- New: CSS file with clean class names (
qs-* classes)
- New: Cart uses cookie + WP transients instead of PHP sessions
- Removed: TinyMCE 3 editor button (non-functional since WP 3.9)
- Removed: CForms2 integration (plugin is closed/unmaintained)
- Removed: Commented-out Authorize.Net code
- Removed: WordPress 2.6 compatibility code
- Fixed: Thousands separator never saved (form field name mismatch)
- Fixed:
get_option() or __() precedence bugs in admin and widget
- Fixed: Undefined
$symbolAfter/$symbolBefore variables
- Fixed: Undefined
$_POST['item_number'] on add-to-cart
- Fixed:
$feeShippingValue typo in admin template
- Fixed:
header() replaced with wp_safe_redirect()
- Fixed: Admin menu uses dedicated slugs instead of
__FILE__
- Fixed:
admin_init action no longer nested inside admin_menu
- Fixed: All
register_setting() calls consolidated in admin_init
- Changed: Requires WordPress 6.0+
2.4.1
- Fixed PHP 8.1 deprecation: get_option() returning false passed to trim()/explode()
2.4.0
- PHP 8.x compatibility: replaced create_function() with anonymous function
- PHP 8.x compatibility: replaced PHP 4-style constructor with __construct()
- PHP 8.x compatibility: replaced mysql_query()/mysql_affected_rows() with $wpdb->update() in updater
- PHP 8.x compatibility: fixed bare constant in function_exists() call
- PHP 8.x compatibility: fixed undefined array key access in get_url()
- PHP 8.x compatibility: fixed list() crash on short product lines
- Replaced deprecated PLUGINDIR constant with plugin_dir_path()
- Replaced hardcoded plugin URLs with plugin_dir_url() and plugins_url()
- Replaced deprecated whitelist_options filter with allowed_options
- Replaced extract() with direct $args array access in widget
- Wrapped session_start() with status check
- Fixed function_exists() call with parentheses in function name string
- Tested with WP 6.9.1
2.3.1
- Update to change some links
- Minor bugfix for including widget.php (thanks jtkt)
- Editors may now use the backend for Quickshop
2.3
- Internationalisation support
- Misc bugfixes
- Removal of deprecated widget creation
2.2
- CForms2 email form integration
2.1
- WPMU 2.8+ compatibility
- Improved cart widget accessibility
- Options/Products page improvements
2.0
- Major rewrite
- Custom checkout page
- Inventory editor
- Starting/default shipping prices
- WordPress shortcode support
- Thousands separator formatting
- Toggle payment methods
- Updater for v1 to v2 tags
- Improved TinyMCE button