WP Manifestindependent plugin directory
manifest / seo / backlink-project-manager

Backlink Project Manager

A plugin to manage backlinking projects, URLs, and keywords.

by Your Name · github.com/zafarsoomro/backlink-project-manager

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/zafarsoomro/backlink-project-manager/archive/refs/heads/main.zip

A WordPress plugin for agencies and link-building teams to create backlink projects, assign them to internal users, collect backlink URLs, and export progress as CSV files. Administrators work inside wp-admin while assignees get a front-end dashboard powered by the [bpm_view_projects] shortcode.

Highlights

  • Create backlink projects with unlimited target URLs and keyword notes.
  • Assign each project to any WordPress user via AJAX-powered search/autocomplete.
  • Organize outreach/backlink efforts into named groups that can be re-used per project.
  • Track backlinks that users submit from the front-end and edit/delete them inline without reloading.
  • Export a single project or the entire portfolio (both admin and user-specific exports) as CSV files.
  • Hardened with WordPress nonces, capability checks, and $wpdb helpers for safe CRUD operations.

Folder Structure

backlink-project-manager/
├── backlink-project-manager.php      # Plugin bootstrap, hooks, asset loading
├── admin/
│   ├── add-new-project.php           # Admin UI for creating a project
│   ├── edit-project.php              # Admin UI for updating a project
│   └── manage-projects.php           # Project table + CSV export button
├── assets/
│   ├── css/
│   │   ├── bpm-dashboard-style.css   # Admin table styles
│   │   ├── bpm-styles.css            # Front-end styling
│   │   └── style.css                 # Misc helpers
│   └── js/
│       ├── ajax.js                   # Admin AJAX for create/delete + UI helpers
│       ├── bpm-backlink.js           # Front-end inline editing for backlinks
│       ├── frontend.js               # Placeholder for public enhancements (enqueued)
│       └── script.js                 # jQuery UI autocomplete for user search
├── frontend/
│   └── core-functions.php            # Shortcode output, group/backlink logic, CSV exports
└── includes/
    ├── admin-menu.php                # Registers all wp-admin pages
    ├── database.php                  # Activation hook + table creation helpers
    ├── functions.php                 # Core CRUD, AJAX callbacks, CSV exports
    └── shortcodes.php                # Reserved for additional shortcodes

Database Tables

includes/database.php provisions the following tables on activation (prefixed by wp_ unless your install overrides it):

Table Purpose Key Columns
bpm_backlink_projects Stores each project and owner project_name, user_id, created_at
bpm_backlink_urls Keeps target URLs + keyword notes project_id, url, keywords
bpm_project_groups Named buckets for backlink submissions group_name
bpm_project_group_assignments Many-to-many bridge between projects and groups project_id, group_id
bpm_user_backlinks Tracks backlinks users submit from the front-end project_id, user_id, group_id, backlink_url, date_added

Admin Workflow

  1. Projects menu – Created in includes/admin-menu.php with sub-pages for managing projects, adding new ones, managing groups, and hidden edit/detail pages.
  2. Create projects – admin/add-new-project.php posts via assets/js/ajax.js to bpm_create_project, storing URLs/keywords and the assigned user.
  3. Manage projects – admin/manage-projects.php lists everything, links to edit/view pages, and exposes "Export All Projects" via admin-post.php?action=bpm_export_all_projects_csv.
  4. Edit/View – admin/edit-project.php and bpm_view_project_page() handle updates, group listings, and backlink oversight with inline AJAX edit/delete controls.
  5. Groups page – bpm_project_groups_page() lets admins create or remove shared backlink groups with nonce-protected actions.

Front-end Workflow

  1. Shortcode – Place [bpm_view_projects] on any page to give logged-in users their assignment dashboard.
  2. Project list – Users see projects assigned to them, grouped backlinks, unassigned backlinks, and an export button (AJAX action bpm_export_user_projects_csv).
  3. Project detail – Selecting a project reveals URL/keyword matrices, existing groups, inline backlink tables, and forms to add backlinks or create a new group scoped to the project.
  4. Inline editing – assets/js/bpm-backlink.js powers edit/delete controls that talk to bpm_update_backlink and bpm_delete_backlink without page reloads.
  5. CSV exports – Users can download either their entire portfolio or a single project's backlinks via the AJAX endpoints defined in frontend/core-functions.php.

AJAX & Export Endpoints

Action Context Description
bpm_create_project Admin Creates a project with URLs/keywords (nonce bpm_add_new_project).
bpm_update_project Admin Updates project name and URL set from the edit screen.
bpm_delete_project Admin Deletes a project and its URLs (bpm_delete_project nonce).
bpm_manage_projects_user_search Admin Autocomplete search for assigned_user field.
bpm_delete_backlink, bpm_delete_backlink2 Admin & Front-end Remove backlinks with per-row nonces.
bpm_update_backlink, bpm_edit_backlink Admin & Front-end Update backlink URLs inline.
bpm_export_user_projects_csv Front-end Generates user_projects_details.csv for the logged-in user.
bpm_export_project_backlinks_csv Front-end Produces per-project backlink CSVs for users.
bpm_export_project_csv Admin admin-post export for a single project with groups + backlinks.
bpm_export_all_projects_csv Admin admin-post export covering every project.

Installation

  1. Clone or download this repository into wp-content/plugins/backlink-project-manager.
  2. Activate Backlink Project Manager in the WordPress Plugins screen.
  3. On activation the database tables are created via bpm_create_tables().
  4. Visit Projects → Add New to seed your first project and assign a user.
  5. Drop the [bpm_view_projects] shortcode into a page that only logged-in users can reach to expose the front-end dashboard.

Development Notes

  • Written for PHP 7.4+/WordPress 6.x. Update bpm_manage_projects_enqueue_scripts() if you need different jQuery UI versions.
  • Front-end editing relies on the localized bpm_ajax object; keep bpm_enqueue_backlink_scripts() hooked for public pages.
  • CSV exports stream from PHP using php://output; avoid premature whitespace or BOMs when modifying those functions.
  • The plugin header declares GPL-2.0; keep derivative work under a compatible license.

Roadmap Ideas

  • Additional shortcodes (placeholder includes/shortcodes.php).
  • Role-based dashboards or REST endpoints.
  • PHPUnit/WP-CLI tests for data-layer helpers.
  • UI polish (React/modern build tooling) if you prefer SPA-like admin screens.