Client Project Media Uploader
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
- Vexal Portfolio active with Project Workspace enabled in settings (default: off)
- Vexal Media active (1.6.012+; 1.6.013+ recommended for Vexal Gallery column)
- Processing configured in Vexal Media → Settings / Integrations—not in Project Workspace
- 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
| Step | Label | What the user does |
|---|---|---|
| 1 | Gallery | Select an existing gallery (vxp_portfolio) or create a new one with name, description, and gallery type |
| 2 | Project | Optional: skip, select an existing showcase (vxp_project), or create a new project title |
| 3 | Gallery Content | Choose gallery type, subtype, and Media Purpose (destination pool) |
| 4 | Upload | Select files (max 10 per submission by default); accept rules vary by Media Purpose |
| 5 | Done | Confirmation 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 poolsprogress,detail— work-in-progress and detail shotsproject_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_submissionwith status metadata - Asset batch ID and queue batch ID for traceability
- Attachment linkage via
_vxp_portfolio_item_idafter 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)
- Filter Media Library:
upload.php?vexal_gallery={portfolio_id} - Verify Vexal Gallery, Vexal Category, and Vexal Project columns
- Review gallery pools:
admin.php?page=vexal-portfolio-portfolios&edit={id}&view=media - Run Media Linkage if relationships appear empty after bulk intake
- 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.