=== DWD Directors ===
Contributors: dizwebdesign
Tags: directors, admin, dwd, nonprofit, board, governance
Requires at least: 6.0
Requires PHP: 7.4
Stable tag: 0.3.10
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Board votes, meetings, by-laws (ratification votes), public transparency portal, synced pages, tools, backup and restore, and privacy hooks.

== Description ==

DWD Directors helps nonprofit boards manage votes (documentation, Q&A via comments, recorded Yes/No/Abstain ballots), meetings (schedule, agenda, minutes), and **by-laws** where every new by-law, amendment, or repeal requires a board vote before it takes effect. A read-only **public by-laws** page lists only items that have been voted on and approved. Records are not deleted from the admin UI (corrections use edit). The **Director** role can manage votes, meetings, and by-laws and cast ballots; administrators configure public visibility and run updates.

== Installation ==

1. Upload the `dwd-directors` folder to `/wp-content/plugins/`.
2. Activate the plugin through the Plugins menu.
3. Assign users the **Director** role (or grant equivalent capabilities) for board workflows.
4. Use **DWD Plugins → Directors** if you need to run update and page sync manually.

== Frequently Asked Questions ==

= Where is the public page? =

A WordPress page is created or repaired on activation/update; it contains the `[dwd_front_page]` shortcode. Adjust title and slug under **DWD Plugins → Directors** (Front page section), then run **Tools → UPDATE**.

= Where do directors vote? =

Use the **Director portal** page (shortcode `[dwd_director_portal]`). Title and slug are set under **DWD Plugins → Directors** (Public visibility section; save syncs pages).

= Where is the public transparency board? =

The **Public board** page uses `[dwd_public_board]`. Administrators choose what is shown under **DWD Plugins → Directors** (Public visibility section; optional login requirement, sections, and per-item “Public transparency” when editing a vote or meeting).

= When do votes appear on the public board? =

Votes are hidden from the public board until **Publish votes on the public board** is turned on under **DWD Plugins → Directors** (Public visibility section). New installs start with this off. After upgrading from an earlier release, run **Tools → UPDATE** once so settings stay consistent; then use the same screen to turn votes public only when you are ready.

== Shortcodes ==

* `[dwd_front_page]` — Default plugin landing layout.
* `[dwd_director_portal]` — Directors: open votes, save ballot, link to Q&A in admin.
* `[dwd_public_board]` — Read-only public listing (respects visibility settings).
* `[dwd_public_bylaws]` — Approved by-laws only (requires **Publish approved by-laws** under Public visibility).

== Changelog ==

= 0.3.10 =
* Security: ignore unsigned heartbeat site_token.

= 0.3.9 =
* Security: ignore unsigned remote wipe banned/blocked; wipe only via verified signed commands.

= 0.3.4 =
* Admin navigation now registers **Directors** as a submenu under the shared **DWD Plugins** parent (`dwd-plugins`) with a unified one-page settings experience.
* Legacy admin page slugs (`dwd-directors-tools`, `dwd-directors-backup`, `dwd-directors-public`, `dwd-directors-settings`) now redirect to the unified page using section anchors.

= 0.3.0 =
* **By-laws** CPT: draft/rejected → “Submit for ratification vote” creates a linked board vote; approval publishes the by-law. Amendments and repeals each require their own vote; outcomes apply when the vote is set to **closed** (Yes must exceed No).
* Public **by-laws** page (synced) with shortcode `[dwd_public_bylaws]`; master switch **Publish approved by-laws** under Public visibility (default off for new keys; migration adds the key for existing sites).
* Backup/export includes `dwd_bylaw` posts; uninstall removes the public by-laws synced page when present.

= 0.2.2 =
* Public board: master switch **Publish votes on the public board** (default off for new sites). Votes stay private until administrators enable it. Migration preserves prior behavior for existing visibility options.

= 0.2.1 =
* Director portal: full documentation per vote, vote counts, table of each director’s ballot (or not yet recorded), inline questions/answers via WordPress comments, wider layout for tables.

= 0.2.0 =
* Board votes CPT with status/window, ballot table, REST save, Director portal shortcode.
* Meetings CPT with schedule, location, minutes meta; agenda in editor.
* Director role and capabilities; governance posts cannot be deleted (filter override for maintenance).
* Public visibility settings, public board shortcode, optional login gate; per-item public include.
* Required pages: director portal and public board; backup format v2 (options + posts + ballots).
* Uninstall: removes synced pages, ballot table, Director role, and plugin options.

= 0.1.0 =
* Initial release (scaffold from Base plugin template).
