{"id":187306,"date":"2024-03-19T09:23:37","date_gmt":"2024-03-19T09:23:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tutor-lms-reviews\/"},"modified":"2026-08-13T19:13:45","modified_gmt":"2026-08-13T19:13:45","slug":"reviews-tutor-lms","status":"publish","type":"plugin","link":"https:\/\/mlt.wordpress.org\/plugins\/reviews-tutor-lms\/","author":6369855,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Reviews for Tutor LMS","header_author":"Vlad Ilie","header_description":"Add \"Reviews\" submenu in your Tutor LMS installation.","assets_banners_color":"","last_updated":"2026-08-13 19:13:45","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/vladutilie","header_plugin_uri":"","header_author_uri":"https:\/\/vladilie.ro","rating":3,"author_block_rating":0,"active_installs":300,"downloads":4480,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vladwtz","date":"2024-03-19 09:23:04"},"1.0.1":{"tag":"1.0.1","author":"vladwtz","date":"2024-03-20 07:11:35"},"1.0.2":{"tag":"1.0.2","author":"vladwtz","date":"2024-11-20 11:45:25"},"1.0.3":{"tag":"1.0.3","author":"vladwtz","date":"2026-08-13 19:13:45"}},"upgrade_notice":{"1.0.3":"<p>Security release. Fixes escaping of review content in the admin table and enforces capability checks on all moderation actions. Updating is recommended for all users.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3055009,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3055009,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3646072,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=reviews-tutor-lms\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"6.7\"},\"steps\":[{\"step\":\"login\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"tutor\"},\"options\":{\"activate\":false}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"reviews-tutor-lms\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php require_once 'wordpress\\\/wp-load.php';  activate_plugin( 'tutor\\\/tutor.php' ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php require_once 'wordpress\\\/wp-load.php'; $post_id = wp_insert_post( array( 'post_author' => 1, 'post_title' => 'My Tutor LMS first course', 'post_content' => 'Hello, this is my first course.', 'post_status' => 'publish', 'post_type' => 'courses', ) ); $reviews = array( array( 'reviewer' => 'John Doe', 'review' => 'Integer quis rutrum purus, vel elementum ligula. Vivamus bibendum purus vitae massa varius, non aliquam urna accumsan.', 'status' => 'approved', ), array( 'reviewer' => 'Jane Doe', 'review' => 'Fusce pharetra orci ac mi feugiat lacinia. Integer ac mi a ligula faucibus pharetra vel vel ligula.', 'status' => 'hold', ), array( 'reviewer' => 'Vlad', 'review' => 'Fusce pharetra orci ac mi feugiat lacinia. Integer ac mi a ligula faucibus pharetra vel vel ligula.', 'status' => 'spam', ), ); foreach ( $reviews as $review ) { wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_author' => $review['reviewer'], 'comment_content' => $review['review'], 'comment_agent' => 'TutorLMSPlugin', 'comment_type' => 'tutor_course_rating', 'comment_approved' => $review['status'], 'comment_meta' => array( 'tutor_rating' => rand( 1, 5 ) ), ) ); } ?>\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3646072,"resolution":"1","location":"plugin","width":3712,"height":972}},"screenshots":{"1":"Reviews list table"}},"plugin_section":[],"plugin_tags":[1519,225666,179218],"plugin_category":[53],"plugin_contributors":[93068],"plugin_business_model":[],"class_list":["post-187306","plugin","type-plugin","status-publish","hentry","plugin_tags-reviews","plugin_tags-reviews-addon","plugin_tags-tutor-lms","plugin_category-ratings-and-reviews","plugin_contributors-vladwtz","plugin_committers-vladwtz"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/reviews-tutor-lms\/assets\/icon-128x128.png?rev=3055009","icon_2x":"https:\/\/ps.w.org\/reviews-tutor-lms\/assets\/icon-256x256.png?rev=3055009","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/reviews-tutor-lms\/trunk\/screenshot-1.png?rev=3646072","caption":"Reviews list table"}],"raw_content":"<!--section=description-->\n<p>The Reviews for Tutor LMS plugin provides additional functionality for managing reviews received on online courses. It allows you to approve, disapprove, mark as spam, or delete reviews individually and in bulk.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure you have the <code>Tutor LMS<\/code> plugin installed and activated.<\/li>\n<li>Upload the <code>reviews-tutor-lms<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20does%20this%20plugin%20exist%3F\"><h3>Why does this plugin exist?<\/h3><\/dt>\n<dd><p>I use and appreciate the Tutor LMS plugin, but decent functionality should have included review management in the free version. Anyone who needs Tutor LMS and course reviews can use this module that implements their management simply and affordably.<\/p><\/dd>\n<dt id=\"how%20can%20i%20contribute%20to%20this%20plugin%3F\"><h3>How can I contribute to this plugin?<\/h3><\/dt>\n<dd><p>The plugin is hosted on <a href=\"https:\/\/github.com\/vladutilie\/reviews-tutor-lms\">GitHub<\/a>, where it is developed and maintained.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<p>This is a security release. Updating is recommended for all users.<\/p>\n\n<ul>\n<li>Security: Escape review content, reviewer names and course titles before they are rendered in the reviews table. A review submitted from the front end could previously inject HTML into the moderation screen.<\/li>\n<li>Security: Require the review management capability for every moderation action. Approving, spamming, trashing and deleting reviews were previously protected by a nonce alone, without checking that the user was allowed to moderate.<\/li>\n<li>Security: Restrict the status filter and the sorting column to a known list of values before they reach the database.<\/li>\n<li>Security: Bind each row action to the nonce for the action it performs, so an approval link can no longer be reused to delete a review.<\/li>\n<li>Fix: Stop execution after redirecting, instead of continuing to render the page.<\/li>\n<li>Fix: Ignore unknown or empty bulk actions, which previously produced a database error.<\/li>\n<li>Fix: Permanently deleting reviews now works from the Spam view, not only from Trash.<\/li>\n<li>Fix: The status filter links no longer accumulate the previously selected status.<\/li>\n<li>Fix: Ratings outside the 1 to 5 range no longer raise an error on PHP 8.<\/li>\n<li>Tested with WordPress 7.0 and PHP 7.4 through 8.5.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.7, Tutor LMS 3.0.0 and PHP 8.3.13.<\/li>\n<li>Live preview fixed.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Displays the reviewer's username, without a URL to their profile, when they do not have an account on the site.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"The Reviews for Tutor LMS plugin is an addon for Tutor LMS that allows you to manage course reviews.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/187306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=187306"}],"author":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vladwtz"}],"wp:attachment":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=187306"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=187306"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=187306"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=187306"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=187306"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=187306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}