Vexal Documentation by WileyLabs

Client Project Media Uploader

Stable

Shortcode: [vexal_project_uploader]

Requires: Project Workspace enabled, Vexal Media active

Updated: July 2026

The Client Project Media Uploader is a frontend intake wizard for clients and field teams. It organizes uploads into gallery pools by type and Media Purpose, then routes files through Vexal Media for optimization. Upload does not auto-publish public showcases—admins build displays from organized pools.

Prerequisites

  1. Vexal Portfolio active with Project Workspace enabled in settings (default: off)
  2. Vexal Media active (1.6.012+; 1.6.013+ recommended for Vexal Gallery column)
  3. Processing configured in Vexal Media → Settings / Integrations—not in Project Workspace
  4. Gallery Types registry configured (defaults ship with 14+ types)

If the uploader shows as disabled, check workspace_enabled in Portfolio settings and confirm Vexal Media service status reports processing ready.

Shortcode setup

Add the parameterless shortcode to any page or builder block:

[vexal_project_uploader]

Assets load only when the shortcode is present on the page. The plugin does not register [vexal_project_workspace] or [vexal_project_media] in Phase 1.

5-step wizard

StepLabelWhat the user does
1GallerySelect an existing gallery (vxp_portfolio) or create a new one with name, description, and gallery type
2ProjectOptional: skip, select an existing showcase (vxp_project), or create a new project title
3Gallery ContentChoose gallery type, subtype, and Media Purpose (destination pool)
4UploadSelect files (max 10 per submission by default); accept rules vary by Media Purpose
5DoneConfirmation with asset batch ID; submission polls processing status via AJAX

Media Purpose (destinations)

Phase 1 enabled destinations route files into _vxp_gallery_media JSON pools:

  • before, after — comparison pools
  • progress, detail — work-in-progress and detail shots
  • project_video, featured, reference — hero, video, and reference assets

Phase 2 destinations (drone footage, materials, documents, inspiration) are registered but disabled until future releases.

Processing bridge

On submit, intake calls NADMP_Intake_Upload::stage_and_queue_files() in Vexal Media. Each submission creates:

  • Submission CPT vxp_submission with status metadata
  • Asset batch ID and queue batch ID for traceability
  • Attachment linkage via _vxp_portfolio_item_id after processing

Workspace batch processing runs via process_workspace_batch(). Poll until status is complete before expecting Media Library columns to populate.

After upload (admin workflow)

  1. Filter Media Library: upload.php?vexal_gallery={portfolio_id}
  2. Verify Vexal Gallery, Vexal Category, and Vexal Project columns
  3. Review gallery pools: admin.php?page=vexal-portfolio-portfolios&edit={id}&view=media
  4. Run Media Linkage if relationships appear empty after bulk intake
  5. Assign projects to showcases and publish portfolio pages manually

Common issues

  • Uploader disabled on page — enable Project Workspace; confirm Vexal Media is active
  • Files stuck processing — check Vexal Media queue and API credentials
  • Media not on public page — expected in Phase 1; build showcase from pools
  • Empty Media Library columns — run Media Linkage; requires Vexal Media 1.6.013+

See Portfolio troubleshooting for detailed diagnostics.

See also