[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fBzIZbI1Sa2fkbYVX1vydVAqim4Oc1ZD28HFLt8q2ewA":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":38,"analysis":135,"fingerprints":1005},"token-of-trust","Age Verification & Identity Verification by Token of Trust","3.32.2","Token of Trust","https:\u002F\u002Fprofiles.wordpress.org\u002Ftokenoftrust\u002F","\u003Ch3>Age Verification and Identity Verification for WordPress and WooCommerce\u003C\u002Fh3>\n\u003Cp>Token of Trust is a powerful \u003Cstrong>Age Verification\u003C\u002Fstrong> and \u003Cstrong>Identity Verification\u003C\u002Fstrong> (KYC) plugin for WordPress and WooCommerce. Unlike simple age disclaimers, our solution provides robust AI-based checks to verify user identity, prevent underage purchases, and maintain compliance with regulations for alcohol, tobacco, vape, cannabis, gaming, firearms, and other age-restricted products.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fu9ga4OpzLoo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>SELL AGE-RESTRICTED GOODS • VERIFY IDENTITIES • PREVENT FRAUD\u003C\u002Fh4>\n\u003Cp>Your customers will check out faster with Token of Trust’s seamless age verification and identity verification flows.\u003C\u002Fp>\n\u003Cp>Integrate directly within the WooCommerce checkout process or WordPress account registration. Token of Trust is used for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftokenoftrust.com\u002Fresources\u002Fintegrations\u002Fwordpress-age\u002F?utm_source=wordpress&utm_medium=app&utm_campaign=wordpress&utm_content=wordpress.age\" rel=\"nofollow ugc\">Age Verification Compliance\u003C\u002Fa>\u003C\u002Fstrong> – Enforce age restrictions for tobacco, vape, cannabis, alcohol, gaming, firearms, and more.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftokenoftrust.com\u002Fresources\u002Fintegrations\u002Fwordpress-identity\u002F?utm_source=wordpress&utm_medium=app&utm_campaign=wordpress&utm_content=wordpress.identity\" rel=\"nofollow ugc\">Identity Verification or KYC\u002FAML\u003C\u002Fa>\u003C\u002Fstrong> – Meet regulations across industries such as financial services, web3 or crypto, gambling, or healthcare.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftokenoftrust.com\u002Fresources\u002Fintegrations\u002Fwordpress-anti-fraud\u002F?utm_source=wordpress&utm_medium=app&utm_campaign=wordpress&utm_content=wordpress.antifraud\" rel=\"nofollow ugc\">Safety & Security (Fraud Prevention)\u003C\u002Fa>\u003C\u002Fstrong> – Build trust on social media platforms, online communities, marketplaces, and dating sites.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>AGE VERIFICATION SOFTWARE FEATURES\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Turnkey Age Gate Setup\u003C\u002Fstrong> – Get your age verification running in minutes with pre-configured settings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Expedited Age Verification\u003C\u002Fstrong> – Quickly verify age in ecommerce using checkout data often skipping the need for document uploads.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Age Requirements\u003C\u002Fstrong> – Set different minimum ages (18+, 19+, 21+, etc.) for different products or regions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Age Gate Options\u003C\u002Fstrong> – Choose between simple disclaimers or robust ID scanning.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Block Underage Visitors\u003C\u002Fstrong> – Disallow access to age-restricted content or purchases.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ID Document Verification\u003C\u002Fstrong> – Analyze over 5000 ID types from 240+ countries.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Selfie-Match (Optional)\u003C\u002Fstrong> – Add extra layers of identity confirmation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Loyal Customers\u003C\u002Fstrong> – Optionally skip repeat age verifications for returning users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Product-Specific Rules\u003C\u002Fstrong> – Trigger age checks based on product categories, shipping methods, price, or buyer location.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>HOW OUR AGE VERIFICATION FOR WEBSITES WORKS\u003C\u002Fh4>\n\u003Col>\n\u003Cli>You set minimum-age rules (e.g., 21+ for certain products).\u003C\u002Fli>\n\u003Cli>The Token of Trust modal securely gathers relevant data or images.\u003C\u002Fli>\n\u003Cli>Token of Trust’s AI system checks user details, and forwards for human intervention if necessary.\u003C\u002Fli>\n\u003Cli>Underage or non-compliant users can be blocked, with an explanation and chance to retry.\u003C\u002Fli>\n\u003Cli>Verification results display in WordPress\u002FWooCommerce and within the Token of Trust dashboard.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>IDENTITY VERIFICATION FEATURES\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>KYC Compliant\u003C\u002Fstrong> – Capture and verify government-issued IDs like passports, driver’s licenses, and national IDs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automated Checks\u003C\u002Fstrong> – AI-based checks confirm identity details in seconds, reducing manual intervention.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AML Support\u003C\u002Fstrong> – Built-in watchlist checks help maintain Anti-Money Laundering compliance.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Photo & Video Options\u003C\u002Fstrong> – Offer advanced document scanning with optional user selfies or live video.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Global Coverage\u003C\u002Fstrong> – Validate IDs from over 240+ countries to onboard global customers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fraud Engine\u003C\u002Fstrong> – Identify suspicious signups using advanced risk analysis.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>HOW IDENTITY VERIFICATION WORKS\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Define KYC criteria (e.g., ID scan required, name must match billing).\u003C\u002Fli>\n\u003Cli>Users upload ID documents, optionally supplemented by a selfie or live photo.\u003C\u002Fli>\n\u003Cli>Token of Trust’s AI system checks authenticity of documents, cross-references user details, and runs watchlist checks.\u003C\u002Fli>\n\u003Cli>Verification outcome displayed in WordPress\u002FWooCommerce or the Token of Trust portal.\u003C\u002Fli>\n\u003Cli>Flags or alerts can be generated automatically, requiring further manual review if necessary.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>WHY CHOOSE TOKEN OF TRUST AMONG AGE VERIFICATION PROVIDERS?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>True Verification\u003C\u002Fstrong> – Unlike simple age disclaimers or checkbox solutions, Token of Trust actually verifies age through government IDs and database checks.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Regulatory Compliance\u003C\u002Fstrong> – Stay compliant with age restriction laws for alcohol, tobacco, vape, cannabis, and other regulated industries.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reduce Liability\u003C\u002Fstrong> – Protect your business from penalties associated with selling to underage customers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Seamless Experience\u003C\u002Fstrong> – Minimize cart abandonment with a smooth verification process that doesn’t disrupt the checkout flow.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Configuration\u003C\u002Fstrong> – Set different age thresholds for different products, regions, or customer types.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>TRUSTED AGE VERIFICATION PROVIDER\u003C\u002Fh4>\n\u003Cp>As one of the leading age verification companies, Token of Trust provides robust age verification software for websites across industries. Our age verification solution is trusted by over 1,000 businesses worldwide, processing more than 1 million verifications for age-restricted products and content.\u003C\u002Fp>\n\u003Ch4>DESIGNED FOR PRIVACY\u003C\u002Fh4>\n\u003Cp>Token of Trust employs industry-leading encryption and strict policy controls to protect your organization’s and customers’ data. Our platform complies with:\u003Cbr \u002F>\n* GDPR (UK & EU)\u003Cbr \u002F>\n* CCPA\u003Cbr \u002F>\n* PIPEDA\u003Cbr \u002F>\n* LGPD\u003Cbr \u002F>\n* And more…\u003C\u002Fp>\n\u003Ch4>NEED HELP?\u003C\u002Fh4>\n\u003Cp>Have questions about setting up age verification or identity verification with Token of Trust? \u003Ca href=\"https:\u002F\u002Ftokenoftrust.com\u002Fcontact\u002Fcontact-sales\u002F?utm_source=wordpress&utm_medium=integration&utm_campaign=wordpress&utm_content=wordpress.org_plugin-page\" rel=\"nofollow ugc\">Contact us\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>You need an active Token of Trust account to use this plugin. Download and activate it in WordPress\u002FWooCommerce, then click “Get Started Now” in the plugin to create or connect your account.\u003C\u002Fp>\n\u003Ch4>USING TOKEN OF TRUST WITH MEMBER MANAGEMENT PLUGINS\u003C\u002Fh4>\n\u003Cp>Token of Trust works seamlessly alongside member management systems that set up user profiles, membership tiers, and custom pages in WordPress. Common plugins include:\u003Cbr \u002F>\n*   BuddyPress\u003Cbr \u002F>\n*   Ultimate Member\u003C\u002Fp>\n\u003Ch4>OTHER INTEGRATIONS\u003C\u002Fh4>\n\u003Cp>Discover \u003Ca href=\"https:\u002F\u002Ftokenoftrust.com\u002Fresources\u002Fintegrations\u002FWordPress\u002F?utm_source=wordpress&utm_medium=integration&utm_campaign=wordpress&utm_content=wordpress.org_plugin-page\" rel=\"nofollow ugc\">Token of Trust’s WordPress Integration Options\u003C\u002Fa> for details on advanced scenarios and additional plugin compatibility.\u003C\u002Fp>\n\u003Ch4>LANGUAGES\u003C\u002Fh4>\n\u003Cp>Token of Trust has been translated into:\u003Cbr \u002F>\n* English (US)\u003Cbr \u002F>\n* Spanish\u003Cbr \u002F>\n* French\u003Cbr \u002F>\n* Additional languages available upon request\u003C\u002Fp>\n","Verify age at checkout, protect pages from underage visitors, or set up advanced identity verification checks. Setup wizard gets you going in minutes.",50,43312,86,15,"2026-03-12T18:36:00.000Z","6.9.4","5.3.0","7.2.5",[20,21,22,23,24],"age-gate","age-verification","identity-verification","kyc","verify-age","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftoken-of-trust.3.32.2.zip",100,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"tokenoftrust",1,30,94,"2026-04-05T09:36:45.562Z",[39,57,77,94,117],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":28,"num_ratings":28,"last_updated":49,"tested_up_to":16,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":55,"download_link":56,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"didit-verify","Didit Verify","0.1.4","alexdidit","https:\u002F\u002Fprofiles.wordpress.org\u002Falexdidit\u002F","\u003Cp>Didit Verify lets you require identity verification on your WordPress site. Drop a shortcode on any page or require it at WooCommerce checkout.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Two integration modes:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>UniLink\u003C\u002Fstrong> — paste a URL from the workflow you want from Didit Console. No backend needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API Session\u003C\u002Fstrong> — [RECOMMENDED] the plugin creates a unique session per user. Your API key stays server-side.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Display options:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Modal\u003C\u002Fstrong> — opens a centered overlay on top of the page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Embedded\u003C\u002Fstrong> — renders the verification inline where the shortcode is placed\u003C\u002Fli>\n\u003Cli>Configurable close button, exit confirmation dialog, and auto-close on completion\u003C\u002Fli>\n\u003Cli>Debug logging for SDK events in the browser console\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Button appearance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fully configurable from the admin panel: text, colors, border radius, padding, font size\u003C\u002Fli>\n\u003Cli>Live preview in Settings that updates as you change values\u003C\u002Fli>\n\u003Cli>Shortcode attributes can override the button text per page\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Content gating:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[didit_gate]\u003C\u002Fcode> shortcode — restrict any content to verified users only\u003C\u002Fli>\n\u003Cli>\u003Ccode>[didit_status]\u003C\u002Fcode> shortcode — show the user’s verification status anywhere\u003C\u002Fli>\n\u003Cli>Verification status saved to WordPress user meta and visible in the admin Users list\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>WooCommerce support:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Require verification at checkout with 4 position options\u003C\u002Fli>\n\u003Cli>Automatically send billing data (name, email, phone, address) to Didit for pre-filling and cross-validation\u003C\u002Fli>\n\u003Cli>Verification session ID saved to order meta for audit\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Developer extensibility:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>PHP action hooks: \u003Ccode>didit_session_created\u003C\u002Fcode>, \u003Ccode>didit_verification_completed\u003C\u002Fcode>, \u003Ccode>didit_verification_cancelled\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>PHP filter: \u003Ccode>didit_sdk_url\u003C\u002Fcode> to change the SDK CDN\u003C\u002Fli>\n\u003Cli>DOM CustomEvent: \u003Ccode>didit:complete\u003C\u002Fcode> for frontend JavaScript\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security (API mode):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>API key stored server-side only — never sent to the browser\u003C\u002Fli>\n\u003Cli>CSRF nonce on every request\u003C\u002Fli>\n\u003Cli>Per-user rate limit: 10 sessions\u002Fhour\u003C\u002Fli>\n\u003Cli>Per-IP rate limit: 3 sessions\u002Fhour (guests)\u003C\u002Fli>\n\u003Cli>All input whitelisted and sanitized\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Third-Party Service\u003C\u002Fh3>\n\u003Cp>This plugin connects to the \u003Ca href=\"https:\u002F\u002Fdidit.me\" rel=\"nofollow ugc\">Didit\u003C\u002Fa> identity verification service to process user verifications. When a verification session is created (API mode), the plugin sends data to Didit’s servers. When the verification UI is displayed, an iframe loads content from \u003Ccode>verify.didit.me\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>This plugin bundles the \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@didit-protocol\u002Fsdk-web\" rel=\"nofollow ugc\">Didit Web SDK\u003C\u002Fa> (version 0.1.6) as \u003Ccode>assets\u002Fjs\u002Fdidit-sdk.umd.min.js\u003C\u002Fcode>. The full unminified source code is publicly available at the GitHub repository and npm package linked below.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Service: \u003Ca href=\"https:\u002F\u002Fdidit.me\" rel=\"nofollow ugc\">https:\u002F\u002Fdidit.me\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>SDK source code: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdidit-protocol\u002Fsdk-web\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fdidit-protocol\u002Fsdk-web\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>SDK npm package: \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@didit-protocol\u002Fsdk-web\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@didit-protocol\u002Fsdk-web\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>SDK license: MIT\u003C\u002Fli>\n\u003Cli>Terms of Use: \u003Ca href=\"https:\u002F\u002Fdidit.me\u002Fen\u002Fterms\u002Fidentity-verification\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fdidit.me\u002Fen\u002Fterms\u002Fidentity-verification\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Privacy Policy: \u003Ca href=\"https:\u002F\u002Fdidit.me\u002Fen\u002Fterms\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fdidit.me\u002Fen\u002Fterms\u002Fprivacy-policy\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The SDK can be rebuilt from source with \u003Ccode>npm install && npm run build\u003C\u002Fcode> (uses Rollup). See the GitHub repository for full build instructions.\u003C\u002Fp>\n\u003Cp>No data is sent to Didit until the site administrator configures the plugin and a user initiates verification.\u003C\u002Fp>\n","Add identity verification to any WordPress page or WooCommerce checkout using Didit.",10,207,"2026-03-12T10:45:00.000Z","6.0","7.4",[21,53,22,23,54],"id-check","woocommerce","https:\u002F\u002Fgithub.com\u002Fdidit-protocol\u002Fplugin-wordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdidit-verify.0.1.4.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":47,"downloaded":65,"rating":27,"num_ratings":66,"last_updated":67,"tested_up_to":68,"requires_at_least":69,"requires_php":70,"tags":71,"homepage":74,"download_link":75,"security_score":76,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"konfirmi","Konfirmi Plugin","2.1.3","konfirmillc","https:\u002F\u002Fprofiles.wordpress.org\u002Fkonfirmillc\u002F","\u003Cp>\u003Cstrong>Verify your customers automatically!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>KONFIRMI provides an easy and affordable way to automatically verify your customer’s identity and other information — in any e-commerce store, registration form, contact form or survey, webform, or online application.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Set up takes less than 5 minutes!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>For example, this video shows KONFIRMI being set up in about 4 minutes:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fkonfirmi.com\u002F#howitworks\" rel=\"nofollow ugc\">Click Here for Set Up Example Video\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>KONFIRMI goes beyond just providing a popup asking a user or customer to provide their information or state their age.  KONFIRMI also goes beyond fraud prevention and CAPTCHA-like functionalty.  In addition, KONFIRMI avoids many problems often present in other customer verification systems.\u003C\u002Fp>\n\u003Cp>Our easy-to-use app allows you to select from a variety of ways to automatically verify your customer’s information, such as:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Age\u003C\u002Fli>\n\u003Cli>Photo ID\u003C\u002Fli>\n\u003Cli>Mailing Address\u003C\u002Fli>\n\u003Cli>Phone number\u003C\u002Fli>\n\u003Cli>Email Address\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>before any services are provided, before any access is granted, and before any products are sold or delivered.\u003C\u002Fp>\n\u003Cp>+++++++++++++++++\u003C\u002Fp>\n\u003Cp>\u003Cstrong>USE KONFIRMI TO AVOID VIOLATING THE LAW\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Our app provides an easy and affordable way to comply with various laws affecting e-commerce and other online businesses:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>True Age Verification:\u003C\u002Fstrong>  KONFIRMI lets you automatically verify your customer’s age!  Online sellers of age restricted products — like certain kinds of video games, liquor and alcoholic beverages, tobacco and vaping products, marijuana sales, pornography, and gambling services — must check the buyer’s government-issued photo ID, or in some cases at least verify the buyer’s information against consumer databases, to ensure that the buyer is old enough. In most cases, you also need a clear audit trail to prove the verifications were being done properly.  KONFIRMI handles all of this automatically!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No Facial Recognition.\u003C\u002Fstrong>  Studies have shown that facial recognition is unreliable with non-Caucasians — just search the internet, and you will find several reputable studies and articles on this issue.  In addition, facial recognition is disfavored and highly problematic in many places, including in the European Economic Area (EEA) and in several states in the United States.  In some cases, you even need a written release from your customer to use facial recognition or other biometrics, and written disclosure of the specific purpose and duration of time for which the facial recognition or biometric information is being collected, stored, and used.  KONFIRMI lets you avoid all of this!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“Behind the Scenes” Verification.\u003C\u002Fstrong>  KONFIRMI gets the consents you need to verify your customers!  In many countries, including in the United States, it is often illegal to identify individuals without their knowledge and consent, especially using biometrics of any kind.  This is easy with KONFIRMI!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GDPR Compliance:\u003C\u002Fstrong>  KONFIRMI allows you to easily comply with the GDPR!  Under the European Union’s General Data Protection Regulation (GDPR), EU residents have the right to request information you have about them, and have you delete or correct this information.  However, you first have to verify that the request is actually from your customer.  KONFIRMI handles this for you!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>CCPA Compliance:\u003C\u002Fstrong>  KONFIRMI also lets you easily comply with the CCPA!  Under the new California Consumer Privacy Act (CCPA), businesses have to provide California customers with a copy of their personal information held by the business, and delete or correct their information upon request.  However, you first have to verify that the request is from the customer.  KONFIRMI handles this for you automatically!\u003C\u002Fp>\n\u003Cp>+++++++++++++++++\u003C\u002Fp>\n\u003Cp>KONFIRMI allows you to easily get Single- or Multi-Factor Authentication for your customers.\u003C\u002Fp>\n\u003Cp>You can easily pick and choose from many simple or sophisticated verification methods.\u003C\u002Fp>\n\u003Cp>In addition, you can easily swap out one verification method for another, stack or layer various verifications methods together, and ‘mix and match’ different verification methods for use in various parts of your website.\u003C\u002Fp>\n\u003Cp>For example, our most popular combination of verification methods is “SMS\u002FText Code” authentication, combined with “Knowledge Based” or “Information Check” authentication.\u003C\u002Fp>\n\u003Cp>This combination allows you to automatically verify your customer’s phone number or email address with third-party data sources, and then have your customer enter a code sent that same phone number or email address.\u003C\u002Fp>\n\u003Cp>This combination is very hard to spoof, but also is very fast and easy for your customers!\u003C\u002Fp>\n\u003Cp>KONFIRMI works with WooCommerce, as well as various popular contact form plugins.\u003C\u002Fp>\n\u003Cp>For more information, please visit:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fkonfirmi.com\" rel=\"nofollow ugc\">Konfirmi Website\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>+++++++++++++++++\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NEW FEATURES:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Works Internationally:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Your customers can easily change the language they see.  In addition, our app allows you to select the language that your customers will see first.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Easy to Customize:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can easily change the appearance of the parts of our app that your customers see.  You can also add your own company logo for consistent branding on your website.\u003C\u002Fp>\n","KONFIRMI allows you to easily and automatically verify your customer's age, ID, address, and other information.",3317,2,"2023-03-12T20:11:00.000Z","6.1.10","4.9","7.0",[21,72,22,24,73],"id-verification","verify-id","https:\u002F\u002Flogin.konfirmi.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkonfirmi.2.1.3.zip",85,{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":28,"downloaded":85,"rating":28,"num_ratings":28,"last_updated":25,"tested_up_to":16,"requires_at_least":86,"requires_php":87,"tags":88,"homepage":91,"download_link":92,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":93},"idenfy-for-woocommerce","iDenfy for WooCommerce","2.0.0","idenfy","https:\u002F\u002Fprofiles.wordpress.org\u002Fidenfy\u002F","\u003Cp>\u003Cstrong>iDenfy for WooCommerce\u003C\u002Fstrong> lets you require identity verification from your customers before they can complete a purchase. Whether you need to meet KYC\u002FAML compliance, prevent fraud, or verify age — this plugin handles it without you having to build anything from scratch.\u003C\u002Fp>\n\u003Ch4>What it does\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>ID Document Verification\u003C\u002Fstrong> — Supports passports, national IDs, driver’s licenses, and more from 200+ countries\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Facial Recognition\u003C\u002Fstrong> — Matches the customer’s face to their ID photo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>3D Liveness Detection\u003C\u002Fstrong> — Confirms the person is real and physically present\u003C\u002Fli>\n\u003Cli>\u003Cstrong>24\u002F7 Human Supervision\u003C\u002Fstrong> — Every verification is reviewed by iDenfy’s team for accuracy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>A customer reaches checkout (or their account page, depending on your settings)\u003C\u002Fli>\n\u003Cli>They’re prompted to verify their identity through iDenfy\u003C\u002Fli>\n\u003Cli>Once verified, they can proceed normally — no repeated checks on future orders\u003C\u002Fli>\n\u003Cli>You get full visibility into verification statuses from your WordPress admin\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Three verification modes\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Before Checkout\u003C\u002Fstrong> — A verification modal appears at checkout. Customers must verify before placing an order.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>My Account\u003C\u002Fstrong> — Customers verify from their account dashboard. Unverified users can’t access checkout at all.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Rules\u003C\u002Fstrong> — Only require verification when specific conditions are met: cart total exceeds a threshold, or the cart contains certain products, categories, or tags.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Built for modern WooCommerce\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works with both \u003Cstrong>classic shortcode checkout\u003C\u002Fstrong> and \u003Cstrong>WooCommerce Blocks checkout\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Compatible with \u003Cstrong>High-Performance Order Storage (HPOS)\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Automatic webhook handling — verification results sync in real time\u003C\u002Fli>\n\u003Cli>Custom order status for flagged orders (“Suspected by iDenfy”)\u003C\u002Fli>\n\u003Cli>Admin column on the Users page showing each customer’s verification status\u003C\u002Fli>\n\u003Cli>Name matching option to compare billing name against verified ID\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What you’ll need\u003C\u002Fh4>\n\u003Cp>An iDenfy account with API credentials. Don’t have one yet? \u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\u002Fget-started\u002F?source=wordpress\" rel=\"nofollow ugc\">Sign up here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FN9KGl7OvJxg?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Third-Party Service\u003C\u002Fh3>\n\u003Cp>This plugin relies on the \u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\" rel=\"nofollow ugc\">iDenfy\u003C\u002Fa> identity verification service to perform customer verification. When a customer initiates verification, the following data is sent to iDenfy’s servers:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A unique client identifier\u003C\u002Fli>\n\u003Cli>Redirect URLs for your store\u003C\u002Fli>\n\u003Cli>Optionally, the customer’s first and last name (if name matching is enabled)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The customer then completes the verification process on iDenfy’s platform, which may include uploading identity documents and a facial scan.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service website\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\" rel=\"nofollow ugc\">idenfy.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\u002Fterms-and-conditions\u002F\" rel=\"nofollow ugc\">idenfy.com\u002Fterms-and-conditions\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">idenfy.com\u002Fprivacy-policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Copyright and Trademarks\u003C\u002Fh3>\n\u003Cp>iDenfy is a registered trademark of UAB “Identifikaciniai Projektai” \u002F UAB “iDenfy”.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.idenfy.com\" rel=\"nofollow ugc\">idenfy.com\u003C\u002Fa>\u003C\u002Fp>\n","Add identity verification to your WooCommerce store. Verify customers before checkout with ID checks — powered by iDenfy.",142,"4.6","7.1",[21,89,90,22,23],"aml","fraud-prevention","https:\u002F\u002Fwww.idenfy.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fidenfy-for-woocommerce.2.0.0.zip","2026-03-15T10:48:56.248Z",{"slug":20,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":51,"tags":108,"homepage":112,"download_link":113,"security_score":114,"vuln_count":115,"unpatched_count":28,"last_vuln_date":116,"fetched_at":30},"Age Gate","3.7.2","Phil","https:\u002F\u002Fprofiles.wordpress.org\u002Fphilsbury\u002F","\u003Cp>There are many uses for restricting content based on age, be it movie trailers, beer or other adult themes. This plugin allows you to set a restriction on what content can been seen or restricted based on the age of the user.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Ask users to verify their age on page load\u003C\u002Fli>\n\u003Cli>SEO Friendly – common bots and crawlers are omitted from age checks\u003C\u002Fli>\n\u003Cli>Ability to add custom user agents for less common bots\u003C\u002Fli>\n\u003Cli>Shortcode for in content restrictions\u003C\u002Fli>\n\u003Cli>Choose to restrict an entire site, or selected content\u003C\u002Fli>\n\u003Cli>Select a different age on individual content\u003C\u002Fli>\n\u003Cli>Allow certain content to not be age gated under “all content” mode\u003C\u002Fli>\n\u003Cli>Three choices for input; dropdowns, input fields or a simple yes\u002Fno button\u003C\u002Fli>\n\u003Cli>Customise the order of the inputs based on your region (DD MM YYYY or MM DD YYYY)\u003C\u002Fli>\n\u003Cli>Allow a “remember me” check box if desired\u003C\u002Fli>\n\u003Cli>Ability to omit logged in users from being checked\u003C\u002Fli>\n\u003Cli>Add your own logo\u003C\u002Fli>\n\u003Cli>Update the text displayed on the entry form\u003C\u002Fli>\n\u003Cli>Select background colour\u002Fimage, foreground colour and text colour\u003C\u002Fli>\n\u003Cli>Use built in styling out of the box, or your own custom style\u003C\u002Fli>\n\u003Cli>Ability to add legal note or information to the bottom of the form\u003C\u002Fli>\n\u003Cli>Redirect failed logins to a URL of your choice e.g. an alcohol awareness website.\u003C\u002Fli>\n\u003Cli>Ability to use a non caching version\u003C\u002Fli>\n\u003Cli>Various hooks to add even more customisation such as additional form fields\u003C\u002Fli>\n\u003Cli>Compatible with multilingual plugins WPML, Polylang (2.3+), WP Multilang\u003C\u002Fli>\n\u003C\u002Ful>\n","A plugin to check the age of a visitor before view site or specified content",40000,1356527,92,64,"2025-10-22T19:24:00.000Z","6.8.5","6.0.0",[109,20,110,21,111],"adults-only","age-restriction","age-verify","https:\u002F\u002Fagegate.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate.3.7.2.zip",90,5,"2025-04-09 00:00:00",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":27,"num_ratings":127,"last_updated":128,"tested_up_to":25,"requires_at_least":129,"requires_php":130,"tags":131,"homepage":25,"download_link":134,"security_score":76,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"age-gate-lite","Age Gate Lite","0.0.7","SiD","https:\u002F\u002Fprofiles.wordpress.org\u002Fsiddhu09rocks\u002F","\u003Cp>If your content or products are about cannabis, alcohol, gambling or other adult content.\u003C\u002Fp>\n\u003Cp>Age Gate Lite makes it easier then ever to configure and style an age restriction pop up to protect younger audience.\u003C\u002Fp>\n\u003Cp>It is designed to be user friendly, simple lightweight and only requires users to confirm their age ( Yes \u002F No ).\u003C\u002Fp>\n\u003Cp>This plugin is absolutely, 100% free.\u003C\u002Fp>\n\u003Cp>Success message section included can be used for Email \u002F Newsletter Opt-in or Promotional messages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Devs 👨‍💻\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Avaliable JS Event Listeners – agl_passed & agl_failed.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cscript>\n    document.addEventListener(\"agl_passed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Passed ;\n    });\n\n    document.addEventListener(\"agl_failed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Failed');\n    });\n\u003C\u002Fscript>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","A lightweight, customisable age gate to lock content from younger audience.",2000,14687,6,"2022-07-13T01:28:00.000Z","4.0","5.2.4",[132,20,21,111,133],"age","cannabis","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate-lite.zip",{"attackSurface":136,"codeSignals":597,"taintFlows":906,"riskAssessment":987,"analyzedAt":1004},{"hooks":137,"ajaxHandlers":548,"restRoutes":577,"shortcodes":586,"cronEvents":594,"entryPointCount":246,"unprotectedCount":219},[138,144,148,153,157,162,167,172,175,179,183,187,191,195,198,203,206,210,212,216,220,224,227,231,234,238,242,247,250,254,258,261,266,269,273,276,278,280,284,287,291,295,299,303,305,307,311,314,318,322,324,327,332,335,339,343,346,349,352,356,360,364,367,371,375,378,382,384,387,389,391,395,398,401,405,408,410,414,417,420,422,424,428,433,436,439,441,444,446,449,452,455,458,460,464,465,468,471,473,475,478,479,482,485,488,491,494,497,499,502,507,509,513,516,519,522,525,528,529,533,535,539,541,544],{"type":139,"name":140,"callback":141,"priority":47,"file":142,"line":143},"action","activated_plugin","handle_activated_plugin","admin\\class-plugin-updates.php",23,{"type":139,"name":145,"callback":146,"priority":47,"file":142,"line":147},"deactivated_plugin","handle_deactivated_plugin",26,{"type":149,"name":150,"callback":151,"priority":47,"file":142,"line":152},"filter","upgrader_pre_install","handle_upgrader_pre_install",29,{"type":139,"name":154,"callback":155,"priority":47,"file":142,"line":156},"upgrader_process_complete","handle_upgrader_process_complete",32,{"type":139,"name":158,"callback":159,"file":160,"line":161},"init","closure","admin\\class-quickstart.php",17,{"type":139,"name":163,"callback":164,"file":165,"line":166},"widgets_init","anonymous","admin\\class-webhooks.php",13,{"type":139,"name":168,"callback":169,"priority":170,"file":165,"line":171},"tot_webhook_success","webhook_success_logger",99,14,{"type":139,"name":173,"callback":174,"priority":170,"file":165,"line":14},"tot_webhook_rejected","webhook_rejected_logger",{"type":139,"name":176,"callback":177,"priority":170,"file":165,"line":178},"wp","process_route_from_wp",18,{"type":139,"name":180,"callback":181,"file":182,"line":166},"in_admin_header","embedForScheduling","admin\\embed-avoma-scheduler.php",{"type":139,"name":184,"callback":185,"file":186,"line":14},"admin_init","maybe_redirect_to_get_started","admin\\plugin-activation.php",{"type":139,"name":184,"callback":188,"file":189,"line":190},"tot_settings_init","admin\\settings-page\\fields.php",19,{"type":139,"name":192,"callback":193,"file":189,"line":194},"load-toplevel_page_totsettings","tot_load_settings_page",27,{"type":139,"name":196,"callback":159,"file":189,"line":197},"admin_enqueue_scripts",372,{"type":139,"name":199,"callback":200,"file":201,"line":202},"admin_menu","tot_options_page","admin\\settings-page\\menu-item.php",3,{"type":139,"name":196,"callback":204,"file":201,"line":205},"tot_admin_settings_style",4,{"type":139,"name":207,"callback":159,"file":208,"line":209},"rest_api_init","admin\\setup-wizard\\class-setup-wizard.php",35,{"type":139,"name":196,"callback":159,"file":208,"line":211},45,{"type":149,"name":213,"callback":214,"priority":47,"file":215,"line":127},"manage_users_columns","tot_modify_user_table","admin\\user-panels.php",{"type":149,"name":217,"callback":218,"priority":47,"file":215,"line":219},"manage_users_custom_column","tot_modify_user_table_row",7,{"type":139,"name":221,"callback":222,"file":215,"line":223},"show_user_profile","tot_custom_user_profile_fields",8,{"type":139,"name":225,"callback":222,"file":215,"line":226},"edit_user_profile",9,{"type":139,"name":228,"callback":229,"priority":47,"file":230,"line":166},"tot_set_connection_success","set_connection_success","examples\\action--set-connection.php",{"type":139,"name":232,"callback":233,"priority":47,"file":230,"line":171},"tot_set_connection_failed","set_connection_failed",{"type":149,"name":235,"callback":236,"priority":47,"file":237,"line":166},"tot_set_connection_app_data","add_location_data","examples\\filter--set-connection-app-data.php",{"type":149,"name":239,"callback":240,"priority":47,"file":241,"line":166},"tot_is_verification_required_for_order","is_verification_required_for_order","examples\\filter--wc-is_verification_required_for_order.php",{"type":149,"name":243,"callback":244,"priority":47,"file":245,"line":246},"tot_order_verification_data","set_data","examples\\filter--wc-order-verification-data.php",11,{"type":149,"name":248,"callback":244,"priority":47,"file":245,"line":249},"tot_verify_person_data",12,{"type":149,"name":251,"callback":252,"priority":47,"file":253,"line":14},"tot_process_order_set_quarantine","set_quarantine","examples\\filter--wc-process-order-set-quarantine.php",{"type":149,"name":255,"callback":256,"priority":47,"file":257,"line":14},"block_categories_all","tot_register_block_category","gutenberg-blocks\\class-blocks-controller.php",{"type":139,"name":158,"callback":259,"file":257,"line":260},"tot_register_blocks",21,{"type":149,"name":262,"callback":263,"priority":264,"file":265,"line":202},"um_account_page_default_tabs_hook","tot_add_custom_account_tab",1000,"integrations\\ultimate-member\\um_account_page.php",{"type":149,"name":267,"callback":268,"file":265,"line":115},"um_account_content_hook_verification","tot_um_profile_account_content_verification",{"type":149,"name":270,"callback":271,"priority":264,"file":272,"line":127},"um_profile_tabs","tot_add_custom_profile_tab","integrations\\ultimate-member\\um_profile_page.php",{"type":139,"name":199,"callback":274,"file":275,"line":115},"tot_submenu","integrations\\ultimate-member\\um_settings_menu.php",{"type":139,"name":184,"callback":277,"file":275,"line":127},"tot_ultimate_member_settings",{"type":139,"name":196,"callback":279,"file":275,"line":219},"tot_load_um_scripts",{"type":139,"name":281,"callback":159,"file":282,"line":283},"plugins_loaded","integrations\\woocommerce\\abstract-product-sync.php",150,{"type":139,"name":158,"callback":285,"file":282,"line":286},"initialize",155,{"type":139,"name":207,"callback":288,"priority":115,"file":289,"line":290},"rest_hooks","integrations\\woocommerce\\blocks\\Block_Checkout.php",34,{"type":139,"name":292,"callback":293,"file":289,"line":294},"woocommerce_blocks_checkout_block_registration","integrate_tot_components",48,{"type":139,"name":296,"callback":297,"priority":47,"file":289,"line":298},"woocommerce_store_api_cart_errors","check_errors_before_processing_cart",72,{"type":139,"name":300,"callback":301,"priority":34,"file":289,"line":302},"woocommerce_store_api_checkout_order_processed","after_order_processed",83,{"type":139,"name":163,"callback":285,"file":304,"line":178},"integrations\\woocommerce\\class-admin.php",{"type":139,"name":306,"callback":159,"file":304,"line":260},"before_woocommerce_init",{"type":139,"name":308,"callback":309,"priority":47,"file":304,"line":310},"add_meta_boxes","order_detail_meta_boxes",36,{"type":139,"name":196,"callback":312,"file":304,"line":313},"enqueue_scripts",37,{"type":149,"name":315,"callback":316,"priority":14,"file":304,"line":317},"manage_edit-shop_order_columns","show_tot_status",46,{"type":139,"name":319,"callback":320,"priority":11,"file":304,"line":321},"manage_shop_order_posts_custom_column","tot_shop_orders_verified_indicator",47,{"type":149,"name":323,"callback":316,"priority":14,"file":304,"line":11},"manage_woocommerce_page_wc-orders_columns",{"type":139,"name":325,"callback":320,"priority":11,"file":304,"line":326},"manage_woocommerce_page_wc-orders_custom_column",51,{"type":139,"name":328,"callback":329,"file":330,"line":331},"wp_enqueue_scripts","enqueue_javascript","integrations\\woocommerce\\class-checkout.php",63,{"type":149,"name":333,"callback":334,"file":330,"line":104},"wc_order_statuses","add_awaiting_verification_to_order_statuses",{"type":139,"name":336,"callback":337,"file":330,"line":338},"woocommerce_review_order_before_submit","checkout_field_verification_acknowledgement",67,{"type":139,"name":340,"callback":341,"file":330,"line":342},"woocommerce_checkout_process","checkout_field_validation",68,{"type":139,"name":344,"callback":345,"priority":34,"file":330,"line":298},"woocommerce_checkout_update_order_meta","process_order",{"type":139,"name":347,"callback":345,"priority":34,"file":330,"line":348},"woocommerce_checkout_order_created",73,{"type":139,"name":350,"callback":345,"priority":34,"file":330,"line":351},"woocommerce_checkout_order_processed",74,{"type":139,"name":353,"callback":354,"priority":47,"file":330,"line":355},"woocommerce_order_status_changed","post_payment_status_check",75,{"type":139,"name":357,"callback":358,"priority":170,"file":330,"line":359},"woocommerce_before_template_part","handle_order_complete_notice_and_modal",77,{"type":149,"name":361,"callback":362,"file":330,"line":363},"body_class","add_body_class",78,{"type":139,"name":168,"callback":365,"priority":47,"file":330,"line":366},"default_autoprocess_webhook",81,{"type":139,"name":368,"callback":369,"file":330,"line":370},"template_redirect","order_lookup_redirect",82,{"type":139,"name":372,"callback":373,"file":330,"line":374},"woocommerce_checkout_update_order_review","donation_update_order_review",89,{"type":139,"name":376,"callback":377,"file":330,"line":114},"woocommerce_review_order_before_order_total","add_donation_checkbox_before_total",{"type":139,"name":379,"callback":380,"file":330,"line":381},"woocommerce_before_calculate_totals","attach_donation_to_cart_before_creating_order",91,{"type":139,"name":350,"callback":383,"priority":170,"file":330,"line":103},"store_donation_info_to_order",{"type":139,"name":385,"callback":385,"file":330,"line":386},"woocommerce_init",2385,{"type":139,"name":184,"callback":285,"priority":47,"file":330,"line":388},2390,{"type":139,"name":176,"callback":285,"priority":115,"file":330,"line":390},2392,{"type":139,"name":392,"callback":393,"priority":47,"file":330,"line":394},"woocommerce_cart_item_removed","refresh_session",2403,{"type":139,"name":396,"callback":393,"priority":47,"file":330,"line":397},"woocommerce_add_to_cart",2404,{"type":139,"name":399,"callback":393,"priority":47,"file":330,"line":400},"woocommerce_after_cart_item_quantity_update",2405,{"type":139,"name":402,"callback":403,"file":330,"line":404},"woocommerce_cart_calculate_fees","tot_calculate_excise_taxes",2408,{"type":139,"name":350,"callback":406,"file":330,"line":407},"tot_save_taxCollected",2411,{"type":139,"name":300,"callback":406,"file":330,"line":409},2412,{"type":139,"name":411,"callback":412,"priority":34,"file":330,"line":413},"woocommerce_order_payment_status_changed","tot_send_taxCollected",2415,{"type":139,"name":350,"callback":415,"priority":47,"file":330,"line":416},"tot_store_orderType",2417,{"type":139,"name":350,"callback":418,"file":330,"line":419},"tot_sync_order",2423,{"type":139,"name":300,"callback":418,"file":330,"line":421},2424,{"type":139,"name":411,"callback":418,"file":330,"line":423},2427,{"type":139,"name":158,"callback":425,"file":426,"line":427},"handle_export_table","integrations\\woocommerce\\class-donations.php",96,{"type":139,"name":429,"callback":430,"priority":34,"file":431,"line":432},"woocommerce_product_options_general_product_data","get_tot_products","integrations\\woocommerce\\class-product-sync.php",59,{"type":139,"name":434,"callback":430,"priority":34,"file":431,"line":435},"woocommerce_admin_process_product_object",61,{"type":139,"name":429,"callback":437,"priority":47,"file":431,"line":438},"add_fields",66,{"type":139,"name":434,"callback":440,"priority":47,"file":431,"line":342},"save_fields",{"type":149,"name":442,"callback":443,"file":431,"line":298},"woocommerce_product_export_column_names","add_wc_export_columns",{"type":149,"name":445,"callback":443,"file":431,"line":348},"woocommerce_product_export_product_default_columns",{"type":149,"name":447,"callback":443,"file":431,"line":448},"woocommerce_csv_product_import_mapping_options",88,{"type":149,"name":450,"callback":451,"priority":47,"file":431,"line":374},"woocommerce_product_import_pre_insert_product_object","wc_process_import",{"type":149,"name":453,"callback":454,"file":431,"line":114},"woocommerce_csv_product_import_mapping_default_columns","add_wc_columns_to_mapping_screen",{"type":139,"name":385,"callback":456,"file":457,"line":190},"register_wordpress_hooks_after_load","integrations\\woocommerce\\class-settings.php",{"type":139,"name":199,"callback":459,"file":457,"line":194},"create_page",{"type":139,"name":461,"callback":462,"file":457,"line":463},"admin_notices","admin_notice",28,{"type":139,"name":184,"callback":184,"file":457,"line":152},{"type":139,"name":466,"callback":437,"priority":47,"file":467,"line":463},"woocommerce_product_after_variable_attributes","integrations\\woocommerce\\class-variation-sync.php",{"type":139,"name":469,"callback":470,"priority":47,"file":467,"line":152},"woocommerce_save_product_variation","prepare_api_data",{"type":139,"name":472,"callback":440,"priority":34,"file":467,"line":35},"woocommerce_ajax_save_product_variations",{"type":139,"name":306,"callback":159,"file":474,"line":359},"integrations\\woocommerce\\wc-admin.php",{"type":149,"name":476,"callback":159,"file":477,"line":115},"cron_schedules","integrations\\woocommerce\\wc-cron.php",{"type":139,"name":158,"callback":159,"file":477,"line":178},{"type":139,"name":480,"callback":481,"file":477,"line":463},"tot_sync_orders","cron_syncing",{"type":139,"name":158,"callback":159,"file":483,"line":484},"integrations\\woocommerce\\woocommerce.php",33,{"type":139,"name":196,"callback":159,"file":486,"line":487},"Modules\\Shared\\Settings\\Page.php",143,{"type":139,"name":168,"callback":489,"priority":47,"file":490,"line":209},"tot_webhook_settings","Modules\\Shared\\Settings.php",{"type":139,"name":184,"callback":492,"file":493,"line":310},"tot_taxes_maybe_disable","Modules\\Tax\\token-of-trust-taxes.php",{"type":139,"name":461,"callback":495,"file":493,"line":496},"tot_taxes_disabled_notice",54,{"type":139,"name":158,"callback":159,"file":498,"line":127},"Modules\\Verification\\Shared\\cron.php",{"type":139,"name":500,"callback":501,"file":498,"line":161},"tot_get_faq_page","tot_scrap_faq_page",{"type":139,"name":503,"callback":504,"priority":47,"file":505,"line":506},"shutdown","store_all_operations","Modules\\Verification\\Shared\\Debugger.php",43,{"type":139,"name":503,"callback":508,"priority":249,"file":505,"line":317},"store_logs_to_db",{"type":139,"name":461,"callback":510,"priority":249,"file":511,"line":512},"tot_display_flash_notices","Modules\\Verification\\Shared\\flash-notice-queue.php",58,{"type":139,"name":514,"callback":159,"file":515,"line":223},"wp_headers","Modules\\Verification\\Shared\\shortcode-tot-reputation-status.php",{"type":139,"name":163,"callback":517,"priority":226,"file":518,"line":127},"tot_widgets_init","Modules\\Verification\\Shared\\tot-request-utils.php",{"type":139,"name":520,"callback":521,"priority":226,"file":518,"line":219},"wp_loaded","tot_wp_loaded",{"type":139,"name":368,"callback":523,"priority":170,"file":524,"line":226},"tot_verification_gates","Modules\\Verification\\Shared\\verification_requirements.php",{"type":139,"name":526,"callback":527,"priority":66,"file":524,"line":47},"wp_footer","tot_debug_verification_gates",{"type":139,"name":163,"callback":164,"file":524,"line":178},{"type":139,"name":281,"callback":530,"file":531,"line":532},"tot_load_plugin_textdomain","token-of-trust.php",62,{"type":139,"name":158,"callback":159,"file":531,"line":534},84,{"type":149,"name":536,"callback":537,"priority":170,"file":538,"line":143},"auto_update_plugin","tot_prevent_dangerous_auto_updates","upgrades\\detection.php",{"type":139,"name":184,"callback":540,"file":538,"line":321},"tot_run_upgrades",{"type":139,"name":461,"callback":542,"file":538,"line":543},"tot_ssl_not_configured_notice",105,{"type":139,"name":545,"callback":546,"priority":47,"file":547,"line":202},"user_register","tot_new_user_tot_connection","users\\new-user-tot-connection.php",[549,554,558,560,564,568,572,574],{"action":550,"nopriv":551,"callback":552,"hasNonce":551,"hasCapCheck":551,"file":160,"line":553},"tot_quickstart_settings",false,"handle_request",22,{"action":555,"nopriv":551,"callback":556,"hasNonce":551,"hasCapCheck":551,"file":557,"line":302},"tot_verify_person","process_request","api\\client-api-verify-person.php",{"action":555,"nopriv":559,"callback":556,"hasNonce":551,"hasCapCheck":551,"file":557,"line":534},true,{"action":561,"nopriv":551,"callback":562,"hasNonce":551,"hasCapCheck":559,"file":304,"line":563},"tot_wc_order_unquarantine","order_unquarantine",38,{"action":565,"nopriv":551,"callback":566,"hasNonce":551,"hasCapCheck":559,"file":304,"line":567},"tot_wc_email_reminder","email_reminder",39,{"action":569,"nopriv":551,"callback":570,"hasNonce":551,"hasCapCheck":551,"file":304,"line":571},"tot_woo_order_sync","ajax_sync_between_dates",40,{"action":573,"nopriv":551,"callback":430,"hasNonce":551,"hasCapCheck":551,"file":467,"line":190},"woocommerce_load_variations",{"action":575,"nopriv":551,"callback":430,"hasNonce":551,"hasCapCheck":551,"file":467,"line":576},"woocommerce_save_variations",20,[578],{"namespace":579,"route":580,"methods":581,"callback":583,"permissionCallback":584,"file":289,"line":585},"tot\u002Fv1","\u002Fcheck-verification-required",[582],"POST","check_verification_required_callback","__return_true",60,[587,590],{"tag":588,"callback":589,"file":515,"line":576},"tot-reputation-status","tot_reputation_status_shortcode",{"tag":591,"callback":592,"file":593,"line":202},"tot-wp-embed","tot_wp_embed_shortcode","Modules\\Verification\\Shared\\shortcode-tot-wp-embed.php",[595,596],{"hook":480,"callback":480,"file":477,"line":553},{"hook":500,"callback":500,"file":498,"line":249},{"dangerousFunctions":598,"sqlUsage":599,"outputEscaping":606,"fileOperations":14,"externalRequests":166,"nonceChecks":202,"capabilityChecks":171,"bundledLibraries":899},[],{"prepared":34,"raw":66,"locations":600},[601,604],{"file":498,"line":602,"context":603},41,"$wpdb->query() with variable interpolation",{"file":498,"line":605,"context":603},44,{"escaped":607,"rawEcho":608,"locations":609},169,173,[610,613,614,616,618,619,620,621,622,623,625,626,627,629,631,632,633,634,635,636,637,638,639,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,679,680,681,682,683,684,685,686,688,690,692,694,697,699,701,703,705,707,709,710,712,714,716,719,720,722,724,726,727,729,731,733,735,737,739,741,743,745,747,749,751,752,754,755,756,757,758,759,760,762,765,767,768,769,771,773,774,775,776,777,778,779,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,809,810,812,814,815,816,817,818,820,822,823,824,825,827,828,829,830,831,832,833,834,835,837,839,841,843,845,847,849,851,853,854,856,858,860,862,864,866,868,870,871,873,875,877,879,881,883,886,888,890,891,894,897],{"file":160,"line":611,"context":612},31,"raw output",{"file":160,"line":484,"context":612},{"file":615,"line":576,"context":612},"admin\\settings-page\\common\\tot-quickstart-modal.php",{"file":615,"line":617,"context":612},24,{"file":615,"line":194,"context":612},{"file":615,"line":563,"context":612},{"file":615,"line":506,"context":612},{"file":615,"line":605,"context":612},{"file":615,"line":317,"context":612},{"file":615,"line":624,"context":612},57,{"file":615,"line":532,"context":612},{"file":615,"line":331,"context":612},{"file":615,"line":628,"context":612},65,{"file":630,"line":611,"context":612},"admin\\settings-page\\educational-content-div.php",{"file":630,"line":611,"context":612},{"file":630,"line":611,"context":612},{"file":630,"line":611,"context":612},{"file":630,"line":209,"context":612},{"file":630,"line":506,"context":612},{"file":630,"line":506,"context":612},{"file":630,"line":506,"context":612},{"file":630,"line":506,"context":612},{"file":630,"line":211,"context":612},{"file":189,"line":641,"context":612},491,{"file":189,"line":643,"context":612},510,{"file":189,"line":645,"context":612},524,{"file":189,"line":647,"context":612},539,{"file":189,"line":649,"context":612},554,{"file":189,"line":651,"context":612},570,{"file":189,"line":653,"context":612},580,{"file":189,"line":655,"context":612},594,{"file":189,"line":657,"context":612},621,{"file":189,"line":659,"context":612},641,{"file":189,"line":661,"context":612},651,{"file":189,"line":663,"context":612},655,{"file":189,"line":665,"context":612},664,{"file":189,"line":667,"context":612},678,{"file":189,"line":669,"context":612},701,{"file":189,"line":671,"context":612},711,{"file":673,"line":496,"context":612},"admin\\settings-page\\view-change-license-alert.php",{"file":675,"line":161,"context":612},"admin\\settings-page\\view-debug-error.php",{"file":677,"line":161,"context":612},"admin\\settings-page\\view-donations.php",{"file":677,"line":161,"context":612},{"file":677,"line":617,"context":612},{"file":677,"line":147,"context":612},{"file":677,"line":194,"context":612},{"file":677,"line":35,"context":612},{"file":677,"line":211,"context":612},{"file":677,"line":294,"context":612},{"file":677,"line":326,"context":612},{"file":687,"line":194,"context":612},"admin\\settings-page\\view-live-mode.php",{"file":687,"line":689,"context":612},53,{"file":691,"line":34,"context":612},"admin\\settings-page\\view-logs.php",{"file":693,"line":34,"context":612},"admin\\settings-page\\view-plugin-updates.php",{"file":695,"line":696,"context":612},"admin\\settings-page\\view-quickstart.php",161,{"file":695,"line":698,"context":612},477,{"file":695,"line":700,"context":612},492,{"file":695,"line":702,"context":612},507,{"file":695,"line":704,"context":612},626,{"file":695,"line":706,"context":612},627,{"file":695,"line":708,"context":612},629,{"file":695,"line":708,"context":612},{"file":695,"line":711,"context":612},645,{"file":695,"line":713,"context":612},659,{"file":695,"line":715,"context":612},661,{"file":717,"line":718,"context":612},"admin\\settings-page\\view-settings.php",55,{"file":717,"line":104,"context":612},{"file":717,"line":721,"context":612},69,{"file":717,"line":723,"context":612},103,{"file":717,"line":725,"context":612},153,{"file":717,"line":725,"context":612},{"file":717,"line":728,"context":612},212,{"file":717,"line":730,"context":612},233,{"file":717,"line":732,"context":612},234,{"file":717,"line":734,"context":612},235,{"file":717,"line":736,"context":612},236,{"file":738,"line":34,"context":612},"admin\\settings-page\\view-webhooks.php",{"file":215,"line":740,"context":612},101,{"file":215,"line":742,"context":612},110,{"file":215,"line":744,"context":612},117,{"file":215,"line":746,"context":612},119,{"file":215,"line":748,"context":612},125,{"file":215,"line":750,"context":612},137,{"file":215,"line":696,"context":612},{"file":215,"line":753,"context":612},171,{"file":230,"line":576,"context":612},{"file":230,"line":260,"context":612},{"file":230,"line":553,"context":612},{"file":230,"line":194,"context":612},{"file":230,"line":463,"context":612},{"file":230,"line":152,"context":612},{"file":761,"line":11,"context":612},"gutenberg-blocks\\reputation-status\\render.php",{"file":763,"line":764,"context":612},"gutenberg-blocks\\wp-embed\\render.php",76,{"file":766,"line":602,"context":612},"integrations\\buddypress\\buddypress.php",{"file":766,"line":506,"context":612},{"file":766,"line":321,"context":612},{"file":766,"line":770,"context":612},49,{"file":265,"line":772,"context":612},16,{"file":265,"line":326,"context":612},{"file":265,"line":628,"context":612},{"file":265,"line":338,"context":612},{"file":272,"line":553,"context":612},{"file":272,"line":617,"context":612},{"file":272,"line":463,"context":612},{"file":272,"line":35,"context":612},{"file":275,"line":781,"context":612},163,{"file":275,"line":783,"context":612},180,{"file":275,"line":785,"context":612},184,{"file":275,"line":787,"context":612},205,{"file":275,"line":789,"context":612},210,{"file":275,"line":791,"context":612},228,{"file":275,"line":793,"context":612},246,{"file":275,"line":795,"context":612},264,{"file":304,"line":797,"context":612},241,{"file":304,"line":799,"context":612},311,{"file":304,"line":801,"context":612},314,{"file":304,"line":803,"context":612},318,{"file":330,"line":805,"context":612},1181,{"file":330,"line":807,"context":612},1182,{"file":431,"line":543,"context":612},{"file":431,"line":543,"context":612},{"file":431,"line":811,"context":612},106,{"file":431,"line":813,"context":612},107,{"file":431,"line":813,"context":612},{"file":431,"line":742,"context":612},{"file":431,"line":742,"context":612},{"file":431,"line":744,"context":612},{"file":431,"line":819,"context":612},118,{"file":431,"line":821,"context":612},124,{"file":431,"line":821,"context":612},{"file":431,"line":748,"context":612},{"file":431,"line":748,"context":612},{"file":431,"line":826,"context":612},129,{"file":467,"line":348,"context":612},{"file":467,"line":351,"context":612},{"file":467,"line":355,"context":612},{"file":467,"line":359,"context":612},{"file":467,"line":359,"context":612},{"file":467,"line":359,"context":612},{"file":467,"line":363,"context":612},{"file":467,"line":13,"context":612},{"file":467,"line":836,"context":612},87,{"file":486,"line":838,"context":612},253,{"file":486,"line":840,"context":612},256,{"file":486,"line":842,"context":612},257,{"file":486,"line":844,"context":612},259,{"file":486,"line":846,"context":612},294,{"file":486,"line":848,"context":612},301,{"file":486,"line":850,"context":612},312,{"file":486,"line":852,"context":612},324,{"file":486,"line":197,"context":612},{"file":486,"line":855,"context":612},378,{"file":486,"line":857,"context":612},406,{"file":486,"line":859,"context":612},427,{"file":486,"line":861,"context":612},448,{"file":486,"line":863,"context":612},453,{"file":486,"line":865,"context":612},473,{"file":486,"line":867,"context":612},488,{"file":486,"line":869,"context":612},495,{"file":486,"line":643,"context":612},{"file":486,"line":872,"context":612},540,{"file":486,"line":874,"context":612},544,{"file":486,"line":876,"context":612},545,{"file":486,"line":878,"context":612},551,{"file":486,"line":880,"context":612},568,{"file":486,"line":882,"context":612},573,{"file":884,"line":885,"context":612},"Modules\\Verification\\Shared\\API\\Person.php",268,{"file":884,"line":887,"context":612},331,{"file":889,"line":161,"context":612},"Modules\\Verification\\Shared\\debug.php",{"file":889,"line":194,"context":612},{"file":892,"line":893,"context":612},"Modules\\Verification\\Shared\\tot-api.php",215,{"file":895,"line":896,"context":612},"Modules\\Verification\\Shared\\widget-embed-code.php",102,{"file":895,"line":898,"context":612},104,[900,903],{"name":901,"version":29,"knownCves":902},"Guzzle",[],{"name":904,"version":29,"knownCves":905},"Select2",[],[907,924,937,945,954,963,972],{"entryPoint":908,"graph":909,"unsanitizedCount":202,"severity":923},"get_settings_page (Modules\\Shared\\Settings\\Page.php:246)",{"nodes":910,"edges":921},[911,916],{"id":912,"type":913,"label":914,"file":486,"line":915},"n0","source","$_GET (x3)",247,{"id":917,"type":918,"label":919,"file":486,"line":838,"wp_function":920},"n1","sink","echo() [XSS]","echo",[922],{"from":912,"to":917,"sanitized":551},"medium",{"entryPoint":925,"graph":926,"unsanitizedCount":34,"severity":936},"tot_ajax_notice_handler (admin\\notices.php:5)",{"nodes":927,"edges":934},[928,931],{"id":912,"type":913,"label":929,"file":930,"line":127},"$_POST","admin\\notices.php",{"id":917,"type":918,"label":932,"file":930,"line":219,"wp_function":933},"update_option() [Settings Manipulation]","update_option",[935],{"from":912,"to":917,"sanitized":551},"low",{"entryPoint":938,"graph":939,"unsanitizedCount":34,"severity":936},"\u003Cnotices> (admin\\notices.php:0)",{"nodes":940,"edges":943},[941,942],{"id":912,"type":913,"label":929,"file":930,"line":127},{"id":917,"type":918,"label":932,"file":930,"line":219,"wp_function":933},[944],{"from":912,"to":917,"sanitized":551},{"entryPoint":946,"graph":947,"unsanitizedCount":28,"severity":936},"\u003Cview-change-license-alert> (admin\\settings-page\\view-change-license-alert.php:0)",{"nodes":948,"edges":952},[949,951],{"id":912,"type":913,"label":950,"file":673,"line":246},"$_GET (x2)",{"id":917,"type":918,"label":919,"file":673,"line":602,"wp_function":920},[953],{"from":912,"to":917,"sanitized":559},{"entryPoint":955,"graph":956,"unsanitizedCount":34,"severity":936},"\u003Cview-debug-error> (admin\\settings-page\\view-debug-error.php:0)",{"nodes":957,"edges":961},[958,960],{"id":912,"type":913,"label":959,"file":675,"line":127},"$_GET",{"id":917,"type":918,"label":919,"file":675,"line":161,"wp_function":920},[962],{"from":912,"to":917,"sanitized":551},{"entryPoint":964,"graph":965,"unsanitizedCount":34,"severity":936},"\u003Cview-live-mode> (admin\\settings-page\\view-live-mode.php:0)",{"nodes":966,"edges":970},[967,969],{"id":912,"type":913,"label":968,"file":687,"line":617},"$_SERVER",{"id":917,"type":918,"label":919,"file":687,"line":689,"wp_function":920},[971],{"from":912,"to":917,"sanitized":551},{"entryPoint":973,"graph":974,"unsanitizedCount":115,"severity":936},"\u003CPage> (Modules\\Shared\\Settings\\Page.php:0)",{"nodes":975,"edges":984},[976,977,978,982],{"id":912,"type":913,"label":914,"file":486,"line":915},{"id":917,"type":918,"label":919,"file":486,"line":838,"wp_function":920},{"id":979,"type":913,"label":980,"file":486,"line":981},"n2","$_POST (x2)",80,{"id":983,"type":918,"label":919,"file":486,"line":857,"wp_function":920},"n3",[985,986],{"from":912,"to":917,"sanitized":551},{"from":979,"to":983,"sanitized":551},{"summary":988,"deductions":989},"The 'token-of-trust' plugin v3.32.2 exhibits a concerning security posture due to a significant number of unprotected entry points. While the plugin has no recorded vulnerability history, indicating a potentially low historical risk, the static analysis reveals several areas that warrant attention.  Specifically, 6 out of 8 AJAX handlers and 1 out of 1 REST API route lack authentication checks, creating a substantial attack surface accessible to unauthenticated users.  Furthermore, the taint analysis shows 6 flows with unsanitized paths, a critical indicator of potential vulnerabilities, even though they are not classified as critical or high severity in this specific scan. The moderate percentage of proper output escaping and the usage of prepared statements for SQL queries are positive signs, but the unescaped output and raw SQL queries still present a risk. The presence of bundled libraries like Guzzle and Select2 is standard, but their security depends on their individual patch status, which is not detailed here. Overall, the plugin's strengths lie in its lack of historical vulnerabilities and some good coding practices like prepared statements. However, the numerous unprotected entry points and unsanitized code paths are significant weaknesses that could be exploited.",[990,992,994,996,998,1000,1002],{"reason":991,"points":226},"AJAX handlers without auth checks",{"reason":993,"points":219},"REST API routes without permission callbacks",{"reason":995,"points":223},"Flows with unsanitized paths",{"reason":997,"points":127},"SQL queries not using prepared statements",{"reason":999,"points":205},"Output not properly escaped",{"reason":1001,"points":34},"Nonce checks present",{"reason":1003,"points":34},"Capability checks present","2026-03-16T22:03:31.996Z",{"wat":1006,"direct":1021},{"assetPaths":1007,"generatorPatterns":1013,"scriptPaths":1014,"versionParams":1015},[1008,1009,1010,1011,1012],"\u002Fwp-content\u002Fplugins\u002Ftoken-of-trust\u002Ftoken-of-trust.css","\u002Fwp-content\u002Fplugins\u002Ftoken-of-trust\u002Ftoken-of-trust.js","\u002Fwp-content\u002Fplugins\u002Ftoken-of-trust\u002FModules\u002FShared\u002FAssets\u002Ftot-error-log.js","\u002Fwp-content\u002Fplugins\u002Ftoken-of-trust\u002Fanalytics\u002Fbuild\u002FanalyticsTracker.bundle.js","\u002Fwp-content\u002Fplugins\u002Ftoken-of-trust\u002Fadmin\u002Fplugin-deactivation\u002Fassets\u002Fscripts\u002Fplugin-deactivation.js",[],[1009,1010,1011,1012],[1016,1017,1018,1019,1020],"token-of-trust.css?ver=","token-of-trust.js?ver=","tot-error-log.js?ver=","analyticsTracker.bundle.js?ver=","plugin-deactivation.js?ver=",{"cssClasses":1022,"htmlComments":1024,"htmlAttributes":1025,"restEndpoints":1033,"jsGlobals":1036,"shortcodeOutput":1039},[1023],"tot-taxes-notice",[],[1026,1027,1028,1029,1030,1031,1032],"data-tot-host","data-tot-version","data-tot-app-domain","data-tot-rest-url","data-tot-nonce","data-tot-app-user-email","data-tot-verification-required-page-link",[1034,1035],"\u002Fwp-json\u002Ftot\u002Fv1\u002Fwebhooks","\u002Fwp-json\u002Ftot\u002Fv1\u002Fclient-api\u002Fverify-person",[1037,1038],"totObj","totPluginDeactivationData",[]]