{"id":309409,"date":"2026-05-29T10:07:47","date_gmt":"2026-05-29T10:07:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/checkify\/"},"modified":"2026-06-23T04:33:23","modified_gmt":"2026-06-23T04:33:23","slug":"checkify","status":"publish","type":"plugin","link":"https:\/\/hr.wordpress.org\/plugins\/checkify\/","author":23494644,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Checkify","header_author":"Checkify","header_description":"Replace CAPTCHA with privacy-first human verification using Checkify.","assets_banners_color":"","last_updated":"2026-06-23 04:33:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/checkify.me","header_author_uri":"https:\/\/checkify.me","rating":0,"author_block_rating":0,"active_installs":0,"downloads":157,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"checkify","date":"2026-05-29 10:07:38"},"1.1.0":{"tag":"1.1.0","author":"checkify","date":"2026-06-15 21:39:25"},"1.2.1":{"tag":"1.2.1","author":"checkify","date":"2026-06-23 04:33:23"}},"upgrade_notice":{"1.2.1":"<p>Verification widget styling now loads from verify-widget.css instead of inline CSS in the shortcode output.<\/p>","1.1.0":"<p>Major update with improved security and Pass API support. Existing site connections and Pass IDs are preserved automatically.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3553352,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3553352,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3582583,"resolution":"2","location":"plugin","width":1390,"height":868},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3582583,"resolution":"3","location":"plugin","width":1356,"height":1520},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3582583,"resolution":"1","location":"plugin","width":814,"height":366}},"screenshots":[]},"plugin_section":[],"plugin_tags":[5616,362,22649,396,712],"plugin_category":[38,44,54],"plugin_contributors":[264910],"plugin_business_model":[],"class_list":["post-309409","plugin","type-plugin","status-publish","hentry","plugin_tags-age-verification","plugin_tags-captcha","plugin_tags-identity","plugin_tags-privacy","plugin_tags-verification","plugin_category-authentication","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-checkify","plugin_committers-checkify"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/checkify\/assets\/icon-128x128.png?rev=3553352","icon_2x":"https:\/\/ps.w.org\/checkify\/assets\/icon-256x256.png?rev=3553352","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/checkify\/trunk\/screenshot-1.png?rev=3582583","caption":""},{"src":"https:\/\/ps.w.org\/checkify\/trunk\/screenshot-2.png?rev=3582583","caption":""},{"src":"https:\/\/ps.w.org\/checkify\/trunk\/screenshot-3.png?rev=3582583","caption":""}],"raw_content":"<!--section=description-->\n<p>Checkify links your WordPress site to your Checkify business account. Once connected, you can verify visitors using Checkify Passes and embed verification on any page.<\/p>\n\n<p><strong>Core features:<\/strong><\/p>\n\n<ul>\n<li>QR-based site connection (no API keys to copy)<\/li>\n<li>Secure install keypair and short-lived site tokens<\/li>\n<li>Verification profiles: human, age 18+, age 21+, age 25+<\/li>\n<li>Public PHP API for satellite plugins (<code>checkify_connector()<\/code>)<\/li>\n<li>Shortcode: <code>[checkify_verify profile=\"is_human\"]<\/code><\/li>\n<li>Local QR rendering in the browser (bundled QRCode.js)<\/li>\n<\/ul>\n\n<p><strong>Optional satellite plugins:<\/strong><\/p>\n\n<ul>\n<li>WooCommerce age gate<\/li>\n<li>Contact Form 7 human verification<\/li>\n<li>Checkify Page Gate \u2014 page\/post protection<\/li>\n<li>Login and comment protection<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Checkify services to provide human verification and optional age verification.<\/p>\n\n<p>Service used:<\/p>\n\n<ul>\n<li>Checkify API: https:\/\/checkify.me<\/li>\n<li>Checkify website: https:\/\/checkify.me<\/li>\n<\/ul>\n\n<p>The plugin connects to Checkify when:<\/p>\n\n<ul>\n<li>A site administrator creates a site connection claim.<\/li>\n<li>A site administrator polls the status of a site connection claim.<\/li>\n<li>A connected WordPress site creates a verification request.<\/li>\n<li>A connected WordPress site checks the status of a verification request.<\/li>\n<li>A connected WordPress site confirms a completed verification result.<\/li>\n<\/ul>\n\n<p>The plugin may send the following data to Checkify services:<\/p>\n\n<ul>\n<li>The WordPress site domain.<\/li>\n<li>A Checkify site identifier.<\/li>\n<li>A Checkify installation identifier.<\/li>\n<li>A Checkify Pass identifier configured by the site administrator.<\/li>\n<li>Verification request identifiers.<\/li>\n<li>Verification status tokens.<\/li>\n<li>Request timestamps.<\/li>\n<li>Cryptographic signatures used to authenticate the WordPress installation.<\/li>\n<\/ul>\n\n<p>The plugin does not use an external QR code generation service. QR codes are generated locally in the visitor's browser using the bundled QRCode.js library.<\/p>\n\n<p>Checkify privacy policy: https:\/\/checkify.me\/privacy-policy<\/p>\n\n<p>Checkify terms: https:\/\/checkify.me\/terms_and_conditions<\/p>\n\n<h3>Third-party libraries<\/h3>\n\n<p>This plugin includes QRCode.js by davidshimjs to render QR codes locally in the browser.<\/p>\n\n<p>Library: QRCode.js<\/p>\n\n<p>Source: https:\/\/github.com\/davidshimjs\/qrcodejs<\/p>\n\n<p>License: MIT<\/p>\n\n<p>The QRCode.js license is included in <code>qrcode-license.txt<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/checkify\/<\/code> or install via ZIP.<\/li>\n<li>Activate <strong>Checkify<\/strong> through the Plugins menu.<\/li>\n<li>Go to <strong>Checkify<\/strong> in the WordPress admin sidebar and follow <strong>Setup instructions<\/strong> at the top of the page.<\/li>\n<li>Generate a connection QR, scan with the Checkify app, and approve the site link.<\/li>\n<li>Copy your <strong>Checkify Pass ID<\/strong> for the connected Site:\n\n<ul>\n<li><strong>App:<\/strong> Manage business \u2192 Sites \u2192 select the site \u2192 Copy Pass ID<\/li>\n<li><strong>Dashboard:<\/strong> Sign in at https:\/\/checkify.me\/business\/login \u2192 Checkify Passes \u2192 Copy Pass ID<\/li>\n<\/ul><\/li>\n<li>Paste the Pass ID into the plugin settings and save.<\/li>\n<li>Use <code>[checkify_verify]<\/code> on a page, or install a Checkify satellite plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20checkify%20business%20account%3F\"><h3>Do I need a Checkify business account?<\/h3><\/dt>\n<dd><p>Yes. Site connection is approved by a business owner scanning the QR code in the Checkify app.<\/p><\/dd>\n<dt id=\"what%20php%20extensions%20are%20required%3F\"><h3>What PHP extensions are required?<\/h3><\/dt>\n<dd><p>The PHP sodium extension (libsodium) must be enabled.<\/p><\/dd>\n<dt id=\"can%20other%20plugins%20use%20checkify%20verification%3F\"><h3>Can other plugins use Checkify verification?<\/h3><\/dt>\n<dd><p>Yes. Satellite plugins should call <code>checkify_connector()-&gt;is_verified( 'profile_key' )<\/code> after this connector is active.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20use%20an%20external%20qr%20code%20service%3F\"><h3>Does this plugin use an external QR code service?<\/h3><\/dt>\n<dd><p>No. QR codes are generated locally in the visitor's browser using the bundled QRCode.js library.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Move verification widget CSS from inline shortcode styles to enqueued verify-widget.css<\/li>\n<li>Add checkify_connector()-&gt;enqueue_verify_widget_assets() for satellite plugins<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Dynamic age verification (10\u2013110) with Verified or High Assurance levels<\/li>\n<li>Pass API sends <code>verified_level<\/code> query parameter for age checks<\/li>\n<li>Composite profile keys (e.g. <code>age:42:highAssurance<\/code>) with legacy <code>age_over_18<\/code> migration<\/li>\n<li>Shortcode supports <code>age<\/code> and <code>assurance_level<\/code> attributes<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebuilt core using modular Connector architecture (replaces legacy monolithic plugin)<\/li>\n<li>Pass API (<code>\/v1\/qr\/pass\/...<\/code>) with request types for human and age verification profiles<\/li>\n<li>Unified Checkify Pass ID setting with automatic migration from legacy launcher option<\/li>\n<li>Security hardening for verification session storage (<code>store-claim<\/code> binding)<\/li>\n<li>Safer frontend verification widget JavaScript<\/li>\n<li>Admin menu slug restored to <code>checkify<\/code> for WordPress.org compatibility<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: modular Checkify core plugin<\/li>\n<li>Site connect, JWT minting, verification REST proxy, profiles, shortcode<\/li>\n<li>Backward-compatible global functions for legacy Checkify plugin code<\/li>\n<\/ul>","raw_excerpt":"Connect your WordPress site to Checkify for privacy-first identity verification.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309409"}],"author":[{"embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/checkify"}],"wp:attachment":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309409"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309409"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309409"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309409"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309409"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}