| 开发者 |
cburleigh
cjswebservice |
|---|---|
| 更新时间 | 2026年9月20日 01:30 |
| 捐献地址: | 去捐款 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp_mail() if the daily cap is reached. You can also skip Brevo entirely and use whatever SMTP plugin you already run./wp-content/plugins/tradeschool-manager/.[tsm_student_portal][tsm_teacher_portal][tsm_parent_portal]Back up the database and uploads, then test on a staging copy. Replace the core plugin in place; keep the folder tradeschool-manager and do not uninstall it. Update installed Certificates to 1.3.19, Workshops to 1.0.25, Custom Fields & Student Documents to 1.2.18, and Invoicing & Contracts to 1.1.10 as part of the same upgrade. Internal IDs and existing add-on relationships do not change.
Permanent deletion now requires InnoDB storage for the affected tables and an updated, active cleanup provider when related add-on records exist. If a provider is unavailable, deletion stops instead of abandoning its records. Use Drop/Archive when you want to keep history. Archived academic records must be unarchived before permanent deletion. Related private files are removed only after the database commit; failed removals are queued for retry.
For new students, leave id blank, place your school's ID in student_number, and supply at least a first or last name, or an email. Student Number is optional and unique when nonblank. Keep identifier columns formatted as Text in spreadsheet software so it does not remove leading zeros.
For an existing student, enable Update existing and identify the student by internal id, student_number, or email. A supplied internal id must already exist. Conflicting identifiers skip the row. To change only a phone number, for example, include only student_number,phone; omitted columns (including photos) are preserved. A supplied blank cell clears that field, except a blank password never clears the password.
Class Enrollments links existing students to existing classes. Use one student identifier (student_id, student_number, or student_email), and either class_id or class_name plus the visible school_year name. If you supply extra identifiers, all must exist and agree. Clear unused columns and remove example rows. Invalid IDs do not fall back to names. Assignment imports follow the same class-matching rule in both import screens. Enrollment imports are additive; they do not unenroll students missing from the file.
New exports include _tsm_csv_encoding=tsm-v1 so spreadsheet-safe apostrophe escaping can be reversed when re-imported. Keep this column and the escape characters unchanged when editing an export. For IDs with intentional leading apostrophes, the export doubles that first apostrophe. Do not add the encoding column to files from another platform. Older/unmarked files are read literally; check formula-prefixed IDs in old exports before importing. Spreadsheet software can still change text/number formatting, so review the CSV before importing.
No. The free plugin runs entirely on your own WordPress install with no key validation and no calls home. Email via Brevo is opt-in and requires only a free Brevo account.
Yes. The Year Rollover tool copies class definitions and assignments into a new year while preserving the source year's roster, grades, and attendance exactly as they were. Prior-year report cards and reports continue to render correctly forever.
Yes. The student portal authenticates against the student record and scopes every query to that student. Teachers similarly only see their assigned classes. Sponsors and authorized contacts only see students they're linked to.
Yes. Each class can use points, weighted categories, or pass/fail. Pass/fail classes with no graded work display " - " rather than a misleading "Fail".
Install the optional Invoicing & Contracts add-on from tradeschoolmanager.com. The free plugin does not handle invoicing or payments.
Document uploads ship in the optional Custom Fields & Student Documents add-on. When installed, files are stored in a private tsm-private/student-docs/ directory inside wp-content/uploads, protected by an .htaccess deny rule and SHA-prefixed filenames, with a full upload/download/delete audit log for government chain-of-custody.
Yes. The portals render inside your active theme via shortcodes and inherit your theme's colors and typography. Optional portal-theme polish is built in and can be disabled per page.
Yes. All user-facing strings use the tradeschool-manager text domain. WordPress 4.6+ auto-loads translations hosted on WordPress.org.
Class assignments use the separate Class Enrollments tab under TradeSchool > Import / Export. Identify a student with student_id (TradeSchool Manager's internal ID), student_number (your school's ID), or student_email. Identify a class with class_id, or with both class_name and school_year. The school_year value is the visible school-year name. Imports are additive and never unenroll students whose rows are absent.
Download the Students template under TradeSchool > Import / Export > Students. Leave the id column blank for new records and place the previous platform's identifier in student_number. Student Numbers are optional text values up to 100 characters, so values such as STU-00087 are supported. Each nonblank Student Number must be unique. When working in Excel or another spreadsheet application, format the student_number column as Text before pasting numeric identifiers so the spreadsheet does not remove leading zeros.
When Update existing students is selected, matching is performed by internal id, then student_number, then email. If supplied identifiers point to different students, the row is skipped rather than merging records. After importing students, the same student_number values can be used in the Class Enrollments CSV.
tradeschool_manager_ prefix for Plugin Check.tradeschool-manager plugin slug used by Plugin Check.tradeschoolmanager_ prefix used for Plugin Check inference.