Documentation · Developer Documentation

Contribution Guidelines

This page explains how to contribute changes to the plugin at a public-safe level. Internal class names, internal constants and references to private release infrastructure are not published here.

When to use this document

Read this document when you are about to:

  • Open a pull request that fixes a bug, adds a feature, or improves documentation.
  • Translate the plugin into a new language.
  • Submit a security report.

Overview

Contributions are accepted through pull requests. Every change should:

Requirements or prerequisites

  • Git installed locally and a fork of the repository.
  • The PHP and WordPress versions declared in the plugin header.
  • Composer installed for development dependencies (test framework only).
  • A working local WordPress installation to validate changes that go beyond unit-testable logic (see Local Development Setup).

Step by step instructions

  1. Fork the repository and create a feature branch.
  2. Make your change. Follow the public-safe writing guidance for any documentation updates: do not add internal class names, option keys, REST/AJAX route names, cron hook names, capability/nonce identifiers or release-infrastructure details to the published docs/ set.
  3. Add or update unit tests where feasible.
  4. Run the test suite locally before opening the pull request.
  5. Open a pull request from your branch. Describe the change, the testing you performed, and any documentation updates.

Security reports

If you believe you have discovered a security issue, do not open a public issue. Contact AD Promotion privately so the report can be triaged and fixed before disclosure.

Translations

If you would like to contribute a translation, base your work on the project's POT file under /languages and submit your .po / .mo files through the normal pull-request process. See Internationalization For Developers.

Public documentation notice. This page provides a high-level integration overview only. Internal implementation details, private APIs, storage internals and security-sensitive release infrastructure are maintained separately and are not part of the public documentation.