{"id":319956,"date":"2026-06-12T17:31:19","date_gmt":"2026-06-12T17:31:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fotonic-crm-for-photographers\/"},"modified":"2026-08-20T09:19:45","modified_gmt":"2026-08-20T09:19:45","slug":"eleva-crm-for-photographers","status":"publish","type":"plugin","link":"https:\/\/fi.wordpress.org\/plugins\/eleva-crm-for-photographers\/","author":23493430,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.2","stable_tag":"1.4.2","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Eleva CRM for Photographers","header_author":"Alessandro Bonacina","header_description":"CRM and workflow manager for photographers: clients, services, works, payments, encrypted vault for PII, and calendar view.","assets_banners_color":"f7f8f9","last_updated":"2026-08-20 09:19:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/eleva.alessandrobonacina.com\/progetto\/eleva-crm-per-fotografi\/","header_author_uri":"https:\/\/eleva.alessandrobonacina.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":562,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.10":{"tag":"1.3.10","author":"eleva","date":"2026-07-13 22:41:19"},"1.3.11":{"tag":"1.3.11","author":"eleva","date":"2026-07-15 09:32:15"},"1.3.12":{"tag":"1.3.12","author":"eleva","date":"2026-08-07 15:43:43"},"1.3.6":{"tag":"1.3.6","author":"eleva","date":"2026-06-12 17:48:23"},"1.3.7":{"tag":"1.3.7","author":"eleva","date":"2026-06-14 11:11:37"},"1.3.8":{"tag":"1.3.8","author":"eleva","date":"2026-06-24 20:03:38"},"1.3.9":{"tag":"1.3.9","author":"eleva","date":"2026-06-25 09:45:04"},"1.4.0":{"tag":"1.4.0","author":"eleva","date":"2026-08-13 13:31:56"},"1.4.1":{"tag":"1.4.1","author":"eleva","date":"2026-08-14 13:59:55"},"1.4.2":{"tag":"1.4.2","author":"eleva","date":"2026-08-20 09:19:45"}},"upgrade_notice":{"1.4.2":"<p>Cleans up wording on several screens and completes the Italian translation for a couple of previously English-only messages. Safe in-place update: no data or breaking changes.<\/p>","1.4.1":"<p>New: Work Reminders section (with Eleva CRM Pro) and an &quot;Open Google Calendar&quot; button. Fixes dashboard revenue scoping, Google Calendar event removal, and Settings page spacing. Safe in-place update: no data or breaking changes.<\/p>","1.4.0":"<p>New: download a single encrypted backup of all your CRM data from Settings, protected by your Vault password and authenticator code. Safe in-place update: no data or breaking changes. Update Eleva CRM Pro to 1.4.0+ for automatic scheduled backups to Google Drive.<\/p>","1.3.12":"<p>Fix: Italian translation now covers list screens, Dashboard, and Calendar. Safe in-place update: no data or breaking changes.<\/p>","1.3.11":"<p>New: Files section now supports external links and a full-size in-browser preview for images and PDFs. Safe in-place update: no data or breaking changes.<\/p>","1.3.10":"<p>New: clickable title links on Customers\/Services\/Works\/Memory Cards lists and the Dashboard. Fix: Work file downloads and the Notes field. Safe in-place update: no data or breaking changes.<\/p>","1.3.9":"<p>Security: the vault now re-locks on every WordPress login\/logout, so it no longer stays unlocked across sessions, and the Lock Vault button locks immediately. Safe in-place update: your vault password, authenticator and encrypted client data are unchanged. After updating, unlock the vault as usual.<\/p>","1.3.8":"<p>New: Memory Cards inventory to track your SD\/CF cards. Safe in-place update: your vault password, authenticator and encrypted client data stay exactly as they are. After updating, unlock the vault as usual; you will be offered an optional recovery phrase. No data migration, no data loss, no required action. Note: the vault now auto-locks after 15 minutes of inactivity.<\/p>","1.3.7":"<p>Completes the Italian translation (vault recovery + payment types) and improves translation loading on older WordPress versions. No data or breaking changes.<\/p>","1.3.4":"<p>Security: vault download ownership check rewritten; PBKDF2 raised to 600k iterations. See changelog for full details.<\/p>","1.3.3":"<p>Adds a customer works recap table and a way to filter works by customer. No breaking changes to existing data.<\/p>","1.3.1":"<p>Security: vault cookie upgraded to AES-256-GCM; nonce enforcement tightened; a file-download ID matching issue fixed. Added complete data cleanup on plugin deletion.<\/p>","1.3.0":"<p>Security hardening: vault setup guard, server-secret hardening, and permission fix. Recommended for all installations. No breaking changes to existing data.<\/p>","1.2.2":"<p>Adds custom payment types and WP admin theme color support. No breaking changes to existing data.<\/p>","1.2.1":"<p>Consistent button styles. No breaking changes.<\/p>","1.2.0":"<p>Layout fix: sidebar and main content scroll independently. No breaking changes to existing data.<\/p>","1.1.0":"<p>Adds Quick Notes and Calendar Color fields to Works. No breaking changes to existing data.<\/p>","1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3570369,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3570369,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3656465,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3656465,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.10","1.3.11","1.3.12","1.3.6","1.3.7","1.3.8","1.3.9","1.4.0","1.4.1","1.4.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3656336,"resolution":"1","location":"assets","locale":"","width":2400,"height":1332},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3656336,"resolution":"10","location":"assets","locale":"","width":2400,"height":1332},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3656336,"resolution":"11","location":"assets","locale":"","width":2400,"height":1332},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3656336,"resolution":"12","location":"assets","locale":"","width":2400,"height":1332},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3656336,"resolution":"2","location":"assets","locale":"","width":2400,"height":1332},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3656336,"resolution":"3","location":"assets","locale":"","width":2400,"height":1332},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3656336,"resolution":"4","location":"assets","locale":"","width":2400,"height":1332},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3656336,"resolution":"5","location":"assets","locale":"","width":2400,"height":1332},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3656336,"resolution":"6","location":"assets","locale":"","width":2400,"height":1332},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3656336,"resolution":"7","location":"assets","locale":"","width":2400,"height":1332},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3656336,"resolution":"8","location":"assets","locale":"","width":2400,"height":1332},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3656336,"resolution":"9","location":"assets","locale":"","width":2400,"height":1332}},"screenshots":{"1":"Dashboard with the sidebar collapsed to icon-only, so every panel gets the full width","2":"Dashboard: annual revenue, payments still to receive, payment type breakdown, and the next five upcoming works","3":"Customer list with search: name, main contact, email, and phone at a glance","4":"Service catalog with base prices: add, edit, and reuse services across bookings","5":"Works list with a payment status filter (All, Paid, Partial, Unpaid), a total price column, and the custom Payment Types manager open below it","6":"Work edit form: event date and time, customer selector, calendar color, and services with a per-booking price override","7":"Work edit form: attached files and the Memory Cards checklist, so you always know which card holds which shoot","8":"Work edit form: payment section with installments, paid or unpaid status per installment, and running totals","9":"Memory Cards: every card's status (Ready, In Use, Backed Up, Damaged) and which Work it is currently assigned to","10":"Monthly calendar view with every scheduled booking shown as a colored pill","11":"Vault unlock screen: master password and authenticator code required before any client data is shown","12":"Settings page: Vault controls (change password, reset authenticator, recovery phrase) and one-click encrypted backup download"}},"plugin_section":[],"plugin_tags":[269,27930,26218,2979,276622],"plugin_category":[50,58],"plugin_contributors":[266858],"plugin_business_model":[],"class_list":["post-319956","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-client-management","plugin_tags-invoicing","plugin_tags-photographers","plugin_tags-photography-crm","plugin_category-media","plugin_category-user-management","plugin_contributors-eleva","plugin_committers-eleva"],"banners":{"banner":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/banner-772x250.png?rev=3656465","banner_2x":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/banner-1544x500.png?rev=3656465","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/icon-128x128.png?rev=3570369","icon_2x":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/icon-256x256.png?rev=3570369","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-1.png?rev=3656336","caption":"Dashboard with the sidebar collapsed to icon-only, so every panel gets the full width"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-2.png?rev=3656336","caption":"Dashboard: annual revenue, payments still to receive, payment type breakdown, and the next five upcoming works"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-3.png?rev=3656336","caption":"Customer list with search: name, main contact, email, and phone at a glance"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-4.png?rev=3656336","caption":"Service catalog with base prices: add, edit, and reuse services across bookings"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-5.png?rev=3656336","caption":"Works list with a payment status filter (All, Paid, Partial, Unpaid), a total price column, and the custom Payment Types manager open below it"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-6.png?rev=3656336","caption":"Work edit form: event date and time, customer selector, calendar color, and services with a per-booking price override"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-7.png?rev=3656336","caption":"Work edit form: attached files and the Memory Cards checklist, so you always know which card holds which shoot"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-8.png?rev=3656336","caption":"Work edit form: payment section with installments, paid or unpaid status per installment, and running totals"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-9.png?rev=3656336","caption":"Memory Cards: every card's status (Ready, In Use, Backed Up, Damaged) and which Work it is currently assigned to"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-10.png?rev=3656336","caption":"Monthly calendar view with every scheduled booking shown as a colored pill"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-11.png?rev=3656336","caption":"Vault unlock screen: master password and authenticator code required before any client data is shown"},{"src":"https:\/\/ps.w.org\/eleva-crm-for-photographers\/assets\/screenshot-12.png?rev=3656336","caption":"Settings page: Vault controls (change password, reset authenticator, recovery phrase) and one-click encrypted backup download"}],"raw_content":"<!--section=description-->\n<p>Eleva is the CRM built for wedding and event photographers. It keeps every client, every shoot, and every payment in one place, right inside the WordPress admin you already use, with no monthly subscription and nothing sent to a server you don't control.<\/p>\n\n<p>You already have enough to think about on shoot day. Eleva handles the rest: who is getting married and when, what they owe and what they have paid, which memory card belongs to which shoot, and where every contract and file lives. The client details that matter most, names, contacts, home addresses, are protected by a dedicated encryption vault, so a leaked database never hands anyone a usable list of your clients.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Customers: keep every couple or client together, with more than one contact per booking, so a bride's email and a groom's email can both live on the same record. Full search across names, emails, phones, and addresses. Every customer page shows their full booking history with running totals.<\/li>\n<li>Services: build a catalog of the packages and add-ons you offer, then override the price or notes for any specific booking without touching the catalog.<\/li>\n<li>Works (your bookings): the hub for every job. Customer, services, event date and time, every location, every file, and every payment, on one page.<\/li>\n<li>Payments: track deposits and balances with a running list of installments. Paid, Partial, or Unpaid status is worked out for you automatically from what has actually been paid.<\/li>\n<li>Custom payment types: go beyond a simple deposit and balance and define your own installment types to match how you actually bill.<\/li>\n<li>Files: attach contracts, invoices, and reference files to any booking, or drop in a link to a Google Drive or Dropbox folder instead. Images and PDFs preview right in the browser, with zoom and full-document search.<\/li>\n<li>Dashboard: your year at a glance. Revenue booked, payments still to receive, and the next five shoots coming up.<\/li>\n<li>Monthly calendar: every booking as a colored pill on a real calendar. Click through to see the customer, date, and payment status.<\/li>\n<li>Calendar colors: tag each booking with one of twelve colors, so a glance at the calendar tells you which is which.<\/li>\n<li>Memory Cards: an inventory of your SD and CF cards, so you always know which ones are safe to format. Status moves itself: Ready, In Use, Backed Up, or Damaged, as you attach a card to a shoot and check off the backup.<\/li>\n<li>Quick Notes: a short rich-text field on every booking for the one-line reminder you need at a glance, kept separate from your full notes.<\/li>\n<li>Vault: a dedicated encryption layer, protected by its own password and a TOTP authenticator app, that keeps client names, contact details, and addresses unreadable in the database, even to someone with direct database access.<\/li>\n<li>Encrypted backup: download one encrypted archive of your entire CRM (customers, bookings, services, and files) whenever you want, protected by your Vault credentials and opened by no one but you.<\/li>\n<\/ul>\n\n<h4>No dependencies, nothing leaves your server<\/h4>\n\n<p>Eleva doesn't require ACF, WooCommerce, or any other plugin, and makes zero outbound requests of its own: nothing is ever sent to us or to anyone else. Every byte of your data stays in your own WordPress database, on your own server.<\/p>\n\n<p>Eleva CRM Pro is a separate, optional add-on. If you choose to connect it to Google Calendar or Google Drive, those are its own connections, made only when you turn them on, never by the free plugin.<\/p>\n\n<h3>Eleva CRM Pro<\/h3>\n\n<p>Eleva CRM Pro is a separate, optional paid add-on for photographers running a small team or wanting deeper reporting. It adds:<\/p>\n\n<ul>\n<li>Collaborators: assign second shooters and team members to a booking, and track what each one is owed.<\/li>\n<li>Kanban board: move bookings through your own workflow stages.<\/li>\n<li>Analytics: revenue, cost, and owned-vs-commissioned reporting, with period comparison.<\/li>\n<li>Products &amp; Suppliers: manage physical products and the suppliers behind them.<\/li>\n<li>Google Calendar sync: your bookings and reminders pushed automatically to your Google Calendar.<\/li>\n<li>Automatic backups: the same encrypted archive as the free plugin, pushed to your own Google Drive on a schedule, with retention.<\/li>\n<\/ul>\n\n<p>Pro is entirely optional. Nothing in the free plugin is locked or hidden behind an upgrade prompt.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Eleva CRM for Photographers collects no personal data of its own, makes no external HTTP requests, and sends nothing to any external server. Every piece of data lives exclusively in your own WordPress database.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>The in-browser PDF preview is built on pdf.js by Mozilla (https:\/\/mozilla.github.io\/pdf.js\/), licensed under the Apache License 2.0.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin ZIP from WordPress.org.<\/li>\n<li>Go to Plugins &gt; Add New &gt; Upload Plugin in your WordPress admin.<\/li>\n<li>Upload the ZIP and click Install Now, then Activate.<\/li>\n<li>Navigate to Eleva in the WP Admin sidebar.<\/li>\n<li>On first launch, set your Vault master password and scan the QR code with an authenticator app (Google Authenticator, Authy, or any TOTP-compatible app).<\/li>\n<li>Enter your Vault password and the current OTP code to unlock the CRM.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"who%20is%20eleva%20for%3F\"><h3>Who is Eleva for?<\/h3><\/dt>\n<dd><p>Wedding and event photographers who want a CRM built around how a shoot actually works: one client, one date, a handful of payments, and a stack of files, not a generic sales pipeline.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20subscription%3F\"><h3>Do I need a subscription?<\/h3><\/dt>\n<dd><p>No. Eleva is free, with no monthly fee and no feature paywall inside the app. An optional paid add-on, Eleva CRM Pro, exists for studios that want a team (collaborators), a Kanban board, analytics, and automatic scheduled backups to Google Drive, but nothing in the free plugin nags you to upgrade.<\/p><\/dd>\n<dt id=\"does%20this%20require%20acf%20%28advanced%20custom%20fields%29%3F\"><h3>Does this require ACF (Advanced Custom Fields)?<\/h3><\/dt>\n<dd><p>No. Eleva uses only native WordPress meta boxes and registers all custom post types itself. No third-party field plugin is required or used.<\/p><\/dd>\n<dt id=\"does%20this%20work%20without%20woocommerce%3F\"><h3>Does this work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Eleva is completely standalone and has no dependency on WooCommerce or any other plugin.<\/p><\/dd>\n<dt id=\"what%20is%20the%20vault%3F\"><h3>What is the Vault?<\/h3><\/dt>\n<dd><p>The Vault is a dedicated encryption layer for the personal details tied to your clients and bookings: names, email addresses, phone numbers, home addresses, nationality, tax ID, Instagram handles, and each booking's event address. Every one of those is encrypted with AES-256 before it is written to the database.<\/p>\n\n<p>You set a Vault master password, independent of your WordPress login, and pair it with a TOTP authenticator app (Google Authenticator, Authy, or similar); unlocking always needs both. The password itself is never stored: it is stretched through PBKDF2 with 600,000 iterations, and the resulting key lives only in a temporary, authenticated session cookie (AES-256-GCM), never in the database. The Vault locks itself again after 15 minutes of inactivity, and on every WordPress login or logout, so a shared computer is never left open.<\/p>\n\n<p>Booking details like the event date, price, and your own notes sit outside the Vault. Only the personal contact details listed above are encrypted.<\/p><\/dd>\n<dt id=\"what%20if%20i%20forget%20my%20vault%20password%3F\"><h3>What if I forget my Vault password?<\/h3><\/dt>\n<dd><p>Eleva gives you two separate fallbacks, both set up ahead of time from the Settings page. If you still know your password but lost your authenticator app, the one-time recovery code gets you back in. If you forgot your password itself, only the recovery phrase can reset it without losing your encrypted data. Set up both, since they cover different problems. Losing your password, your authenticator, and both recovery credentials together means the data cannot be recovered by anyone, including us. That is what makes the encryption real.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20on%20shared%20hosting%3F\"><h3>Does the plugin work on shared hosting?<\/h3><\/dt>\n<dd><p>Yes. It needs PHP 7.4 or higher and WordPress 6.0 or higher, both standard on modern shared hosting.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>Entirely in your own WordPress database. Eleva makes no external HTTP requests and sends no data to any external server, ours or anyone else's. You own and control your data completely.<\/p><\/dd>\n<dt id=\"will%20eleva%20slow%20down%20my%20site%3F\"><h3>Will Eleva slow down my site?<\/h3><\/dt>\n<dd><p>No. Eleva only loads on its own admin screen inside WP Admin; it adds nothing to your public-facing site, so visitor-facing performance is unaffected.<\/p><\/dd>\n<dt id=\"can%20i%20get%20my%20data%20out%20if%20i%20stop%20using%20eleva%3F\"><h3>Can I get my data out if I stop using Eleva?<\/h3><\/dt>\n<dd><p>Yes, any time, from the Settings page: download a complete encrypted backup of every customer, booking, service, and file. It is your data in a portable archive, not locked to the plugin.<\/p><\/dd>\n<dt id=\"does%20eleva%20back%20up%20my%20data%3F\"><h3>Does Eleva back up my data?<\/h3><\/dt>\n<dd><p>Yes. From Settings, download a single encrypted archive of your entire CRM: customers, bookings, services, memory cards, and every attached file. Nothing leaves your server: the archive is built locally and saved to your own computer.<\/p>\n\n<p>That archive is encrypted with your Vault password and authenticator code before it is ever written. Nobody, including us, can open it without them, and there is no back door: lose your password, recovery code, and recovery phrase together, and the archive is unrecoverable.<\/p>\n\n<p>This backs up your CRM data, not your whole WordPress site. Themes, other plugins, and unrelated content are not included.<\/p>\n\n<p>Automatic, scheduled backups that push this same archive to your own Google Drive are an <strong>Eleva CRM Pro<\/strong> feature. The free plugin's backup is always manual: on demand, whenever you choose to download one.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Fix: cleaned up wording on several vault, recovery, and file-selection screens for clarity and consistency.<\/li>\n<li>i18n: Italian (it_IT) translation completed for a couple of messages that had never been translated, including the session idle-timeout warning and an alternate recovery option on the \"forgot my authenticator\" screen.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>New: Work edit screen gains a Reminders section (requires Eleva CRM Pro): set a date offset from the event date and it turns into a Kanban task, with optional Google Calendar sync.<\/li>\n<li>New: \"Open Google Calendar\" button on the Calendar page, shown once a Google Account is connected (requires Eleva CRM Pro 1.4.1+).<\/li>\n<li>Fix: Dashboard revenue now scopes each payment installment by its own date instead of its work's event date. A payment dated in a different year than its work no longer gets double-counted in one year and missed in the other.<\/li>\n<li>Fix: Google Calendar. Removing an event from the Calendar view no longer appears to succeed when the request actually failed.<\/li>\n<li>Fix: Settings page. The Vault and Backup sections' description text no longer renders in a narrow column with empty space beside it; text now fills the panel like every other section.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: encrypted CRM backup. Download a single archive of all your CRM data (customers, works, services, memory cards, and every attached file) from the Settings page, protected by your Vault password and authenticator code. Nobody, including us, can open it without them.<\/li>\n<li>New: a standalone, dependency-free command-line decrypt tool ships with the plugin, so a backup can be restored on any machine with just PHP: no WordPress or plugin install required.<\/li>\n<li>Improved: refreshed spacing, borders, and layout across every form and list screen; the sidebar now collapses to icon-only and remembers your choice; tables get a persistent scroll indicator instead of relying on the operating system's hidden scrollbar.<\/li>\n<li>Fix: the sidebar's collapse\/expand button and the calendar's day-of-week column headers now translate correctly in Italian. They previously always showed in English regardless of site language.<\/li>\n<li>Note: with Eleva CRM Pro connected to Google Drive, backups also run automatically on a schedule. See the Pro changelog.<\/li>\n<\/ul>\n\n<h4>1.3.12<\/h4>\n\n<ul>\n<li>Fix: Italian (it_IT) translation now covers the Customers, Services, and Works list screens, the Dashboard, and the Calendar view. These previously displayed in English regardless of the site or user language setting, even though the rest of the plugin was translated.<\/li>\n<\/ul>\n\n<h4>1.3.11<\/h4>\n\n<ul>\n<li>New: the Files section on a Work now accepts external links (Google Drive, Dropbox, etc.) alongside uploaded files, with an optional custom display label.<\/li>\n<li>New: images and PDFs in the Files section now open in a full-size in-browser preview instead of only downloading. The PDF viewer includes zoom, page navigation, and full-document search.<\/li>\n<\/ul>\n\n<h4>1.3.10<\/h4>\n\n<ul>\n<li>New: Customers, Services, Works and Memory Cards lists now show a clickable title that opens the record's edit page directly, styled in your WordPress admin theme color with an underline, matching the existing Edit button shortcut.<\/li>\n<li>Fix: Dashboard's \"Recent Works\" title links now use your WordPress admin theme color with a permanent underline, instead of a hardcoded blue that only underlined on hover.<\/li>\n<li>Fix: file downloads on a Work's Files section now use an authenticated request instead of a plain link, so downloads work correctly when the vault is involved.<\/li>\n<li>Fix: the Notes field on a Work no longer appears to reset after external re-renders. The data was always saved correctly; only the on-screen display was affected.<\/li>\n<\/ul>\n\n<h4>1.3.9<\/h4>\n\n<ul>\n<li>Fix: vault now re-locks on every WordPress login\/logout (no longer stays unlocked across sessions).<\/li>\n<li>Fix: the Lock Vault button now locks immediately without a page refresh.<\/li>\n<\/ul>\n\n<h4>1.3.8<\/h4>\n\n<ul>\n<li>New: Memory Cards. Keep an inventory of your SD\/CF cards so you always know which ones are safe to reuse. Each card has a status: Ready, In Use, Backed Up, or Damaged, that advances automatically as you attach the card to a shoot and tick off backup and formatting. Manage your full card list from the new sidebar entry, or assign cards to a shoot right inside the Work editor. A card that is currently in use cannot be deleted by mistake.<\/li>\n<li>Vault: added a recovery phrase so you can regain access if you forget your vault password, separate from the existing one-time recovery code used for a lost authenticator. After updating, unlock your vault and you will be offered to set one up. This is optional and re-encrypts nothing.<\/li>\n<li>Vault: the unlock and setup screens now save credentials in your browser's password manager under a dedicated \"crm-vault\" username, so the vault password is never confused with, or overwritten on top of, your WordPress login.<\/li>\n<li>Vault: authenticator codes are now accepted within a \u00b160 second window, fixing spurious \"invalid code\" errors after the server or device clock drifts (for example, after the machine sleeps).<\/li>\n<li>Vault: the vault now auto-locks after 15 minutes of inactivity and silently re-opens on page refresh while it is unlocked.<\/li>\n<li>Fix: the sidebar title now follows your site language instead of always appearing in English, and the sidebar lock button and version footer are tidier and easier to use.<\/li>\n<li>i18n: Italian (it_IT) translation updated to 100%, including all the new Memory Cards and vault recovery-phrase wording.<\/li>\n<li>Updating from 1.3.x is seamless: your vault, password, authenticator and encrypted data are unchanged. Just update and unlock as usual: there is no data migration and no required action.<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>i18n: Italian (it_IT) translation completed to 100%. Added the vault recovery-code and payment-type strings that were previously untranslated, and corrected leftover pre-rebrand strings.<\/li>\n<li>i18n: bundled translations now also load correctly on WordPress 6.0 to 6.6.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Renamed to \"Eleva CRM for Photographers\".<\/li>\n<li>No locked or upsell-only features remain in the free plugin.<\/li>\n<li>Security: added nonce verification to the vault file download permission check.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Security: the vault file download ownership check now compares file IDs exactly, closing a gap where the previous check could match the wrong file in rare cases.<\/li>\n<li>Security: the password-derived encryption key now uses 600,000 rounds of iteration (up from 100,000), matching current OWASP guidance. Existing vaults keep working exactly as before.<\/li>\n<li>Security: the customer search filter is now scoped precisely to customer contact fields.<\/li>\n<li>Fix: admin notices, including security and update warnings, are no longer suppressed on the Eleva screen.<\/li>\n<li>Reliability: if a required encryption extension is missing on activation, the plugin now deactivates itself cleanly instead of leaving things in a broken state.<\/li>\n<li>i18n: translator notes added to strings containing placeholders, improving translation accuracy.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Customer Works recap: the Customer edit page now shows a table of all linked works with title, date, services, total price, and payment status, plus totals for the whole list.<\/li>\n<li>Works list can now be filtered to a single customer.<\/li>\n<li>i18n: Italian translations added for all new strings.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Calendar view is now included: the monthly calendar showing all scheduled works is available to all users.<\/li>\n<li>Calendar locale fix: month names and event dates now display in the WordPress site language instead of the server's own locale.<\/li>\n<li>Vault description: Settings page now shows an explanation of the Vault feature, detailed when not yet configured, a short reminder once active.<\/li>\n<li>UI: logo mark used as the WP Admin menu icon.<\/li>\n<li>UI: Settings sidebar navigation clipping fixed.<\/li>\n<li>UI: Payment status filter dropdown in the Works list now sizes to the full option text.<\/li>\n<li>Layout: the plugin screen now fills the available height correctly.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Security: vault session cookie upgraded to authenticated AES-256-GCM encryption. Any tampered cookie is now rejected outright rather than silently decrypted to garbage.<\/li>\n<li>Security: fixed an issue where searchable encrypted fields (email, phone) could share encryption patterns across different values; each value now encrypts uniquely.<\/li>\n<li>Security: fixed the same issue in the browser-side encryption path.<\/li>\n<li>Security: fixed a data format issue that could cause some previously-stored email and phone values to fail decryption; they now decrypt correctly.<\/li>\n<li>Security: added an additional server-side check to vault-protected requests, closing a theoretical cross-site request forgery window.<\/li>\n<li>Security: fixed the vault file download check so a file ID could not accidentally match a different file's download link.<\/li>\n<li>Security: vault unlock, failed unlock, lock, and password-change events are now logged (when WP_DEBUG_LOG is enabled) for your own auditing.<\/li>\n<li>Security: fixed re-encryption of email and phone fields during a vault password change so they always decrypt correctly afterward.<\/li>\n<li>Security: prices and installment amounts can no longer be saved as negative numbers.<\/li>\n<li>Security: the vault password now requires a minimum of 12 characters.<\/li>\n<li>Maintenance: uninstalling the plugin now fully removes all of its data (posts, custom fields, taxonomy terms, options, and the vault upload folder).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Security: the vault setup process no longer allows accidentally overwriting an already-configured vault.<\/li>\n<li>Security: removed a guessable fallback in the vault's cookie encryption secret.<\/li>\n<li>Security: tightened who can save Customer, Service, and Work records to match the same permission level as the REST API.<\/li>\n<li>Compatibility: resolved a deprecation notice that appeared in some debug logs on newer WordPress versions.<\/li>\n<li>Compatibility: tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>WP admin theme color integration: sidebar and buttons now adapt automatically to your chosen WordPress admin color scheme.<\/li>\n<li>Custom payment types: define your own installment types beyond the built-in Default and Coupon, with a manager right in the Works list.<\/li>\n<li>Payment status badges (Paid \/ Partial \/ Unpaid) are now translatable.<\/li>\n<li>Accessibility: interactive elements now show a visible focus outline for keyboard users.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Consistent button design across the whole plugin: primary, secondary, and danger styles, all matching your WordPress admin color.<\/li>\n<li>Forms now use the full available width on Work, Customer, Service, and Settings screens.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Layout: sidebar and main content now scroll independently, adapting to your screen height.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added Quick Notes: a short rich-text field on the Work edit screen for at-a-glance reminders.<\/li>\n<li>Added Calendar Color: tag each Work with one of twelve colors.<\/li>\n<li>Full Italian (it_IT) translation, covering the entire plugin interface.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"The CRM for wedding and event photographers: clients, bookings, payments, and an encrypted vault, all inside your own WordPress admin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319956"}],"author":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eleva"}],"wp:attachment":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319956"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319956"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319956"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319956"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319956"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}