=== SnapMark – Order QR Codes & Barcodes for WooCommerce ===
Contributors: plugindistrict
Tags: woocommerce, qr code, barcode, order management, local pickup
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.2
Requires Plugins: woocommerce
Stable tag: 0.3.21
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Generate and scan WooCommerce order QR codes and barcodes for check-in, pickup, and fulfillment.

== Description ==

Turn each WooCommerce order into a scannable check-in or pickup credential. SnapMark automatically creates one QR code or Code 128 barcode per order, then displays it on the customer order page and, when enabled, in customer emails.

Staff can scan the QR code to open a mobile-first, authenticated order screen. From there, they can verify the customer and order items, then apply an allowed WooCommerce status such as Checked In or Completed.

= Key features =

* One QR code or Code 128 barcode per WooCommerce order.
* Display codes on customer order pages and HTML emails.
* Mobile-first QR check-in for authenticated staff.
* Role-controlled actions and a custom Checked In order status.
* Easy Scan shortcode with barcode, order-number, and phone lookup.
* Local scan log for recent lookups and status changes.
* Local code generation and caching—no external barcode service required.

= Built for =

* Event and venue order check-in.
* Curbside and in-store pickup.
* Warehouse and fulfillment verification.
* Any workflow that uses one scannable code per WooCommerce order.

Codes and scan history stay on your WordPress site. Core Free features do not require an external account or license key.


The free version includes local code generation and authenticated basic scanning for WooCommerce orders.

== Installation ==

1. Install and activate WooCommerce.
2. Install and activate SnapMark for WooCommerce.
3. Go to **SnapMark → Settings** to choose where codes appear and configure staff check-in access.
4. Place the `[snapmark_scan]` shortcode on a staff-only page if you want the Easy Scan form on a custom page.

== Usage ==

* Codes are generated for WooCommerce orders and can be shown on customer order pages and HTML emails.
* Staff with the configured role can open a QR code to check an order in from a phone.
* Use **SnapMark → Scan Log** to review recent scans.
* Use the Easy Scan shortcode for manual barcode or phone lookup on a staff-only page.


== Requirements ==

* WooCommerce
* PHP 8.2 or newer
* PHP GD extension
* PHP mbstring extension

== Frequently Asked Questions ==

= Does this plugin send order or visitor data to a third party? =

No. QR codes and barcodes are generated and cached on your WordPress site, and SnapMark does not send order, barcode, scan, customer, or visitor data to Freemius. Core Free features do not require an external account or service.

= Can scanning change an order status? =

Yes. You can configure the QR check-in page and Easy Scan form to leave an order unchanged or apply an allowed WooCommerce order-status action.

= Does SnapMark create individual tickets or attendee codes? =

No. The Free plugin creates one scannable code per WooCommerce order. It does not create per-attendee tickets or ticket emails.

= Who can check an order in? =

Only signed-in users with a role enabled in the plugin settings can access the check-in and Easy Scan workflows.

= Why are barcodes not generating? =

The plugin requires the PHP GD extension. Ask your host to enable GD, then try regenerating the order barcode.


== Screenshots ==

1. Choose QR or Code 128, allowed actions, and staff roles from the SnapMark settings screen.
2. Scan a customer's QR code to review the WooCommerce order and apply an allowed status from a phone.
3. Review recent lookups and status changes in the local SnapMark Scan Log.

== Privacy ==

SnapMark generates and stores QR codes and barcodes locally on your WordPress site. Core free features work without creating an external account.


SnapMark bundles the Freemius SDK for optional account connection and upgrade/licensing workflows. Freemius is only contacted when an administrator opts in or uses those account or licensing features.

== External services ==

This plugin uses the Freemius WordPress SDK for optional account connection and upgrade handling in the free version, and for licensing and protected updates in Pro.

When the service is used, Freemius may receive:
* Site URL
* WordPress and plugin version data
* Administrator account details
* License/account identifiers
* Technical environment details required to provide the requested service

Freemius is contacted only when an administrator opts in or uses those account/licensing services. Product usage analytics are disabled. SnapMark does not send WooCommerce order, barcode, scan, customer, or visitor data to Freemius.

Freemius terms: https://freemius.com/terms/
Freemius privacy policy: https://freemius.com/privacy/

== Changelog ==

= 0.3.21 =
* Adds a restrained, contextual path to learn about SnapMark Pro scanner and attendance features.


= 0.3.20 =
* Initial WordPress.org release.


= 0.3.19 =
* Updates QR and barcode libraries and raises the minimum PHP version to 8.2.
* Requires an authorized staff member to confirm every QR order-status change.
* Restricts Easy Scan and configured scan roles to authorized staff.

= 0.3.18 =
* Require a signed order URL before applying an automatic QR check-in action.

= 0.3.17 =
* Initial public release of SnapMark for WooCommerce.
* Adds local order QR code and barcode generation with display on order pages and emails.
* Includes authenticated staff scanning/check-in workflows, configurable status actions, and scan history.
