{"id":288995,"date":"2026-04-06T17:23:04","date_gmt":"2026-04-06T17:23:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/my-trail-camera\/"},"modified":"2026-04-07T05:31:15","modified_gmt":"2026-04-07T05:31:15","slug":"my-trail-camera","status":"publish","type":"plugin","link":"https:\/\/ltz.wordpress.org\/plugins\/my-trail-camera\/","author":16790394,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"8.2.1","stable_tag":"8.2.1","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"My Trail Camera","header_author":"w1k","header_description":"Trail camera management with anti-theft protection. Track deployments, estimate battery life, generate honeypot bait files, and get notified when a stolen camera is detected.","assets_banners_color":"897d4a","last_updated":"2026-04-07 05:31:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/my-trail-camera\/","header_author_uri":"https:\/\/turiecfoto.sk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":97,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"8.2.0":{"tag":"8.2.0","author":"vitocech","date":"2026-04-06 17:25:06"},"8.2.1":{"tag":"8.2.1","author":"vitocech","date":"2026-04-07 05:31:15"}},"upgrade_notice":{"8.1.1":"<p>Automatic migration \u2014 all data is preserved. Database tables and options are renamed with the new thor_ prefix.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3500074,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3500058,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3500065,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["8.2.0","8.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[259565,259564,259571,259563,37189],"plugin_category":[54],"plugin_contributors":[78154,259566,259567],"plugin_business_model":[],"class_list":["post-288995","plugin","type-plugin","status-publish","hentry","plugin_tags-anti-theft","plugin_tags-camera-trap","plugin_tags-stolen-camera","plugin_tags-trail-camera","plugin_tags-wildlife","plugin_category-security-and-spam-protection","plugin_contributors-freemius","plugin_contributors-vitocech","plugin_contributors-w1k","plugin_committers-vitocech"],"banners":{"banner":"https:\/\/ps.w.org\/my-trail-camera\/assets\/banner-772x250.jpg?rev=3500065","banner_2x":"https:\/\/ps.w.org\/my-trail-camera\/assets\/banner-1544x500.jpg?rev=3500058","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/my-trail-camera\/assets\/icon-256x256.jpg?rev=3500074","icon_2x":"https:\/\/ps.w.org\/my-trail-camera\/assets\/icon-256x256.jpg?rev=3500074","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>The complete trail camera management and protection system for WordPress.<\/strong><\/p>\n\n<p>Whether you have a handful of trail cameras or a whole fleet, My Trail Camera keeps everything organized \u2014 models, locations, battery status, accessories, and total investment. And if a camera goes missing, the built-in honeypot trap gives you a real chance to get it back.<\/p>\n\n<p><strong>Camera Management<\/strong><\/p>\n\n<ul>\n<li>Register trail cameras with model, location, GPS coordinates, deploy date, and accessories<\/li>\n<li>80+ built-in camera profiles (Browning, Bushnell, Reconyx, Spypoint, Stealth Cam, Wachman, OXE, and 20+ more brands) with autocomplete search<\/li>\n<li>Battery life estimation based on camera profile, power type, trigger count, recording mode (photo\/video), and video resolution (480p\u20134K)<\/li>\n<li>Track accessories and security measures \u2014 batteries, SD cards, locks, metal boxes, GPS trackers (AirTag, Tile, Samsung SmartTag), SIM cards \u2014 with total gear value in \u20ac<\/li>\n<li>Serial number and IMEI tracking per camera<\/li>\n<li>Camera status tracking: active, stored, stolen (with date), tested, recovered, police reported<\/li>\n<li>Days-in-field counter with planned deployment duration and progress indicator<\/li>\n<li>Power type support: lithium, alkaline, solar panel, external power<\/li>\n<li>WordPress dashboard widget with active\/stolen counts, low battery warnings, and 24-hour detection summary<\/li>\n<li>Admin bar quick access with recent detection count badge<\/li>\n<li>Import\/export all camera data and settings as JSON backup<\/li>\n<\/ul>\n\n<p><strong>Anti-Theft: Honeypot Trap on Your SD Card<\/strong><\/p>\n\n<p>Trail camera theft is a real problem. My Trail Camera fights back \u2014 place hidden HTML files on your SD cards, and when a thief opens one on their computer or phone, you get their IP address, GPS location, and device fingerprint. Evidence you can hand straight to the police.<\/p>\n\n<ul>\n<li>Works with any trail camera that uses SD cards \u2014 no special hardware needed<\/li>\n<li>Generate a ZIP with trap files that mimic real camera file naming (manufacturer-specific)<\/li>\n<li>Captured data: IP address, GPS coordinates with accuracy, browser fingerprint (OS, screen resolution, timezone, CPU cores)<\/li>\n<li>Real-time email alerts to multiple recipients \u2014 immediate notification on every detection<\/li>\n<li>Recovery chance scoring (0\u2013100%) based on GPS accuracy, IP data, time factor, and device fingerprint \u2014 with recommended next steps<\/li>\n<li>Theft detection dashboard with per-camera filtering, detection history, and device analysis<\/li>\n<li>Owner test mode \u2014 open the trap file yourself to verify it works before deployment<\/li>\n<li>Works offline: trap files use GET requests for file:\/\/ protocol compatibility \u2014 data is sent as soon as the thief's device connects to the internet<\/li>\n<li>Public shortcode [mtcam_stolen_cameras] \u2014 display stolen camera cards so your community can help<\/li>\n<li>Secured with HMAC signature verification, nonce replay protection, device ID validation, and multi-layer rate limiting (per-IP, per-file, per-device)<\/li>\n<\/ul>\n\n<p><strong>Location Reviews &amp; Scoring<\/strong><\/p>\n\n<ul>\n<li>Rate your trail camera locations after each deployment (activity, wildlife interest, human disturbance, satisfaction)<\/li>\n<li>Automatic scoring algorithm: A (75+), B (50\u201375), C (25\u201350), D (under 25)<\/li>\n<li>Interactive Leaflet map with color-coded markers \u2014 find your best spots at a glance<\/li>\n<li>Statistics: total reviews, average score, total monitoring days, total recordings<\/li>\n<\/ul>\n\n<p><strong>Settings &amp; Tools<\/strong><\/p>\n\n<ul>\n<li>Email notification configuration with multiple recipients<\/li>\n<li>IP source selection: direct, Cloudflare (CF-Connecting-IP), or reverse proxy (X-Forwarded-For)<\/li>\n<li>Public widget visibility controls \u2014 choose exactly which fields to show for stolen cameras<\/li>\n<li>Privacy policy auto-contribution \u2014 automatically adds data collection disclosure to your site's privacy policy<\/li>\n<li>Maintenance tools: orphan record cleanup, manual data deletion, database optimization<\/li>\n<li>Import\/export cameras, settings, and location reviews as JSON<\/li>\n<li>Onboarding checklist for first-time setup<\/li>\n<li>KML export for Google Earth<\/li>\n<\/ul>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>The trap files only activate when someone opens them from a stolen SD card. No data is collected from your website visitors. See the FAQ for details on external services used.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following third-party services under specific circumstances:<\/p>\n\n<h4>Google Maps<\/h4>\n\n<p>GPS coordinate links. When a camera has GPS coordinates, the plugin displays a \"Open in Map\" link that opens Google Maps at that location. No data is sent automatically \u2014 the link is only followed when the admin clicks it.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/maps.google.com\/\">Google Maps<\/a><\/li>\n<li>Data sent: GPS latitude and longitude (as URL parameters, only when the admin clicks the link)<\/li>\n<li><a href=\"https:\/\/www.google.com\/intl\/en\/policies\/terms\/\">Terms of service<\/a><\/li>\n<li><a href=\"https:\/\/policies.google.com\/privacy\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<h4>OpenStreetMap<\/h4>\n\n<p>Map tiles for location reviews. Camera GPS coordinates are displayed on interactive maps using Leaflet.js with OpenStreetMap tile layers.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/www.openstreetmap.org\/\">OpenStreetMap<\/a><\/li>\n<li>Data sent: map tile requests contain viewport coordinates<\/li>\n<li><a href=\"https:\/\/wiki.osmfoundation.org\/wiki\/Terms_of_Use\">Terms of use<\/a><\/li>\n<li><a href=\"https:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<h4>Freemius<\/h4>\n\n<p>Software licensing and analytics platform used for optional plugin updates and upgrade management. Handles license verification and provides an upgrade path to the Pro version.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/freemius.com\/\">Freemius<\/a><\/li>\n<li>Data sent: site URL, plugin version, PHP version (standard WordPress plugin telemetry, opt-in)<\/li>\n<li><a href=\"https:\/\/freemius.com\/terms\/\">Terms of service<\/a><\/li>\n<li><a href=\"https:\/\/freemius.com\/privacy\/\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to the menu in your admin panel<\/li>\n<li>Add your first camera and configure notification settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20the%20bait%20files%20work%3F\"><h3>How do the bait files work?<\/h3><\/dt>\n<dd><p>The plugin generates HTML files that you place on your trail camera SD cards. If someone steals the camera and opens these files on their computer, the files silently report the thief's location and device information back to your WordPress site.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20any%20trail%20camera%3F\"><h3>Does this work with any trail camera?<\/h3><\/dt>\n<dd><p>Yes, works with any trail camera that uses SD cards. The bait files are standard HTML files that work on any computer or phone with a web browser.<\/p><\/dd>\n<dt id=\"is%20gps%20tracking%20accurate%3F\"><h3>Is GPS tracking accurate?<\/h3><\/dt>\n<dd><p>GPS accuracy depends on the thief's browser and device. Modern browsers can provide accuracy within 10-500 meters when the user grants location permission. The system also captures IP-based location as a fallback.<\/p><\/dd>\n<dt id=\"what%20data%20do%20the%20bait%20files%20collect%20and%20from%20whom%3F\"><h3>What data do the bait files collect and from whom?<\/h3><\/dt>\n<dd><p>Bait files collect IP address, browser fingerprint (user agent, screen resolution, timezone, OS), and optionally GPS coordinates \u2014 only when someone opens the HTML file from a stolen SD card. No data is collected from your website visitors. The camera owner can also open the bait file to verify it works, which marks the camera as \"tested\" using their own IP. All collected data is stored in your site database and can be deleted at any time. Data is automatically deleted after 90 days.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20use%20any%20external%20services%3F\"><h3>Does this plugin use any external services?<\/h3><\/dt>\n<dd><p>Yes. All external services are fully documented in the \"External services\" section below. A summary:<\/p>\n\n<ol>\n<li><strong>Google Maps<\/strong> \u2014 GPS coordinate links (user-initiated, no automatic data transfer).<\/li>\n<li><strong>OpenStreetMap<\/strong> \u2014 map tiles for location views. Sends viewport coordinates.<\/li>\n<li><strong>Freemius<\/strong> \u2014 license management and optional analytics. Opt-in.<\/li>\n<\/ol>\n\n<p>No data is collected from your website visitors. All services are documented with terms of use and privacy policy links in the \"External services\" section.<\/p>\n\n<p>Note: The plugin generates KML files for Google Earth export. The KML XML namespace reference (opengis.net\/kml) is a standard XML schema identifier \u2014 no data is sent to this domain.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>8.2.2<\/h4>\n\n<ul>\n<li>Camera profiles: 80+ built-in trail camera models (Wachman, OXE, Spypoint, Browning, Bushnell, Stealth Cam, Tactacam, Moultrie, Reconyx, GardePro, and 20+ more brands)<\/li>\n<li>Profiles split into per-manufacturer files (includes\/profiles\/*.php) \u2014 easy to add new models<\/li>\n<li>Profile autocomplete: text input with instant filtering by manufacturer\/model name, grouped by manufacturer with model count<\/li>\n<li>Video resolution setting: per-camera select populated from profile (480p\u20134K), affects battery estimation<\/li>\n<li>Battery estimation improvements: uses profile-specific battery capacity, standby drain, 4G drain, and per-photo consumption instead of hardcoded constants<\/li>\n<li>Photo mode battery calculation: realistic per-event drain from profile (drain_photo \u00d7 1.8 for night\/IR)<\/li>\n<li>Resolution power factor: higher resolution = proportionally higher video power draw (1080p=1.0, 2K=1.15, 4K=1.30)<\/li>\n<li>Night video draw updated from 600 to 750 mA (more realistic for IR illumination + processing)<\/li>\n<li>Camera detail: new \"Camera Profile\" section showing specs (FOV, battery, video, features, drain values, tip)<\/li>\n<li>SIM card accessory and IMEI field hidden for cameras without 4G capability (profile-aware)<\/li>\n<li>Metal Box added to accessories with price tracking; Security section label updated<\/li>\n<li>Edit form: camera model displayed as readonly text (not editable \u2014 model is physical)<\/li>\n<li>Moved thor_get_camera_total_value() and thor_battery_color() from cameras-battery.php to core-helpers.php<\/li>\n<li>Profile data corrections: verified FOV (lens vs PIR), battery capacity, video resolutions, SIM\/WiFi\/solar flags for all models<\/li>\n<li>Slovak translations: 1059 entries \u2014 all profile tips, battery types, and UI strings translated<\/li>\n<li>Compiled .mo translation file updated<\/li>\n<\/ul>\n\n<h4>8.2.1<\/h4>\n\n<ul>\n<li>Added external services documentation to readme<\/li>\n<li>Replaced inline script\/style tags with wp_add_inline_script and wp_add_inline_style<\/li>\n<li>Fixed Freemius SDK configuration for WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>8.2.0<\/h4>\n\n<ul>\n<li>Improved output escaping for full WordPress coding standards compliance<\/li>\n<li>Fixed PHP 7.4 compatibility (replaced str_contains with strpos)<\/li>\n<li>Inline sanitization of $_SERVER superglobals<\/li>\n<li>Enhanced battery estimation and camera management<\/li>\n<\/ul>\n\n<h4>8.1.1<\/h4>\n\n<ul>\n<li>Unified prefix to thor_ for WordPress.org compliance<\/li>\n<li>Automatic migration from previous versions<\/li>\n<li>Security hardening: escaping, prepared statements, capability checks<\/li>\n<li>Improved plugin header with required fields<\/li>\n<\/ul>\n\n<h4>8.1.0<\/h4>\n\n<ul>\n<li>Database-backed camera storage (migrated from wp_options)<\/li>\n<li>Location rating system with interactive map<\/li>\n<li>Battery estimation<\/li>\n<li>HMAC signature verification for bait file communications<\/li>\n<li>Rate limiting and nonce protection<\/li>\n<\/ul>","raw_excerpt":"Trail camera management with anti-theft protection. Hidden HTML files on SD cards track and help recover stolen trail cameras.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/288995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=288995"}],"author":[{"embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vitocech"}],"wp:attachment":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=288995"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=288995"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=288995"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=288995"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=288995"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=288995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}