WP Adverts <> ARMember
ARMember-aware access control for WPAdverts classifieds
by Renato Bonomini · github.com/renatobo/wpadverts-armember · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/renatobo/wpadverts-armember/releases/download/v0.4.1/wpadverts-armember-0.4.1.zipDeclares an update source (https://github.com/renatobo/wpadverts-armember), so updates arrive through the plugin's own updater.
Readme
WPAdverts_ARMember
WordPress plugin that protects WPAdverts classifieds with ARMember-aware access rules.
Features
- Protects individual adverts, archives, categories, publishing pages, management pages, blocks, shortcodes, and advert REST routes.
- Default mode permits WordPress users recognized by ARMember.
- Optional strict mode requires an active ARMember account with an effective, non-suspended plan.
- Configurable destination page for unauthorized visitors.
- Profile-synchronized advert contact name and email.
- Configurable display-name or first-and-last-name contact source.
- Preserves administrator access if ARMember is unavailable.
- Includes Git Updater metadata for GitHub release installs.
Requirements
- WordPress 7.0+
- PHP 8.0+
- WP Adverts (
wpadverts) - ARMember Lite (
armember-membership)
Both are declared in the Requires Plugins header, so WordPress blocks
activation until they are installed and active.
Plugin dependencies are matched by folder slug, and ARMember premium installs as
armember, not armember-membership. On a premium site, drop
armember-membership from the Requires Plugins header in
wpadverts-armember.php and readme.txt; the runtime admin notice still
reports when ARMember is unavailable.
Installation
- Install the packaged zip from GitHub Releases.
- Activate WPAdverts_ARMember.
- Open Settings → WPAdverts_ARMember.
- Choose the access requirement and unauthorized-visitor destination.
WPAdverts and ARMember must be installed and configured on the same WordPress site.
Access modes
Recognized ARMember user
Allows administrators and logged-in users present in ARMember's member table.
Active account with a valid plan
Allows administrators and ARMember users whose account is active and who have at least one effective, non-suspended plan.
Advert contact information
Frontend New Advert and Manage Advert forms display Contact Person and Email as read-only profile information. The plugin synchronizes those values from the advert owner's ARMember-associated WordPress account.
The contact name can use either:
- The ARMember/WordPress display name
- The account's first and last name, falling back to the display name when both are empty
The email remains stored in WPAdverts metadata so contact forms, notifications, and payment integrations continue to work.
Privacy note
The plugin protects WordPress routes and REST data. Standard attachment URLs under wp-content/uploads remain directly accessible and should not be used for sensitive private files without a separate authenticated-media solution.
Development
Requirements:
- PHP 8.0 or newer
- Composer 2 for metadata validation and the lint command
zip,unzip, andrsyncfor packaging
Useful commands:
composer validate --strict --no-check-lock
composer lint
./build.sh
See AGENTS.md for repository-specific engineering and release rules and CONTRIBUTING.md for contribution guidance.
Releases
Release notes live in release-notes/. Packaged releases should use matching plugin-header and readme.txt versions.
GitHub Releases is the primary distribution channel. Pushing a semantic version tag such as v0.3.0 runs the packaging workflow and attaches the installable ZIP to the release.
Project files
wpadverts-armember.php— plugin bootstrap and version metadataincludes/class-wpaag-plugin.php— access rules and administrator settingsassets/— administrator styles and project artworkreadme.txt— WordPress plugin metadata and changelogrelease-notes/— release-specific notesbuild.sh— reproducible ZIP packagingrelease.sh— guarded tag and release workflow
License
GPL v2 or later.
Read the full README on GitHub →