[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fuHU_jvHGi_Reic9E9zvSAAZBNMdVnUCI-xvCl4Z7V88":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":99,"fingerprints":187},"manual-completions-lifterlms","Manual Completions for LifterLMS","1.1","Pankaj Agrawal","https:\u002F\u002Fprofiles.wordpress.org\u002Fliveaspankaj\u002F","\u003Cp>Manual Completions for LifterLMS provides a very simple interface to check completion as well as manually mark courses, sections, lessons and quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, section_id, lesson_id, quiz_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. LifterLMS\u003Cbr \u002F>\n2. GrassBlade xAPI Companion\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Related Plugins:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgrassblade-xapi-lifterlms\u002F\" rel=\"ugc\">Experience API for LifterLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fvisibility-control-for-lifterlms\u002F\" rel=\"ugc\">Visibility Control for LifterLMS\u003C\u002Fa>\u003C\u002Fp>\n","Manual Completions for LifterLMS lets you check completion as well as manually mark courses, sections, lessons and quizzes as complete.",10,653,0,"2025-09-11T07:22:00.000Z","6.8.5","4.0","5.4",[19,20,21,22,23],"completion","grassblade","lifter","manual","mark-complete","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-lifterlms\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-lifterlms.1.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"liveaspankaj",21,4690,30,94,"2026-04-04T05:42:42.171Z",[38,51,66,78,88],{"slug":39,"name":40,"version":41,"author":7,"author_profile":8,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":46,"tags":47,"homepage":49,"download_link":50,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"manual-completions-tutorlms","Manual Completions TutorLMS","1.3","\u003Cp>Manual Completions for Tutor LMS provides a very simple interface to check completion as well as manually mark courses, lessons and quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, lesson_id, quiz_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftutor\u002F\" rel=\"ugc\">Tutor LMS\u003C\u002Fa>\u003Cbr \u002F>\n2. \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fgrassblade-lrs-experience-api\u002F\" rel=\"nofollow ugc\">GrassBlade xAPI Companion\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Other Manual Completion Plugins:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learndash\u002F\" rel=\"nofollow ugc\">Manual Completions for LearnDashLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-lifterlms\u002F\" rel=\"nofollow ugc\">Manual Completions for LifterLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learnpress\u002F\" rel=\"nofollow ugc\">Manual Completions for LearnPress\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Related Plugins for TutorLMS:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fexperience-api-for-tutorlms\u002F\" rel=\"nofollow ugc\">Experience API for TutorLMS\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-tutorlms\u002F\" rel=\"nofollow ugc\">Visibility Control for TutorLMS\u003C\u002Fa>\u003C\u002Fp>\n","Manual Completions for Tutor LMS lets you check completion as well as manually mark courses, lessons and quizzes as complete.",300,3359,"7.4",[19,20,22,23,48],"tutor","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-tutor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-tutorlms.1.3.zip",{"slug":52,"name":53,"version":54,"author":7,"author_profile":8,"description":55,"short_description":56,"active_installs":57,"downloaded":58,"rating":59,"num_ratings":60,"last_updated":61,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":62,"homepage":64,"download_link":65,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"manual-completions-learndash","Manual Completions for LearnDash","1.9","\u003Cp>Manual Completions for LearnDash provides a very simple interface to check completion as well as manually mark courses, lessons, topics and quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, lesson_id, topic_id, quiz_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fr\u002Flearndash\u002Fwp_mcl_plugin_page\" rel=\"nofollow ugc\">LearnDash LMS\u003C\u002Fa>\u003Cbr \u002F>\n2. \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fgrassblade-lrs-experience-api\u002F\" rel=\"nofollow ugc\">GrassBlade xAPI Companion\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Other Manual Completion Plugins:\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-lifterlms\u002F\" rel=\"nofollow ugc\">Manual Completions for LifterLMS\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-tutorlms\u002F\" rel=\"nofollow ugc\">Manual Completions for TutorLMS\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learnpress\u002F\" rel=\"nofollow ugc\">Manual Completions for LearnPress\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Related Plugins for LearnDash LMS:\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanage-enrollment-for-learndash\u002F\" rel=\"nofollow ugc\">Manage Enrollments for LearnDash LMS\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fautocomplete-learndash-lessons-and-topics\u002F\" rel=\"nofollow ugc\">Autocomplete LearnDash Lessons and Topics\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Flearndash-visibility-control\u002F\" rel=\"nofollow ugc\">Visibility Control for LearnDash LMS\u003C\u002Fa>\u003C\u002Fp>\n","Manual Completions for LearnDash lets you check completion as well as manually mark courses, lessons, topics and quizzes as complete.",200,7868,50,2,"2025-09-11T07:16:00.000Z",[19,20,63,22,23],"learndash","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learndash\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-learndash.zip",{"slug":67,"name":68,"version":69,"author":7,"author_profile":8,"description":70,"short_description":71,"active_installs":59,"downloaded":72,"rating":13,"num_ratings":13,"last_updated":73,"tested_up_to":15,"requires_at_least":16,"requires_php":46,"tags":74,"homepage":76,"download_link":77,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"manual-completions-learnpress","Manual Completions for LearnPress","1.0","\u003Cp>Manual Completions for LearnPress provides a very simple interface to check completion as well as manually mark courses, sections, lessons and quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, section_id, lesson_id, quiz_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. LearnPress LMS\u003Cbr \u002F>\n2. GrassBlade xAPI Companion\u003C\u002Fp>\n","Manual Completions for LearnPress lets you manually mark courses, sections, lessons, and quizzes as complete, individually or in bulk.",716,"2025-09-11T07:17:00.000Z",[19,20,75,22,23],"learnpress","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learnpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-learnpress.1.0.zip",{"slug":79,"name":80,"version":69,"author":7,"author_profile":8,"description":81,"short_description":82,"active_installs":13,"downloaded":83,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":46,"tags":84,"homepage":86,"download_link":87,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"manual-completions-masterstudy","Manual Completions for MasterStudy LMS","\u003Cp>Manual Completions for MasterStudy LMS provides a very simple interface to check completion as well as manually mark courses, lessons and quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, lesson_id, quiz_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. MasterStudy LMS\u003Cbr \u002F>\n2. GrassBlade xAPI Companion\u003C\u002Fp>\n","Manual Completions for MasterStudy LMS lets you check completion as well as manually mark courses, lessons and quizzes as complete.",845,[19,22,23,85],"masterstudy","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-masterstudy\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-masterstudy.1.0.zip",{"slug":89,"name":90,"version":69,"author":7,"author_profile":8,"description":91,"short_description":92,"active_installs":13,"downloaded":93,"rating":13,"num_ratings":13,"last_updated":94,"tested_up_to":15,"requires_at_least":16,"requires_php":46,"tags":95,"homepage":97,"download_link":98,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"manual-completions-sensei","Manual Completions for Sensei LMS","\u003Cp>Manual Completions for Sensei LMS provides a very simple interface to check completion as well as manually mark courses, lessons and lessons with quizzes as complete.\u003C\u002Fp>\n\u003Cp>You can use it for single completions as well as for \u003Cstrong>bulk completions\u003C\u002Fstrong> of hundreds of users. In one click, get all the enrolled users in the course.\u003C\u002Fp>\n\u003Cp>You can also upload a CSV files with user_id, course_id, module_id and lesson_id. To quickly list all the completions, and then process them in bulk in any order you want.\u003C\u002Fp>\n\u003Cp>You can also bypass completions blocked by GrassBlade xAPI Companion for xAPI Contents.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tracking:\u003C\u002Fstrong>\u003Cbr \u002F>\n– If you have an LRS, you can see tracking data, including the user id and name of the admin who marked the lesson complete.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Requirements to use this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin you need these two plugins:\u003Cbr \u002F>\n1. Sensei LMS\u003Cbr \u002F>\n2. GrassBlade xAPI Companion\u003C\u002Fp>\n","Effortlessly check and manually complete Sensei LMS courses, lessons, and quizzes. Supports individual updates and bulk CSV uploads.",147,"2025-11-25T13:42:00.000Z",[19,22,23,96],"sensei","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-sensei\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmanual-completions-sensei.1.0.zip",{"attackSurface":100,"codeSignals":153,"taintFlows":177,"riskAssessment":178,"analyzedAt":186},{"hooks":101,"ajaxHandlers":130,"restRoutes":149,"shortcodes":150,"cronEvents":151,"entryPointCount":152,"unprotectedCount":13},[102,108,113,117,121,124,126],{"type":103,"name":104,"callback":105,"priority":11,"file":106,"line":107},"action","admin_menu","menu","manual_completions_lifterlms.php",34,{"type":109,"name":110,"callback":110,"priority":111,"file":106,"line":112},"filter","lifter_submenu",1,39,{"type":103,"name":114,"callback":115,"file":106,"line":116},"admin_init","process_upload",40,{"type":103,"name":118,"callback":119,"file":106,"line":120},"admin_print_styles","manual_completions_lifter_scripts",80,{"type":109,"name":122,"callback":122,"file":106,"line":123},"upload_mimes",88,{"type":103,"name":118,"callback":119,"file":106,"line":125},196,{"type":109,"name":127,"callback":128,"priority":111,"file":106,"line":129},"lifter_process_mark_complete","grassblade_lifter_process_mark_complete",557,[131,137,141,145],{"action":132,"nopriv":133,"callback":134,"hasNonce":133,"hasCapCheck":135,"file":106,"line":136},"manual_completions_lifter_course_selected",false,"course_selected",true,35,{"action":138,"nopriv":133,"callback":139,"hasNonce":133,"hasCapCheck":135,"file":106,"line":140},"manual_completions_lifter_mark_complete","mark_complete",36,{"action":142,"nopriv":133,"callback":143,"hasNonce":133,"hasCapCheck":135,"file":106,"line":144},"manual_completions_lifter_check_completion","check_completion",37,{"action":146,"nopriv":133,"callback":147,"hasNonce":133,"hasCapCheck":135,"file":106,"line":148},"manual_completions_lifter_get_enrolled_users","get_enrolled_users",38,[],[],[],4,{"dangerousFunctions":154,"sqlUsage":155,"outputEscaping":160,"fileOperations":13,"externalRequests":13,"nonceChecks":111,"capabilityChecks":172,"bundledLibraries":173},[],{"prepared":13,"raw":111,"locations":156},[157],{"file":106,"line":158,"context":159},207,"$wpdb->get_results() with variable interpolation",{"escaped":161,"rawEcho":162,"locations":163},42,3,[164,168,170],{"file":165,"line":166,"context":167},"form.php",104,"raw output",{"file":106,"line":169,"context":167},326,{"file":106,"line":171,"context":167},746,6,[174],{"name":175,"version":27,"knownCves":176},"Select2",[],[],{"summary":179,"deductions":180},"The plugin \"manual-completions-lifterlms\" v1.1 exhibits a generally good security posture based on the static analysis. All identified entry points, including AJAX handlers, lack direct authentication checks, which is a significant concern. However, the presence of nonce and capability checks on all AJAX handlers mitigates this risk considerably by ensuring proper authorization for these operations. The plugin also demonstrates strong output escaping practices, with only a small percentage of outputs not being properly escaped, which reduces the risk of cross-site scripting (XSS) vulnerabilities. There are no recorded vulnerabilities in its history, suggesting a history of secure development. The absence of SQL injection risks due to the sole SQL query not using prepared statements is a notable weakness. The bundled Select2 library, while not explicitly stated as outdated, could potentially introduce risks if not kept up-to-date.\n\nDespite the lack of critical or high-severity issues in taint analysis and a clean vulnerability history, the reliance on raw SQL queries without prepared statements presents a potential SQL injection risk. While the attack surface is small and all entry points appear to have authorization checks, the core of the concern lies in the implementation details of those checks and the handling of the single SQL query. The plugin's strengths lie in its comprehensive output escaping and lack of historical vulnerabilities, but the SQL query handling needs attention to solidify its security.",[181,184],{"reason":182,"points":183},"SQL queries not using prepared statements",7,{"reason":185,"points":60},"Minor percentage of unescaped output","2026-03-16T23:43:41.110Z",{"wat":188,"direct":202},{"assetPaths":189,"generatorPatterns":195,"scriptPaths":196,"versionParams":197},[190,191,192,193,194],"\u002Fwp-content\u002Fplugins\u002Fmanual-completions-lifterlms\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Fmanual-completions-lifterlms\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fmanual-completions-lifterlms\u002Fvendor\u002Fselect2\u002Fjs\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Fmanual-completions-lifterlms\u002Fvendor\u002Fselect2\u002Fcss\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Fmanual-completions-lifterlms\u002Fimg\u002Ficon-gb.png",[],[190,192],[198,199,200,201],"manual_completions_lifterlms\u002Fscript.js?ver=","manual_completions_lifterlms\u002Fstyle.css?ver=","manual_completions_lifterlms\u002Fvendor\u002Fselect2\u002Fjs\u002Fselect2.min.js?ver=","manual_completions_lifterlms\u002Fvendor\u002Fselect2\u002Fcss\u002Fselect2.min.css?ver=",{"cssClasses":203,"htmlComments":206,"htmlAttributes":207,"restEndpoints":209,"jsGlobals":210,"shortcodeOutput":212},[204,205],"manual_completions_lifter_table","has_xapi",[],[208],"data-gbmc_lifterlms_nonce",[],[211],"manual_completions_lifter",[]]