Client Project Media Uploader
The Client Project Media Uploader is a frontend intake wizard for clients and field teams. Users select or create a Project, optionally assign a Portfolio, choose an Asset Type and Asset Subtype, then upload Project Assets. Files are optimized by Vexal Media. Upload does not auto-publish Portfolios—admins build public displays from organized Assets.
Prerequisites
- Vexal Portfolio active with Project Workspace enabled in settings (default: off)
- Vexal Media active (1.6.025+ recommended for current Media Library labels)
- Processing configured in Vexal Media → Settings / Integrations
- Project Asset 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.
5-step wizard
| Step | Label | What the user does |
|---|---|---|
| 1 | Project | Select an existing Project (vxp_portfolio) or create a new one |
| 2 | Portfolio | Optional: skip, select an existing Portfolio (vxp_project), or create a new Portfolio title |
| 3 | Project Assets | Choose Asset Type, Asset Subtype, and Asset destination (pool) |
| 4 | Upload | Select files (max 10 per submission by default) |
| 5 | Done | Confirmation with asset batch ID; submission polls processing status via AJAX |
Wire compatibility: request fields gallery_id and project_id are unchanged. Internally, gallery_id is the Project and project_id is the Portfolio.
Asset destinations
Phase 1 enabled destinations route files into _vxp_gallery_media JSON pools:
before,after— comparison pools (often shown in Gallery)progress,detail— work-in-progress and detail shotsproject_video,featured,reference— hero, video, and reference Assets
Visual destinations may feed the Project Gallery. Documents and other non-visual Assets remain Project Assets even when they are not Gallery items.
Processing bridge
On submit, intake stages files through 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
After upload (admin workflow)
- Filter Media Library:
upload.php?vexal_gallery={project_id} - Verify Vexal Project, Vexal Category, and Vexal Portfolios columns
- Review Asset pools:
admin.php?page=vexal-portfolio-portfolios&edit={id}&view=media - Run Media Linkage if relationships appear empty after bulk intake
- Assign Projects to Portfolios and publish with
[vexal_portfolio id="slug"]
Common issues
- Uploader disabled on page — enable Project Workspace; confirm Vexal Media is active
- Files stuck processing — check Vexal Media queue and API credentials
- Assets not on public page — expected until an admin assigns the Project to a Portfolio and publishes the shortcode
- Empty Media Library columns — run Media Linkage
See Portfolio troubleshooting for detailed diagnostics.