[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1nuvpHAqWfESUz_k-YR7wGDvKZLgRt7_vf7l_J9W6p8":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":18,"download_link":25,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":36,"analysis":140,"fingerprints":805},"office-visits-logbook","Visitor Check-In\u002FCheck-Out Logbook – WordPress Visitor Management","1.1.3","v20202020","https:\u002F\u002Fprofiles.wordpress.org\u002Fv20202020\u002F","\u003Cp>Your company is still using paper log sheets for office visitors? Everything is digital and paperless now. Being paperless can also save trees and protect the environment. We provide you an efficient plugin for your company office visitors to sign in and sign out. Data is saved in the same MySQL database for your WordPress website.\u003C\u002Fp>\n\u003Cp>You do not need paper office visit logbook any more! And you can search office visit history easily. So efficient and easy to use.\u003C\u002Fp>\n\u003Cp>This office visits logbook plugin is for the sign-in and sign-out of office interview, business, meeting, etc. You can add any new visit type categories and new visit types if you want. For example, for hospitals and clinics, you can add new visit types such as surgery, emergency, ICU. For dental offices, you can add new visit types such as wash teeth, root canal, dental implants, wisdom tooth extraction, reconstructive surgery, and cosmetic surgery.\u003C\u002Fp>\n\u003Cp>By default, this plugin uses Bootstrap (https:\u002F\u002Fgetbootstrap.com\u002F) for the formatting. But sometimes you already have your own formatting css files. So you may need to remove these Bootstrap css and javascript files when you use this plugin. If this is the case, you can choose not to use Bootstrap’s css and javascript files by changing the values of USE_BOOTSTRAP_JS and USE_BOOTSTRAP_CSS to no (0) in the constant table.\u003C\u002Fp>\n\u003Cp>If you did not find USE_BOOTSTRAP_JS and USE_BOOTSTRAP_CSS in your constant table, please deactivate this plugin and activate it again. Then USE_BOOTSTRAP_JS and USE_BOOTSTRAP_CSS will be automatically added to your constant table.\u003C\u002Fp>\n\u003Cp>If you find out that the search result is not showing all the fields’ data, you can try to re-create stored procedures in the admin plugin page. Go to admin page, click “Settings”, and then click “Office Visits Logbook”. Then click tab “Re-create stored procedures”, and press the button to re-create all the stored procedures again.\u003C\u002Fp>\n\u003Cp>This plugin has the web accessibility feature for the disabled people to listen to the screen reader. The disabled people just need to press the tab key to access the elements on the page. Then use keyboard to input. Then press enter key for submit, reset and cancel. To use this feature, you can download and use any screen reader software such as NVDA (for Windows), VoiceOver (for Apple), etc. Most of this kind of software is free to download and use.\u003C\u002Fp>\n\u003Cp>By default, the landing page shows all the visits. But sometimes you want to protect other visitors’ privacy and hide other visits’ details when a new visitor is using this landing page. To do this, just set the value of SHOW_ALL_VISITS_WHEN_NOT_SEARCH in your constant table to no (0).\u003C\u002Fp>\n\u003Cp>If you did not find SHOW_ALL_VISITS_WHEN_NOT_SEARCH in your constant table, please deactivate this plugin and activate it again. Then SHOW_ALL_VISITS_WHEN_NOT_SEARCH will be automatically added to your constant table.\u003C\u002Fp>\n\u003Cp>A visit record can be updated only when it is active and timeout is empty. Deleted visits and finished visits are not available for editing.\u003C\u002Fp>\n\u003Cp>This plugin has an access restriction feature. You can give a user access to the visit landing page by adding the user to the wp_dragonvisitzyx987_users table.\u003C\u002Fp>\n\u003Cp>After you are added to the wp_dragonvisitzyx987_users table, you must log in WordPress website to access this plugin’s landing page. On the admin setting page, admin and assigned users can access admin setting page to see table lists.\u003C\u002Fp>\n\u003Cp>This plugin uses a responsive design. You can use it from your cellphone, tablet, laptop, and PC. The layout will change accordingly.\u003C\u002Fp>\n\u003Cp>For the best user experience, we recommend you to use this plugin in a desktop computer with three monitors. Two monitors share the same content. The visitor uses one monitor, keyboard and mouse. The receptionist uses another monitor to watch the visitor’s input and behavior. The receptionist also uses a third monitor showing the dashboard’s plugin setting page. The third monitor is for the receptionist to verify visitor’s input after visitor finishes input.\u003C\u002Fp>\n\u003Cp>For this plugin to get your company’s current local date, you must set the timezone value correctly. You can edit the timezone at Dashboard -> Settings -> General -> Timezone -> check if the value has been set correctly.\u003C\u002Fp>\n\u003Cp>After plugin activation, go to the “Settings” menu to find the plugin admin page. By default, when you activate this plugin, it will automatically create a visit landing page for you. For some themes, if it does not automatically create a visit landing page for you, add this plugin root folder template-officevisitslogbook.php file to your template folder. For example, if you are using theme twentytwenty, then add the template-officevisitslogbook.php file to this folder: wordpress\\wp-content\\themes\\twentytwenty\\templates. Then you can create a new page (not a new post) using this template.\u003C\u002Fp>\n\u003Cp>When you use the template method to create a new visit page, do not set the page title to “officevisitslogbook”. If you set the page title to “officevisitslogbook”, it could conflict with the page automatically created when you activate this plugin.\u003C\u002Fp>\n\u003Cp>Documentation file is in the root folder with the name documentation_officevisitslogbook.pdf. Please follow the instructions in the file to install this plugin.\u003C\u002Fp>\n\u003Cp>Donate URL link:\u003Cbr \u002F>\nhttps:\u002F\u002Fpaypal.me\u002Fmingsitservices?country.x=CA&locale.x=en_US\u003C\u002Fp>\n\u003Cp>demo website:\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Fwww.mingsitservices.ca\u002Fofficevisitslogbook\u003C\u002Fp>\n\u003Cp>Log in WordPress admin page using\u003C\u002Fp>\n\u003Cp>username:\u003C\u002Fp>\n\u003Cp>user1\u003C\u002Fp>\n\u003Cp>password:\u003C\u002Fp>\n\u003Cp>user1\u003C\u002Fp>\n\u003Cp>This user can not access the plugin setting page to change settings.\u003C\u002Fp>\n\u003Cp>Documentation:\u003C\u002Fp>\n\u003Cp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.mingsitservices.ca\u002Fwp-content\u002Fplugins\u002Fofficevisitslogbookfree\u002Fdocumentation_officevisitslogbook.pdf\" target=\"_blank\" rel=\"noopener noreferrer nofollow ugc\">Click to access documentation_officevisitslogbook.pdf\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fp>\n\u003Cp>Platform and Database:\u003C\u002Fp>\n\u003Cp>You can run it on any platform: Windows, Mac, Linux.\u003C\u002Fp>\n\u003Cp>Database is MySQL. It’s free.\u003C\u002Fp>\n\u003Cp>PHP version: PHP >= 5.4\u003C\u002Fp>\n\u003Cp>Attention: PHP version and WordPress version may have compatibility issues. For example, WordPress 5.4 may not match PHP 8. Check this website for details:\u003Cbr \u002F>\nhttps:\u002F\u002Fmake.wordpress.org\u002Fcore\u002Fhandbook\u002Freferences\u002Fphp-compatibility-and-wordpress-versions\u002F\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>PHP has support for the mysqli extension (to used for prepared statement)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Must use HTTPS, not http. If website use HTTP, tell the website admin – can not use the dragon ecommerce plugin.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Since PHP 5.4 there are constants which can be used by json_encode() to format the json reponse how you want. To remove backslashes use: JSON_UNESCAPED_SLASHES. Like so: json_encode($response, JSON_UNESCAPED_SLASHES);\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>There is an advanced version on sale here:\u003Cbr \u002F>\nhttps:\u002F\u002Fwww.codester.com\u002Fitems\u002F39162\u002Foffice-visits-logbook-plugin-for-wordpress\u003Cbr \u002F>\nIt can export visit records into an Excel file for download. It can also backup your database. The advanced version and this free version have the same database tables and stored procedures. It’s easy to migrate from this free version to the advanced version. Remember to backup your free version database before migration.\u003C\u002Fp>\n\u003Cp>The visitor management system market is increasing fast. According to this website https:\u002F\u002Fwww.globenewswire.com\u002Fnews-release\u002F2023\u002F06\u002F27\u002F2695465\u002F0\u002Fen\u002FGlobal-Visitor-Management-System-Market-Size-To-Grow-USD-2-7-Billion-By-2032-CAGR-of-18-4.html,\u003Cbr \u002F>\nSpherical Insights & Consulting published a report saying the global visitor management system market size was valued at USD 1.5 billion in 2022 and the worldwide visitor management system market size is expected to reach USD 2.7 billion by 2032.\u003C\u002Fp>\n\u003Cp>This plugin is very popular. It has been downloaded over 1000 times in several months:\u003Cbr \u002F>\nhttps:\u002F\u002Fwordpress.org\u002Fplugins\u002Foffice-visits-logbook\u002Fadvanced\u002F\u003C\u002Fp>\n","Your company is still using paper log sheets for office visitors? Everything is digital and paperless now. Being paperless can also save trees and pro &hellip;",10,4100,100,1,"2026-01-14T02:37:00.000Z","6.8.5","5.4","",[20,21,22,23,24],"log","logbook","office","visit","visitor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foffice-visits-logbook.1.1.3.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},4,93,30,89,"2026-04-05T17:31:03.855Z",[37,62,82,100,121],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":59,"download_link":60,"security_score":47,"vuln_count":14,"unpatched_count":14,"last_vuln_date":61,"fetched_at":28},"wps-visitor-counter","WPS Visitor Counter","1.4.9","techmix","https:\u002F\u002Fprofiles.wordpress.org\u002Ftechmix\u002F","\u003Cp>WPS Visitor Counter plugin is one of the best visitor counter plugin in wordpress. This plugin will help you to display the number of visitor your website have and its traffic statistics for your WordPress website. We have tried to include all the available data you needed to show in the visitor counter. Here are the items we are showing on our visitor counter:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Users Today\u003C\u002Fli>\n\u003Cli>Users Yesterday\u003C\u002Fli>\n\u003Cli>Users Last 7 days\u003C\u002Fli>\n\u003Cli>Users Last 30 days\u003C\u002Fli>\n\u003Cli>Users This Month\u003C\u002Fli>\n\u003Cli>Users This Year\u003C\u002Fli>\n\u003Cli>Total Users\u003C\u002Fli>\n\u003Cli>Views Today\u003C\u002Fli>\n\u003Cli>Views Yesterday\u003C\u002Fli>\n\u003Cli>Views Last 7 days\u003C\u002Fli>\n\u003Cli>Views Last 30 days\u003C\u002Fli>\n\u003Cli>Views This Month\u003C\u002Fli>\n\u003Cli>Views This Year\u003C\u002Fli>\n\u003Cli>Total Views\u003C\u002Fli>\n\u003Cli>Who’s Online\u003C\u002Fli>\n\u003Cli>Your IP Address\u003C\u002Fli>\n\u003Cli>Server Time\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You will find all the data authentic and this will help you to get your website traffic stats. Just install the plugin. It will take effect just after you install it on your website. Our plugin is compatible for all types of websites and able to run in all versions of WordPress.\u003C\u002Fp>\n\u003Ch4>WPS Visitor Counter shortcode\u003C\u002Fh4>\n\u003Cp>Use this [wps_visitor_counter] Shortcode anywhere in your website where you want to show visitor counter.\u003C\u002Fp>\n\u003Ch3>gutenberg block supported\u003C\u002Fh3>\n\u003Ch4>Translation Support\u003C\u002Fh4>\n\u003Cp>The plugin is fully internationalized and supports multiple languages. Translation files are located in the \u002Flanguages\u002F directory.\u003C\u002Fp>\n\u003Cp>Currently available languages:\u003Cbr \u002F>\n* English (default)\u003Cbr \u002F>\n* Spanish (es_ES) – Complete translation included\u003C\u002Fp>\n\u003Cp>To create translations for other languages:\u003Cbr \u002F>\n1. Use the wps-visitor-counter.pot file as a template\u003Cbr \u002F>\n2. Create a .po file for your language (e.g., wps-visitor-counter-fr_FR.po)\u003Cbr \u002F>\n3. Translate the strings and compile to .mo format\u003Cbr \u002F>\n4. WordPress will automatically load the appropriate translation file\u003C\u002Fp>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>Refer Installation and FAQ section for all required information\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and feature requests, please visit our website at https:\u002F\u002Ftechmix.xyz\u002F\u003C\u002Fp>\n","Display website visitor statistics with widget, shortcode, and Gutenberg block support.",10000,118356,78,8,"2026-01-21T19:29:00.000Z","6.9.4","5.0","7.4",[54,55,56,57,58],"blog-stats","hit-counter","traffic-statistics","visitor-counter","website-counter","https:\u002F\u002Ftechmix.xyz\u002Fdownloads\u002Fwps-visitor-counter-plugin-for-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwps-visitor-counter.1.4.9.zip","2025-11-21 00:00:00",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":18,"short_description":68,"active_installs":69,"downloaded":70,"rating":71,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":75,"requires_php":18,"tags":76,"homepage":79,"download_link":80,"security_score":81,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"mechanic-visitor-counter","Mechanic Visitor Counter","3.3.3","Aditya Subawa","https:\u002F\u002Fprofiles.wordpress.org\u002Fadityasubawa\u002F","Mechanic Visitor Counter is a widgets which will display the Visitor counter and traffic statistics on WordPress. Some of the features offered include &hellip;",8000,222754,72,15,"2021-01-02T07:20:00.000Z","5.5.18","4.5.3",[54,77,56,57,78],"traffic-counter","visitor-traffic","https:\u002F\u002Fwww.adityasubawa.com\u002Fmechanic-visitor-counter\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmechanic-visitor-counter.zip",85,{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":92,"num_ratings":93,"last_updated":94,"tested_up_to":95,"requires_at_least":96,"requires_php":18,"tags":97,"homepage":98,"download_link":99,"security_score":81,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"xt-visitor-counter","XT Visitor Counter","1.4.3","xtrsyz","https:\u002F\u002Fprofiles.wordpress.org\u002Fxtrsyz\u002F","\u003Cp>XT Visitor Counter is a widgets which will display the Visitor counter and traffic statistics on WordPress.Some of the features offered include Today Visitor, Today Hits, Total Hits, Total Visit, Who’s Online and IP Address Visitors.\u003C\u002Fp>\n\u003Cp>Upload and Install XT Visitor Counter Plugins, Activate and Drag the Widgets in to your WordPress Sidebar. And this plugins will useless for a thousands of websites. If you were here, download and install it, you’ll like it.\u003C\u002Fp>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>Refer Installation and FAQ section for all required information\u003C\u002Fp>\n\u003Ch3>A brief Markdown Example\u003C\u002Fh3>\n\u003Cp>Ordered list:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Most simple plugin available so far\u003C\u002Fli>\n\u003Cli>Do not remove developer plugins link\u003C\u002Fli>\n\u003C\u002Fol>\n","XT Visitor Counter is a widgets which will display the Visitor counter and traffic statistics on WordPress. Some of the features offered include Today &hellip;",7000,106479,84,5,"2023-01-31T15:01:00.000Z","6.1.10","3.0.1",[54,77,56,57,78],"http:\u002F\u002Fxtrsyz.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fxt-visitor-counter.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":26,"num_ratings":26,"last_updated":110,"tested_up_to":111,"requires_at_least":51,"requires_php":112,"tags":113,"homepage":118,"download_link":119,"security_score":120,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"ip-informant-logger","IP Informant Logger","1.27","whittakerj","https:\u002F\u002Fprofiles.wordpress.org\u002Fwhittakerj\u002F","\u003Cp>IP Informant Logger is a WordPress plugin that logs and displays visitor IP addresses. This tool is essential for website administrators who wish to monitor their site’s traffic and enhance security measures.\u003C\u002Fp>\n\u003Cp>Key Features:\u003Cbr \u002F>\n– Log visitor IPs\u003Cbr \u002F>\n– Display logged IP addresses in the WordPress admin\u003Cbr \u002F>\n– Integration with IPinfo.io for detailed IP information\u003C\u002Fp>\n","Logs and displays visitor IP addresses for website security and monitoring.",40,1672,"2024-04-22T16:37:00.000Z","6.5.8","7.2",[114,115,116,117],"ip","logging","security","visitors","https:\u002F\u002Fjeremywhittaker.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fip-informant-logger.1.27.zip",92,{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":11,"downloaded":129,"rating":26,"num_ratings":26,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":18,"tags":133,"homepage":138,"download_link":139,"security_score":81,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"blog-demographics","Blog Demographics","0.4","anty","https:\u002F\u002Fprofiles.wordpress.org\u002Fanty\u002F","\u003Cp>Blog Demographics uses 3rd-party-services (Facebook, MyBlogLog and BlogCatalog) to access the identity of your viewers and commentators.\u003Cbr \u002F>\nIn order to work at all, you need at least one account at such a service.\u003C\u002Fp>\n\u003Cp>Blog Demographics retrieves a list of recent visitors from those accounts. If the visitor didn’t specify an age or gender Blog Demographics tries to access associated accounts like Facebook or YouTube to get those informations. Facebook is also used to retrieve gender and age of your commentators.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Plug-In and German translation by anty from http:\u002F\u002Fwww.anty.info\u003Cbr \u002F>\nFarsi\u002FPersian translation by Heam from http:\u002F\u002Fwww.hamidoffice.com\u003C\u002Fp>\n","Shows you what age and gender your visitors are. Based on various services like Facebook, BlogCatalog and MyBlogLog.",3034,"2010-10-18T09:54:00.000Z","3.0.5","2.8",[134,135,136,137,117],"age","demographics","gender","mybloglog","http:\u002F\u002Fwww.anty.info\u002Fblog-demographics","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblog-demographics.0.4.zip",{"attackSurface":141,"codeSignals":232,"taintFlows":641,"riskAssessment":794,"analyzedAt":804},{"hooks":142,"ajaxHandlers":168,"restRoutes":228,"shortcodes":229,"cronEvents":230,"entryPointCount":231,"unprotectedCount":26},[143,149,153,159,161,165],{"type":144,"name":145,"callback":146,"file":147,"line":148},"action","admin_menu","dragonvisitzyx987_admin_actions","dragonvisitzyx987_importer.php",538,{"type":144,"name":150,"callback":151,"file":147,"line":152},"init","dragonvisitzyx987_load_landing_page",557,{"type":154,"name":155,"callback":156,"priority":11,"file":157,"line":158},"filter","pre_get_document_title","closure","dragonvisitzyx987_landingpage.php",616,{"type":154,"name":155,"callback":156,"priority":11,"file":157,"line":160},635,{"type":144,"name":162,"callback":156,"priority":163,"file":157,"line":164},"wp_enqueue_scripts",999,838,{"type":144,"name":162,"callback":156,"priority":163,"file":166,"line":167},"dragonvisitzyx987_masterpage.php",44,[169,174,177,180,183,186,189,192,195,198,201,205,209,213,217,221,225],{"action":170,"nopriv":171,"callback":170,"hasNonce":172,"hasCapCheck":171,"file":147,"line":173},"dragonvisitzyx987_getVisits",false,true,900,{"action":175,"nopriv":171,"callback":175,"hasNonce":172,"hasCapCheck":171,"file":147,"line":176},"dragonvisitzyx987_saveTypecategory",1166,{"action":178,"nopriv":171,"callback":178,"hasNonce":172,"hasCapCheck":171,"file":147,"line":179},"dragonvisitzyx987_saveType",1375,{"action":181,"nopriv":171,"callback":181,"hasNonce":172,"hasCapCheck":171,"file":147,"line":182},"dragonvisitzyx987_saveRole",1574,{"action":184,"nopriv":171,"callback":184,"hasNonce":172,"hasCapCheck":171,"file":147,"line":185},"dragonvisitzyx987_getUsertypes",1749,{"action":187,"nopriv":171,"callback":187,"hasNonce":172,"hasCapCheck":171,"file":147,"line":188},"dragonvisitzyx987_saveUser",2113,{"action":190,"nopriv":171,"callback":190,"hasNonce":172,"hasCapCheck":171,"file":147,"line":191},"dragonvisitzyx987_getUsers",2347,{"action":193,"nopriv":171,"callback":193,"hasNonce":172,"hasCapCheck":171,"file":147,"line":194},"dragonvisitzyx987_saveDepartment",2652,{"action":196,"nopriv":171,"callback":196,"hasNonce":172,"hasCapCheck":171,"file":147,"line":197},"dragonvisitzyx987_editConstantvalue",2764,{"action":199,"nopriv":171,"callback":199,"hasNonce":172,"hasCapCheck":171,"file":147,"line":200},"dragonvisitzyx987_getVisitdetails",2862,{"action":202,"nopriv":171,"callback":203,"hasNonce":172,"hasCapCheck":171,"file":147,"line":204},"dragonvisitzyx987_getTypecategories","dragonvisitzyx987_getTypecategoriesByAjax",3007,{"action":206,"nopriv":171,"callback":207,"hasNonce":172,"hasCapCheck":171,"file":147,"line":208},"dragonvisitzyx987_getTypes","dragonvisitzyx987_getTypesByAjax",3123,{"action":210,"nopriv":171,"callback":211,"hasNonce":172,"hasCapCheck":171,"file":147,"line":212},"dragonvisitzyx987_getRoles","dragonvisitzyx987_getRolesByAjax",3239,{"action":214,"nopriv":171,"callback":215,"hasNonce":172,"hasCapCheck":171,"file":147,"line":216},"dragonvisitzyx987_getDepartments","dragonvisitzyx987_getDepartmentsByAjax",3355,{"action":218,"nopriv":171,"callback":219,"hasNonce":172,"hasCapCheck":171,"file":147,"line":220},"dragonvisitzyx987_getConstants","dragonvisitzyx987_getConstantsByAjax",3471,{"action":222,"nopriv":171,"callback":223,"hasNonce":172,"hasCapCheck":171,"file":147,"line":224},"dragonvisitzyx987_getLogs","dragonvisitzyx987_getLogsByAjax",3528,{"action":226,"nopriv":171,"callback":226,"hasNonce":172,"hasCapCheck":171,"file":147,"line":227},"dragonvisitzyx987_deleteVisit",4335,[],[],[],17,{"dangerousFunctions":233,"sqlUsage":234,"outputEscaping":349,"fileOperations":14,"externalRequests":26,"nonceChecks":239,"capabilityChecks":26,"bundledLibraries":640},[],{"prepared":235,"raw":236,"locations":237},96,55,[238,241,243,245,247,249,251,253,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347],{"file":147,"line":239,"context":240},36,"$wpdb->get_results() with variable interpolation",{"file":147,"line":242,"context":240},50,{"file":147,"line":120,"context":244},"$wpdb->get_var() with variable interpolation",{"file":147,"line":246,"context":244},283,{"file":147,"line":248,"context":244},321,{"file":147,"line":250,"context":244},329,{"file":147,"line":252,"context":244},337,{"file":147,"line":254,"context":244},345,{"file":147,"line":256,"context":240},725,{"file":147,"line":258,"context":240},752,{"file":147,"line":260,"context":240},779,{"file":147,"line":262,"context":240},806,{"file":147,"line":264,"context":240},833,{"file":147,"line":266,"context":240},854,{"file":147,"line":268,"context":240},856,{"file":147,"line":270,"context":240},873,{"file":147,"line":272,"context":240},875,{"file":147,"line":274,"context":240},1154,{"file":147,"line":276,"context":240},1156,{"file":147,"line":278,"context":240},1363,{"file":147,"line":280,"context":240},1365,{"file":147,"line":282,"context":240},1692,{"file":147,"line":284,"context":240},1694,{"file":147,"line":286,"context":240},1737,{"file":147,"line":288,"context":240},1739,{"file":147,"line":290,"context":240},2622,{"file":147,"line":292,"context":240},2624,{"file":147,"line":294,"context":240},2640,{"file":147,"line":296,"context":240},2642,{"file":147,"line":298,"context":244},3712,{"file":147,"line":300,"context":240},4142,{"file":147,"line":302,"context":240},4144,{"file":147,"line":304,"context":240},4153,{"file":147,"line":306,"context":240},4155,{"file":147,"line":308,"context":240},4164,{"file":147,"line":310,"context":240},4166,{"file":147,"line":312,"context":240},4197,{"file":147,"line":314,"context":240},4231,{"file":147,"line":316,"context":240},4244,{"file":147,"line":318,"context":240},4253,{"file":147,"line":320,"context":240},4263,{"file":147,"line":322,"context":240},4272,{"file":147,"line":324,"context":240},4287,{"file":147,"line":326,"context":240},4299,{"file":147,"line":328,"context":240},4360,{"file":147,"line":330,"context":240},4361,{"file":157,"line":332,"context":240},68,{"file":157,"line":334,"context":240},435,{"file":157,"line":336,"context":240},622,{"file":157,"line":338,"context":240},644,{"file":157,"line":340,"context":240},664,{"file":157,"line":342,"context":240},677,{"file":157,"line":344,"context":240},687,{"file":157,"line":346,"context":240},706,{"file":157,"line":348,"context":240},852,{"escaped":350,"rawEcho":351,"locations":352},708,145,[353,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397,399,401,403,405,407,409,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,495,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,543,545,547,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,629,630,631,633,635,637],{"file":354,"line":355,"context":356},"dragonvisitzyx987_admin.php",263,"raw output",{"file":354,"line":358,"context":356},364,{"file":354,"line":360,"context":356},475,{"file":354,"line":362,"context":356},495,{"file":354,"line":364,"context":356},621,{"file":354,"line":366,"context":356},642,{"file":354,"line":368,"context":356},753,{"file":354,"line":370,"context":356},773,{"file":354,"line":372,"context":356},884,{"file":354,"line":374,"context":356},904,{"file":354,"line":376,"context":356},1203,{"file":354,"line":378,"context":356},1250,{"file":354,"line":380,"context":356},1265,{"file":354,"line":382,"context":356},1350,{"file":354,"line":384,"context":356},1798,{"file":354,"line":386,"context":356},1870,{"file":354,"line":388,"context":356},1871,{"file":354,"line":390,"context":356},1874,{"file":354,"line":392,"context":356},1879,{"file":354,"line":394,"context":356},1882,{"file":354,"line":396,"context":356},1891,{"file":354,"line":398,"context":356},1892,{"file":354,"line":400,"context":356},1893,{"file":354,"line":402,"context":356},1894,{"file":354,"line":404,"context":356},1895,{"file":354,"line":406,"context":356},1898,{"file":354,"line":408,"context":356},1906,{"file":354,"line":408,"context":356},{"file":354,"line":411,"context":356},1964,{"file":354,"line":413,"context":356},1995,{"file":354,"line":415,"context":356},1996,{"file":354,"line":417,"context":356},1998,{"file":354,"line":419,"context":356},2000,{"file":354,"line":421,"context":356},2012,{"file":354,"line":423,"context":356},2051,{"file":354,"line":425,"context":356},2077,{"file":354,"line":427,"context":356},2078,{"file":354,"line":429,"context":356},2080,{"file":354,"line":431,"context":356},2082,{"file":354,"line":433,"context":356},2103,{"file":354,"line":435,"context":356},2142,{"file":354,"line":437,"context":356},2170,{"file":354,"line":439,"context":356},2171,{"file":354,"line":441,"context":356},2173,{"file":354,"line":443,"context":356},2175,{"file":354,"line":445,"context":356},2188,{"file":354,"line":447,"context":356},2227,{"file":354,"line":449,"context":356},2253,{"file":354,"line":451,"context":356},2254,{"file":354,"line":453,"context":356},2256,{"file":354,"line":455,"context":356},2258,{"file":354,"line":457,"context":356},2271,{"file":354,"line":459,"context":356},2310,{"file":354,"line":461,"context":356},2336,{"file":354,"line":463,"context":356},2337,{"file":354,"line":465,"context":356},2339,{"file":354,"line":467,"context":356},2341,{"file":354,"line":469,"context":356},2434,{"file":354,"line":471,"context":356},2542,{"file":354,"line":473,"context":356},2588,{"file":354,"line":475,"context":356},2591,{"file":354,"line":477,"context":356},2608,{"file":354,"line":479,"context":356},2669,{"file":354,"line":481,"context":356},2699,{"file":354,"line":483,"context":356},2701,{"file":354,"line":485,"context":356},2712,{"file":487,"line":31,"context":356},"dragonvisitzyx987_createvisit.php",{"file":487,"line":489,"context":356},188,{"file":487,"line":491,"context":356},195,{"file":493,"line":494,"context":356},"dragonvisitzyx987_editvisit.php",2,{"file":493,"line":31,"context":356},{"file":493,"line":497,"context":356},148,{"file":493,"line":499,"context":356},160,{"file":493,"line":501,"context":356},166,{"file":493,"line":503,"context":356},172,{"file":493,"line":505,"context":356},178,{"file":493,"line":507,"context":356},184,{"file":493,"line":509,"context":356},201,{"file":493,"line":511,"context":356},208,{"file":493,"line":513,"context":356},209,{"file":147,"line":515,"context":356},130,{"file":147,"line":517,"context":356},134,{"file":147,"line":519,"context":356},210,{"file":147,"line":521,"context":356},1064,{"file":147,"line":523,"context":356},1069,{"file":147,"line":525,"context":356},1223,{"file":147,"line":527,"context":356},1226,{"file":147,"line":529,"context":356},1269,{"file":147,"line":531,"context":356},1632,{"file":147,"line":533,"context":356},1635,{"file":147,"line":535,"context":356},1678,{"file":147,"line":537,"context":356},1756,{"file":147,"line":539,"context":356},1762,{"file":147,"line":541,"context":356},1890,{"file":147,"line":404,"context":356},{"file":147,"line":544,"context":356},2248,{"file":147,"line":546,"context":356},2251,{"file":147,"line":465,"context":356},{"file":147,"line":549,"context":356},2354,{"file":147,"line":551,"context":356},2359,{"file":147,"line":553,"context":356},2532,{"file":147,"line":555,"context":356},2537,{"file":147,"line":557,"context":356},2710,{"file":147,"line":559,"context":356},2713,{"file":147,"line":561,"context":356},2756,{"file":147,"line":563,"context":356},2851,{"file":147,"line":565,"context":356},2868,{"file":147,"line":567,"context":356},2998,{"file":147,"line":569,"context":356},3003,{"file":147,"line":571,"context":356},3014,{"file":147,"line":573,"context":356},3019,{"file":147,"line":575,"context":356},3114,{"file":147,"line":577,"context":356},3119,{"file":147,"line":579,"context":356},3130,{"file":147,"line":581,"context":356},3135,{"file":147,"line":583,"context":356},3230,{"file":147,"line":585,"context":356},3235,{"file":147,"line":587,"context":356},3246,{"file":147,"line":589,"context":356},3251,{"file":147,"line":591,"context":356},3346,{"file":147,"line":593,"context":356},3351,{"file":147,"line":595,"context":356},3362,{"file":147,"line":597,"context":356},3367,{"file":147,"line":599,"context":356},3462,{"file":147,"line":601,"context":356},3467,{"file":147,"line":603,"context":356},3478,{"file":147,"line":605,"context":356},3519,{"file":147,"line":607,"context":356},3524,{"file":147,"line":609,"context":356},3535,{"file":147,"line":611,"context":356},3540,{"file":147,"line":613,"context":356},3661,{"file":147,"line":615,"context":356},3666,{"file":157,"line":617,"context":356},1302,{"file":157,"line":619,"context":356},1304,{"file":157,"line":621,"context":356},1307,{"file":157,"line":623,"context":356},1413,{"file":157,"line":625,"context":356},1821,{"file":157,"line":627,"context":356},1822,{"file":157,"line":408,"context":356},{"file":157,"line":408,"context":356},{"file":157,"line":408,"context":356},{"file":157,"line":632,"context":356},1965,{"file":157,"line":634,"context":356},1980,{"file":166,"line":636,"context":356},51,{"file":638,"line":639,"context":356},"template-officevisitslogbook.php",12,[],[642,666,678,690,700,710,719,729,741,766],{"entryPoint":643,"graph":644,"unsanitizedCount":664,"severity":665},"\u003Cdragonvisitzyx987_admin> (dragonvisitzyx987_admin.php:0)",{"nodes":645,"edges":661},[646,651,656,659],{"id":647,"type":648,"label":649,"file":354,"line":650},"n0","source","$_SERVER",1794,{"id":652,"type":653,"label":654,"file":354,"line":650,"wp_function":655},"n1","sink","echo() [XSS]","echo",{"id":657,"type":648,"label":658,"file":354,"line":417},"n2","$_SERVER['REQUEST_URI'] (x6)",{"id":660,"type":653,"label":654,"file":354,"line":417,"wp_function":655},"n3",[662,663],{"from":647,"to":652,"sanitized":172},{"from":657,"to":660,"sanitized":171},6,"low",{"entryPoint":667,"graph":668,"unsanitizedCount":14,"severity":665},"\u003Cdragonvisitzyx987_createvisit> (dragonvisitzyx987_createvisit.php:0)",{"nodes":669,"edges":675},[670,672,673,674],{"id":647,"type":648,"label":649,"file":487,"line":671},3,{"id":652,"type":653,"label":654,"file":487,"line":671,"wp_function":655},{"id":657,"type":648,"label":649,"file":487,"line":507},{"id":660,"type":653,"label":654,"file":487,"line":489,"wp_function":655},[676,677],{"from":647,"to":652,"sanitized":172},{"from":657,"to":660,"sanitized":171},{"entryPoint":679,"graph":680,"unsanitizedCount":14,"severity":665},"\u003Cdragonvisitzyx987_editvisit> (dragonvisitzyx987_editvisit.php:0)",{"nodes":681,"edges":687},[682,683,684,686],{"id":647,"type":648,"label":649,"file":493,"line":671},{"id":652,"type":653,"label":654,"file":493,"line":671,"wp_function":655},{"id":657,"type":648,"label":649,"file":493,"line":685},197,{"id":660,"type":653,"label":654,"file":493,"line":509,"wp_function":655},[688,689],{"from":647,"to":652,"sanitized":172},{"from":657,"to":660,"sanitized":171},{"entryPoint":691,"graph":692,"unsanitizedCount":26,"severity":665},"dragonvisitzyx987_saveTypecategory (dragonvisitzyx987_importer.php:1167)",{"nodes":693,"edges":698},[694,697],{"id":647,"type":648,"label":695,"file":147,"line":696},"$_POST (x2)",1186,{"id":652,"type":653,"label":654,"file":147,"line":525,"wp_function":655},[699],{"from":647,"to":652,"sanitized":172},{"entryPoint":701,"graph":702,"unsanitizedCount":26,"severity":665},"dragonvisitzyx987_saveType (dragonvisitzyx987_importer.php:1376)",{"nodes":703,"edges":708},[704,706],{"id":647,"type":648,"label":695,"file":147,"line":705},1396,{"id":652,"type":653,"label":654,"file":147,"line":707,"wp_function":655},1438,[709],{"from":647,"to":652,"sanitized":172},{"entryPoint":711,"graph":712,"unsanitizedCount":26,"severity":665},"dragonvisitzyx987_saveRole (dragonvisitzyx987_importer.php:1575)",{"nodes":713,"edges":717},[714,716],{"id":647,"type":648,"label":695,"file":147,"line":715},1595,{"id":652,"type":653,"label":654,"file":147,"line":531,"wp_function":655},[718],{"from":647,"to":652,"sanitized":172},{"entryPoint":720,"graph":721,"unsanitizedCount":26,"severity":665},"dragonvisitzyx987_editConstantvalue (dragonvisitzyx987_importer.php:2765)",{"nodes":722,"edges":727},[723,726],{"id":647,"type":648,"label":724,"file":147,"line":725},"$_POST",2778,{"id":652,"type":653,"label":654,"file":147,"line":563,"wp_function":655},[728],{"from":647,"to":652,"sanitized":172},{"entryPoint":730,"graph":731,"unsanitizedCount":26,"severity":665},"dragonvisitzyx987_deleteVisit (dragonvisitzyx987_importer.php:4336)",{"nodes":732,"edges":739},[733,735],{"id":647,"type":648,"label":724,"file":147,"line":734},4345,{"id":652,"type":653,"label":736,"file":147,"line":737,"wp_function":738},"query() [SQLi]",4366,"query",[740],{"from":647,"to":652,"sanitized":172},{"entryPoint":742,"graph":743,"unsanitizedCount":26,"severity":665},"\u003Cdragonvisitzyx987_landingpage> (dragonvisitzyx987_landingpage.php:0)",{"nodes":744,"edges":762},[745,748,751,754,755,759],{"id":647,"type":648,"label":746,"file":157,"line":747},"$_GET (x3)",640,{"id":652,"type":653,"label":749,"file":157,"line":338,"wp_function":750},"get_results() [SQLi]","get_results",{"id":657,"type":648,"label":752,"file":157,"line":753},"$_SERVER (x5)",1293,{"id":660,"type":653,"label":654,"file":157,"line":753,"wp_function":655},{"id":756,"type":648,"label":757,"file":157,"line":758},"n4","$_COOKIE (x2)",717,{"id":760,"type":653,"label":654,"file":157,"line":761,"wp_function":655},"n5",1796,[763,764,765],{"from":647,"to":652,"sanitized":172},{"from":657,"to":660,"sanitized":172},{"from":756,"to":760,"sanitized":172},{"entryPoint":767,"graph":768,"unsanitizedCount":14,"severity":793},"\u003Cdragonvisitzyx987_importer> (dragonvisitzyx987_importer.php:0)",{"nodes":769,"edges":787},[770,772,773,775,776,777,778,781,785],{"id":647,"type":648,"label":771,"file":147,"line":696},"$_POST (x8)",{"id":652,"type":653,"label":654,"file":147,"line":525,"wp_function":655},{"id":657,"type":648,"label":695,"file":147,"line":774},2136,{"id":660,"type":653,"label":749,"file":147,"line":316,"wp_function":750},{"id":756,"type":648,"label":724,"file":147,"line":734},{"id":760,"type":653,"label":736,"file":147,"line":737,"wp_function":738},{"id":779,"type":648,"label":724,"file":147,"line":780},"n6",4323,{"id":782,"type":783,"label":784,"file":147,"line":780},"n7","transform","→ dragonvisitzyx987_getAssociatesForManager()",{"id":786,"type":653,"label":749,"file":147,"line":312,"wp_function":750},"n8",[788,789,790,791,792],{"from":647,"to":652,"sanitized":172},{"from":657,"to":660,"sanitized":172},{"from":756,"to":760,"sanitized":172},{"from":779,"to":782,"sanitized":171},{"from":782,"to":786,"sanitized":171},"high",{"summary":795,"deductions":796},"The \"office-visits-logbook\" v1.1.3 plugin exhibits a generally strong security posture, particularly in its handling of user input and output. The plugin demonstrates a commendable use of prepared statements for SQL queries (64%) and proper output escaping (83%), significantly reducing the risk of common web vulnerabilities like SQL injection and cross-site scripting. The absence of known CVEs and a clean vulnerability history further reinforce this positive assessment. However, a few areas warrant attention. The presence of 4 flows with unsanitized paths in the taint analysis, and one of high severity, indicates a potential risk for directory traversal or file inclusion vulnerabilities, which could be exploited if these paths are user-controlled. Additionally, the large number of AJAX handlers (17) combined with a complete lack of capability checks, while present nonce checks, suggests a potential weakness. While nonce checks are important for preventing CSRF, they do not prevent unauthorized access if an attacker can trick a logged-in user with insufficient privileges to trigger an AJAX action. The plugin's strengths lie in its robust data handling, but the identified taint flows and the complete absence of capability checks on its extensive AJAX endpoints are notable weaknesses.",[797,799,801],{"reason":798,"points":639},"High severity unsanitized path in taint flow",{"reason":800,"points":664},"4 unsanitized paths in taint flow",{"reason":802,"points":803},"No capability checks on 17 AJAX handlers",7,"2026-03-16T23:41:16.068Z",{"wat":806,"direct":821},{"assetPaths":807,"generatorPatterns":813,"scriptPaths":814,"versionParams":815},[808,809,810,811,812],"\u002Fwp-content\u002Fplugins\u002Foffice-visits-logbook\u002Fcss\u002Fnormalize.css","\u002Fwp-content\u002Fplugins\u002Foffice-visits-logbook\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Foffice-visits-logbook\u002Fjs\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Foffice-visits-logbook\u002Fjs\u002Fjquery-ui.js","\u002Fwp-content\u002Fplugins\u002Foffice-visits-logbook\u002Fjs\u002Fdatepicker-en.js",[],[],[816,817,818,819,820],"office-visits-logbook\u002Fcss\u002Fnormalize.css?ver=","office-visits-logbook\u002Fcss\u002Fstyle.css?ver=","office-visits-logbook\u002Fjs\u002Fscript.js?ver=","office-visits-logbook\u002Fjs\u002Fjquery-ui.js?ver=","office-visits-logbook\u002Fjs\u002Fdatepicker-en.js?ver=",{"cssClasses":822,"htmlComments":826,"htmlAttributes":827,"restEndpoints":829,"jsGlobals":831,"shortcodeOutput":834},[823,824,825],"office-visits-logbook-entry-form","office-visits-logbook-visitor-list","office-visits-logbook-admin-menu",[],[828],"data-plugin=\"office-visits-logbook\"",[830],"\u002Fwp-json\u002Foffice-visits-logbook\u002Fv1\u002Fentries",[832,833],"officeVisitsLogbook","dragonvisitzyx987_params",[835,836],"[office_visits_logbook_form]","[office_visits_logbook_list]"]