Custom WordPress Plugin Handover: Source Code, Settings and Update Responsibilities
A plugin handover should explain how the feature runs, who maintains it and what happens to its data.


In this article
Editorial illustration. Any screens and records are illustrative, not a delivered client system.
Your custom plugin may work perfectly on launch day while still being difficult to maintain six months later. The original developer might hold the only editable source, the integration might use an account nobody can identify, or staff may not know which settings are safe to change.
A useful handover makes those responsibilities visible. When commissioning custom WordPress plugin development, agree the handover package before delivery. I treat it as part of the feature scope so you can review what you will own, operate and ask someone to support.
Separate delivery from ongoing responsibility
Delivery means the agreed feature and its supporting material have been provided and accepted. Ongoing support is a separate arrangement: someone needs to assess updates, investigate problems and maintain integrations. Neither party should assume that handing over source code includes indefinite maintenance.
Name the business owner, operational contact and maintenance contact. Record who can approve a change and who can access the hosting account, connected services and licences. If an agency commissions the work for a client, clarify which organisation receives the final package and which person approves it. This prevents a successful technical delivery from becoming an unresolved ownership conversation.
Ask for an identifiable, reproducible release
The installable plugin should have an identifiable version and a matching source release. If building it requires additional steps, request the instructions and the source files needed to produce the supplied package. Avoid a situation where the zip on the website cannot be connected to a known set of files.
The WordPress plugin header documentation covers metadata such as version, PHP requirements and plugin identity. These fields help identify a release; they do not prove compatibility on your particular site. The handover should also state the WordPress, PHP and relevant dependency versions actually checked.
Use a responsibility register rather than a vague promise
This example register is hypothetical. Replace the roles with the people or organisations involved in your project:
| Item | Handover evidence | Future owner |
|---|---|---|
| Source and release | Matching version and build notes | Business or appointed maintainer |
| Integration account | Account identity and access process | Business account holder |
| Editorial settings | Safe-change instructions | Website editor |
| Dependency updates | Compatibility review procedure | Named support provider |
| Business records | Export and retention explanation | Operational owner |
| Failure alerts | Destination and response responsibility | Named contact |
A register is useful because each item has evidence and an owner, rather than relying on a general statement that everything has been handed over.
Document settings and permissions in plain language
Ask for a short operational guide covering the normal tasks: changing a label, reviewing a submitted record, reconnecting an integration or exporting data. It should identify settings that affect existing records and distinguish a safe content change from a structural change.
List which user roles can perform each action. Include the accounts used to test those roles, using non-sensitive examples. If staff need a demonstration, agree its format and the tasks it will cover. A long technical document does not compensate for missing everyday instructions. The goal is for the next responsible person to understand the feature without reconstructing the original conversation.
Agree what deactivation and removal do to data
Turning off a plugin and uninstalling it are different operations. The WordPress uninstall documentation distinguishes removal-related cleanup from deactivation. Your business needs an explicit decision about which records and settings are retained or removed.
Ask how to export essential records and how they would be interpreted without the plugin interface. Identify any scheduled tasks, external connections or generated files involved. Do not make a live removal experiment the first time anyone discovers the data policy. The acceptance environment should demonstrate the agreed behaviour using synthetic records that can be safely discarded.
Include dependency and update boundaries
A custom plugin can depend on other plugins, hosted APIs, libraries or commercial services. Record each dependency, its purpose and who owns the licence or account. Clarify what happens when a licence expires, an API changes or the business replaces an integration.
Agree whether updates are delivered through an existing mechanism or supplied manually, and who tests them before release. The handover should describe known limitations and the conditions that require reassessment. My guide to changing WordPress developers and arranging a handover also covers the broader website access that a new maintainer may need.
Make the final acceptance review practical
Use the original feature scenarios to review the handed-over release:
- The installable package matches the documented version.
- Authorised and unauthorised roles behave as agreed.
- Normal tasks work using the operational guide.
- Known error conditions lead to an understandable response.
- Connected accounts are controlled by the agreed owner.
- Records can be exported in the promised format.
- Deactivation and removal follow the documented data policy.
- Outstanding limitations have an owner and an agreed decision.
Record approval against these points. A handover is easier to trust when another person can follow it successfully.
Put the handover into the original development brief
Send the feature requirements, expected operators, existing integrations and your preferred maintenance arrangement. Ask proposals to state exactly which documentation, source files, training and acceptance support are included. Also agree code licensing and third-party terms with the relevant owners rather than leaving them implicit.
If you are still deciding whether a custom feature is justified, read my custom plugin planning guide. I can include a defined handover package within a WordPress plugin development proposal, with separate options for ongoing support. That makes the end of the project a planned transition instead of an urgent request for missing access.

Written by
Jagjeet Singh
Full stack development, WordPress engineering and practical web products. I work with businesses, teams and agencies in India and worldwide.
Explore my work