PressPrimer Assignment – Homework Submission, Document Viewer & LMS Grading Workflows
PressPrimer Assignment is a professional assignment submission and grading plugin that gives WordPress educators everything they need to collect student work, provide meaningful feedback, and track grades, all without juggling email attachments, shared drives, or clunky LMS add-ons. Students get a clean, focused submission experience. Teachers get a centralized grading dashboard with a built-in document viewer, rich text feedback, and inline annotations available via the School addon. And you keep full control of your data on your own WordPress site. This is a genuinely free plugin. Unlimited assignments, unlimited submissions, full grading tools, LMS integration, and email notifications are all included at no cost. We earn upgrades by building specialized features worth paying for — like group management, rubric grading, AI-assisted grading and proofreading, document annotations, anonymous grading, AI content and plagiarism detection, xAPI / LRS support, automated data retention, audit logging, and white-label branding — not by crippling what you get for free. Why PressPrimer Assignment? Built-in assignment tools in WordPress LMS plugins are often afterthoughts, limited to basic file uploads with no real grading workflow, limited feedback options, and dated interfaces. Dedicated assignment platforms charge monthly fees with per-student pricing that gets expensive fast. PressPrimer Assignment delivers a focused, polished assignment workflow with the features educators actually need: Flexible Submission Types – Accept file uploads, rich text submissions, or let students choose. Support for PDF, DOCX, PPTX, TXT, RTF, ODT, and image files out of the box. Grade Without Leaving WordPress – A dedicated grading queue with a side-by-side interface: the student’s document renders on the left while you score and write feedback on the right. Built-in viewers for PDF, Word documents, PowerPoint decks, images, and text files mean you never have to download, open, and track files on your desktop. Native LMS Integration – Works with LearnDash, Tutor LMS, LifterLMS, and LearnPress. Assignments appear in lessons, passing grades trigger lesson completion, and instructor roles are mapped automatically. Secure File Handling – Six-layer file validation and permission-based file serving. Student files are never directly accessible via URL. Customizable Email Notifications – Automatic emails for submission confirmation, grade release, and new submission alerts. Fully customizable templates with token placeholders. Three Professional Themes – Default, Modern, and Minimal themes that match the PressPrimer Quiz visual style. Features Included Free PressPrimer Assignment includes everything you need to manage assignments at any scale: Assignment Creation Unlimited assignments and submissions Configurable maximum points and passing score Three submission types: file upload, text/rich text, or student’s choice Configurable file types, file size limits, and multiple files per submission Duplicate any assignment to copy its settings Student Submission Experience Drag-and-drop file upload with progress indicators TinyMCE rich text editor with live word count and auto-save drafts Student notes field for context or questions View submission status, grade, and instructor feedback Previous submission history with feedback for each attempt Grading & Feedback Centralized grading queue with filter and sort Side-by-side grading interface: document viewer on the left, grading panel on the right Built-in viewers render PDF, DOCX, PPTX slides, images, and text files directly in WordPress; no downloading required Automatic text extraction from PDF, DOCX, PPTX, ODT, RTF, and TXT files with quality scoring Rich text feedback editor with bold, italic, lists, and links — feedback is rendered with its formatting on the student view, not as plain text Submissions list filterable by score range, feedback presence, and submission date range Grading guidelines reference panel pulled from the assignment Email Notifications Submission confirmation, grade notification, and new submission alert emails Customizable subject and body templates per email type Token placeholders: student name, assignment title, score, feedback URL, and more Admin Dashboard & Reports Dashboard with submission statistics, activity chart, and recent submissions Reports page with filterable submission data Security & Accessibility Six-layer file upload validation (extension whitelist, MIME verification, double-extension blocking, dangerous file rejection) Files stored outside webroot with permission-based serving through PHP Capability-based access control (teachers see only their own assignments) WordPress Privacy API integration (Tools > Export/Erase Personal Data) Clean uninstall with optional complete data and file removal Keyboard navigation, screen reader support, and reduced motion preferences Perfect For Course creators using LearnDash, Tutor LMS, LifterLMS, or LearnPress who need better assignments than built-in tools University departments collecting essays, lab reports, or research papers Corporate trainers gathering certification documents and project deliverables Standalone WordPress educators who need assignments without a full LMS Online course entrepreneurs selling courses with graded assignments Built-in Integrations PressPrimer Assignment automatically detects and integrates with popular WordPress LMS plugins: LearnDash: Attach assignments to lessons or topics via the editor sidebar. Passing an assignment can automatically mark the lesson or topic complete. LearnDash Group Leaders are granted teacher-level permissions to create assignments and grade their students’ submissions. The “Mark Complete” button is hidden until a required assignment is passed. Tutor LMS: Attach assignments to lessons via the course builder. Passing an assignment can auto-complete the lesson and trigger course completion when all lessons are done. Tutor LMS Instructors are granted teacher-level permissions. LifterLMS: Attach assignments to lessons via meta box. Passing an assignment can auto-complete the lesson and course. Works with open/free courses, enrolled students, and instructor roles. LearnPress: Attach assignments to lessons via the lesson settings panel. Link passing an assignment to lesson and course completion. Works with open courses, enrolled students, and instructor roles. Uncanny Automator: Four triggers available—user submits an assignment, user is graded, user passes, user fails. All integrations are bundled in the free version. Premium Features Unlock additional premium features at pressprimer.com. Premium capabilities are organized across three tiers — Educator, School, and Enterprise — each building on the one below it: Educator Groups & Assignments – Organize students into groups, distribute assignments with per-group due dates, and track completion progress. Group Reports – Per-group completion dashboards with submission status grids, score distributions with pass-threshold coloring, drill-down student data. Rubric Builder – Create analytic rubrics with criteria and performance levels, attach them to assignments for structured grading with automatic score calculation and per-criterion feedback. Per-Criteria Report – See where students are struggling at the rubric-criterion level. Teacher Role – Teachers manage their own groups and grade only their students’ submissions, while admins retain full access to all data. Data Retention & Cleanup – Automatically prune old submission files and orphaned data. School (everything in Educator, plus) Inline Document Annotations – Mark up PDFs, images, and text submissions directly in the grading interface with highlights, underline, strikethrough, freehand drawing, and comments. AI-Assisted Grading – Generate suggested scores and feedback for submissions using OpenAI or Anthropic. Rubric-aware: returns per-criterion scores when a rubric is attached. AI Proofreading – Detect spelling and grammar issues in student submissions with one-click insertion of notes into feedback. Configurable locale for regional spelling variants. xAPI / LRS Integration – Send Experience API statements to your Learning Record Store. Built-in queueing system ensures reliable delivery. Enterprise (everything in School, plus) AI Content & Plagiarism Detection – Run submitted text through Winston AI, GPTZero, or Originality.ai to surface AI-generated content and plagiarism scores. Auto-check on submission or run manually. Provider-aware grading panel shows scores and interpretation. Plagiarism Report – Cohort-wide report with AI-likelihood and originality-score distributions, stat cards, a per-provider confidence breakdown, and a paginated flagged-submissions table with color-coded scores and tooltips explaining exactly why each row was flagged. Anonymous Grading – Per-assignment toggle that masks student identity throughout the grading window so grades aren’t biased by who wrote the work. Identity stays hidden until submissions have been graded and returned. Audit Logging – Immutable log of every assignment, submission, grading, settings change, annotation, xAPI emission, plagiarism check, and cleanup run with configurable retention, role-based viewer, and export. Audit Trail report on the Reports page surfaces filterable events with object links and a search box. White-Label Branding – Remove all PressPrimer branding and customize with your own plugin name, logos, colors, and custom CSS. Built for Developers Action hooks for assignment creation, submission, grading, and email events Filter hooks for submission permissions, file access, email templates, and role mapping Full REST API for assignments, submissions, files, categories, and statistics Custom database tables with automatic schema migration Documentation & Support Knowledge Base Source Code & Development The full uncompressed source code for all JavaScript and CSS files is available in our public GitHub repository: GitHub Repository The /src directory contains all unminified source files. The plugin uses webpack for building production assets. To rebuild from source: Clone the repository Run npm install to install dependencies Run npm run build to compile assets Privacy PressPrimer Assignment stores student submission data (files, text, grades, and feedback) in your WordPress database under your full control. No student or submission data is ever transmitted to external servers. The single exception to “nothing leaves your site” is the optional email-course opt-in described under External Services — it sends only an email address that an administrator or teacher explicitly typed in and submitted. All submitted files are stored in a protected directory under wp-content/uploads/ppa-submissions/ and served via PHP with permission checks. The plugin integrates with the WordPress Privacy API: Tools > Export Personal Data — includes all submissions, grades, feedback, and uploaded file metadata for the requested user. Tools > Erase Personal Data — permanently deletes all submissions, grades, and uploaded files for the requested user. Administrators can permanently delete all plugin data (database tables, uploaded files, options, and user meta) via Settings > Advanced > “Remove all data on uninstall” before uninstalling the plugin. External Services This plugin offers an optional free email course for teachers and administrators. When — and only when — a user types their email address into the opt-in form and clicks the subscribe button, the plugin connects to pressprimer.com to register the subscription. When: Only on an explicit opt-in submission. No request is ever made automatically — no telemetry, no activation pings, no environment data. What data: The typed email address and a tag naming which screen the form was on. Nothing else. Unsubscribing: Every email includes an unsubscribe link, honored immediately. Terms of Service: https://pressprimer.com/terms/ Privacy Policy: https://pressprimer.com/privacy/ Dismissing the offer is remembered permanently and is stored only on your own site. Third-Party Libraries The plugin bundles the following open-source JavaScript libraries (compiled into the plugin’s script bundles; nothing is loaded from a CDN and no external requests are made): PDF.js (pdfjs-dist 3.11.174) — Apache-2.0 by Mozilla — renders PDF submissions in the browser. https://github.com/mozilla/pdf.js Mammoth (mammoth 1.8.0) — BSD-2-Clause — renders Word (.docx) submissions in the browser. https://github.com/mwilliamson/mammoth.js PptxViewJS (pptxviewjs 1.1.9, pinned) — MIT — renders PowerPoint (.pptx) submissions as slides on a canvas. Rendering is approximate for exotic constructs; the original file is always downloadable. https://github.com/gptsci/pptxviewjs Chart.js (chart.js 4.x) — MIT — used by PptxViewJS to draw charts embedded in presentations. https://github.com/chartjs/Chart.js JSZip (jszip 3.x) — MIT — reads the PPTX (ZIP) container in the browser. https://github.com/Stuk/jszip
Top keywords
- submission24×1.33%
- assignment22×1.22%
- grading21×1.17%
- assignments17×0.94%
- data17×0.94%
- submissions17×0.94%
- feedback16×0.89%
- files16×0.89%
- file15×0.83%
- student13×0.72%
- text13×0.72%
- email12×0.67%
Widget Areas for LearnDash
Widget Areas for LearnDash simply gives you more places to add custom content in LearnDash. By utilizing built-in LearnDash action hooks, we assign widget areas (also known as “sidebars”) to various locations throughout your LearnDash pages. Available LearnDash Widget Areas Focus Mode: Sidebar: Above Navigation Focus Mode: Sidebar: Below Navigation Focus Mode: Content: Start Focus Mode: Below Content Course Page: Content: Start Course Page: Content: End Group Page: Content: Start Group Page: Content: End Requires the “LearnDash 3.0” Active Template. Tested with LearnDash 4.23. How to Use Upon activating the plugin, new widget areas will appear on the Appearance > Widgets screen in your WordPress admin area. You can also access them via the Customizer (Appearance > Customize > Widgets). Simply add the blocks/widgets you’d like to insert into the corresponding widget areas. Be sure to click the “Save” button at the bottom. Navigate to a page that contains that widget area, refresh, and your new widgets will be there. Types of Content to Add WordPress comes with a set of default widgets, several of which might be useful. If you’re using the new block editor, all blocks will also be available to you. Add a simple Paragraph block with some basic text Add an Image or Video/Embed block for more visual content Add a Navigation Menu widget to insert a custom menu you’ve created Add your own Custom HTML widget to embed an or write your own code TIP: You can use the LearnDash Student and LearnDash Visitor blocks to display a block’s contents only to enrolled students or unenrolled visitors. LearnDash Widgets LearnDash comes prepackaged with a few widgets, but there’s probably only one that makes sense in these widget areas. Add a Course Progress Bar to the top or bottom of your Focus Mode sidebar Feel free to experiment with the other LearnDash widgets. Elementor Templates If you’re using Elementor Pro, you can create a custom section and embed it anywhere on your site, including in your new LearnDash widget areas. There are two ways to do this: When you go to insert a block/widget, select the Elementor Library widget. Choose a template from the dropdown menu. Click “Save.” Navigate to Templates > Saved Templates. Copy the shortcode next to the template you want to insert. Now you’ll insert a Shortcode block into the widget area, and paste the shortcode. For more information, see the article in Elementor’s knowledge base. Widget Area CSS Class Names If you need to target the widget areas to apply custom styles using CSS, you can use the following class names. All widget areas have the .ldx-widget-area class. Focus Mode: Sidebar: Above Navigation – .ldx-widget-area.fm-nav-before Focus Mode: Sidebar: After Navigation – .ldx-widget-area.fm-nav-after Focus Mode: Content: Start – .ldx-widget-area.fm-content-start Focus Mode: Below Content – .ldx-widget-area.fm-content-bottom Course Page: Content: Start – .ldx-widget-area.course-content-start Course Page: Content: End – .ldx-widget-area.course-content-end Group Page: Content: Start – .ldx-widget-area.group-content-start Group Page: Content: End – .ldx-widget-area.group-content-end Example Usage: .ldx-widget-area.fm-nav-before { margin: 1em; } This would add 1em of spacing around the widget area that appears above the navigation in the Focus Mode sidebar. In addition, all widgets placed inside of a widget area have a class of .ldx-widget. Show/Hide Widgets on Certain Devices While not a direct feature of this plugin, you can show/hide widgets on different devices using another free plugin. Install & activate the Widget Options plugin Navigate to the widget that you’d like to adjust the visibility on Scroll to the bottom and click on the tab with the mobile phone Choose to either show or hide on the checked devices Check the appropriate devices Click “Save” Show/Hide Widgets on Specific Course/Lesson/Topic Pages Another feature of the free Widget Options plugin (mentioned above) is to only show widgets on specific course, lesson, topic or quiz pages. Install & activate the Widget Options plugin Navigate to the widget that you’d like to adjust the visibility on Scroll to the bottom and click on the settings cog icon Click on the Logic tab In the text box, you can use the is_single() conditional tag to only display that widget on a specific page Use the ID of the course, lesson, topic or quiz 👉 How to find the ID of LearnDash content Example: This would only display the widget on the page with an ID of 7: is_single( '7' ) If you wanted to display a widget on multiple pages (with IDs of 1, 2 and 3), your code would look like this: is_single( array( 1, 2, 3 ) ) There are many more WordPress conditional tags you can use. From within WordPress Visit “Plugins > Add New” Search for “Widget Areas for LearnDash” Click the “Install” button Click the “Activate” button Navigate to “Appearance > Widgets” or open the Customizer to start adding blocks/widgets to your new widget areas