Deliveries & Revisions
Learn how vendors submit deliveries, buyers request revisions, and both parties manage the approval workflow from initial submission to final acceptance.
Delivery Workflow
Order Active → Vendor Submits → Buyer Reviews → Accept or Revise
↓
Revision?
↓ ↓
YES ←┘ └→ NO
↓ ↓
Resubmit Completed
When Vendors Can Submit Deliveries
Deliveries can only be submitted when the order is in one of these three statuses:
in_progress– Normal delivery submissionrevision_requested– Resubmitting after changeslate– Delivery after deadline has passed
Cannot deliver from other statuses like pending requirements, pending approval, completed, or cancelled.
Submitting Deliveries
Delivery Submission Process
- Go to Vendor Dashboard → Orders
- Open order in
inprogress,revisionrequested, orlatestatus - Click Submit Delivery button
- Upload files (see allowed types below)
- Write delivery message
- Click Submit
Order status immediately changes to pending_approval.
Uploading Deliverable Files
Files are processed through WordPress media library and stored with order reference.
Allowed File Types:
Images: jpg, jpeg, png, gif, webp
Documents: pdf, doc, docx, xls, xlsx, ppt, pptx, txt, csv
Archives: zip, rar, 7z
Audio: mp3, wav, ogg
Video: mp4, mov, avi, webm
Design: psd, ai, eps, sketch, fig
Data: json, xml
Explicitly NOT Allowed (Security):
svg– XSS risk via embedded JavaScripthtml– Executable scriptscss– Can contain expressions/importsjs– Executable JavaScript
Custom File Types:
Developers can add additional types via filter:
add_filter( 'wpss_delivery_allowed_file_types', function( $types ) {
$types[] = 'indd'; // Add InDesign files
return $types;
} );
File Processing
Each uploaded file:
- Validated against allowed types
- Processed via
wphandleupload() - Created as private WordPress attachment
- Linked to order via
wpssorder_idpost meta - Added to delivery record in JSON format
Storage: /wp-content/uploads/ (standard WordPress media)
Delivery Versioning
Each submission creates a new version:
Database: wpwpssdeliveries table
versionfield increments (1, 2, 3…)- All previous versions retained
- Both parties can download any version
Status Flow:
Submit → status = 'pending'
Accept → status = 'accepted'
Revise → status = 'revision_requested'
Buyer Review Process
Receiving Delivery

When vendor submits:
- Buyer receives email notification
- Order status →
pending_approval - Buyer downloads files from order page
- Buyer has 3 options:
1. Accept Delivery
- Click “Accept Delivery”
- Order status →
completed - Vendor receives payment
- Delivery status →
accepted

2. Request Revision
- Click “Request Revision”
- Provide specific feedback
- Order status →
revision_requested - Delivery status →
revision_requested
3. Open Dispute
- Major issues or unresponsive vendor
- See Dispute Resolution
Auto-Completion
If buyer takes no action:
Timeline (configurable):
- Default: 3 days after delivery
- Admin setting: 0-30 days
- Setting:
wpssorders['autocomplete_days']
What Happens:
- Order auto-completes after X days
- Vendor receives payment
- Buyer can still leave review
Disabled if: Setting = 0
Revision System
How Revisions Work
Revision Limit:
- Default: 2 revisions per order
- Configured in Settings → Orders → Default Revision Limit
- Range: 0-10 revisions
- Can be overridden per service package
Checking Remaining Revisions:
Code checks: $order->canrequestrevision()
- Returns
trueif revisions remain OR unlimited - Revisions = -1 means unlimited
- Tracks
revisionsusedvsrevisionsincluded
Requesting Revisions (Buyer)
Requirements:
- Order status:
pending_approval - Revisions remaining > 0 OR unlimited
- Specific feedback required
Process:
- View delivery files
- Click “Request Revision”
- Describe changes needed (required field)
- Submit request
What Happens:
- Delivery status →
revision_requested - Order status →
revision_requested - Vendor receives notification
- Revision counter increments
Delivering Revisions (Vendor)
Process:
- Receive revision request notification
- Review buyer feedback
- Make requested changes
- Submit new delivery (same workflow)
- New version created automatically
Version Tracking:
Initial Delivery: Version 1
First Revision: Version 2
Second Revision: Version 3
Revision Limits Exhausted
When canrequestrevision() returns false:
- Buyer cannot request more revisions
- Vendor can still offer goodwill revisions
- Options:
Delivery Files Access
Access Control
Who Can Download:
- Buyer: Their order deliveries
- Vendor: Deliveries they submitted
- Admin: All deliveries
Security:
- Files stored as private attachments
- Order ID verified before download
- No public URLs
- Login required

File Storage
Local Storage:
- WordPress uploads directory
- Private attachment post type
- Order reference in post meta
[PRO] Cloud Storage: See Cloud Storage for S3, GCS, Digital Ocean Spaces integration.
Notifications
Email Events
Vendor Receives:
wpssrevisionrequested– Buyer requested changes- Delivery accepted confirmation
- Auto-approval reminder (if approaching)
Buyer Receives:
wpssdeliverysubmitted– Vendor submitted delivery- Revision delivered confirmation
- Auto-completion countdown
Admin Receives (optional):
- Late delivery flags
- Dispute-related deliveries
Action Hooks
Developers:
// When delivery submitted
do_action( 'wpss_delivery_submitted', $delivery_id, $order_id );
// When delivery accepted
do_action( 'wpss_delivery_accepted', $order_id );
// When revision requested
do_action( 'wpss_revision_requested', $order_id, $reason );
Delivery Best Practices
For Vendors
✅ Before Submitting:
- Test all files (open/extract properly)
- Verify work meets requirements
- Include setup/usage instructions
- Use clear file names
✅ Quality Standards:
- No corrupt or broken files
- All promised deliverables included
- Professional presentation
- Delivered before deadline when possible
✅ Revision Handling:
- Address all feedback points
- Communicate what changed
- Maintain version history
- Be professional and courteous
For Buyers
✅ Reviewing Deliveries:
- Review within 2-3 days
- Test all functionality
- Compare against requirements
- Provide specific feedback
✅ Revision Requests:
- Be specific about changes
- Reference original requirements
- Be reasonable (within scope)
- Communicate clearly
Troubleshooting
Cannot Submit Delivery
Check:
- Order status is
inprogress,revisionrequested, orlate - Not in
pending_requirementsorcompleted - You are the vendor on the order
File Upload Failed
Common Issues:
- File type not in allowed list → Use ZIP
- File too large → Split into smaller files
- Upload timeout → Increase PHP limits
Error: “File type not allowed”
- Check
DeliveryService::getallowedfile_types() - SVG, HTML, CSS, JS explicitly blocked
- Use allowed archive format (ZIP, RAR, 7Z)
Revision Counter Not Updating
Verify:
- Revision was actually requested (not draft)
revisions_usedincremented in database- Cache cleared
- Page refreshed
Settings Reference
Admin: Settings → Orders
| Setting | Field Name | Default | Range | Description |
|---|---|---|---|---|
| Auto-Complete Days | autocompletedays | 3 | 0-30 | Days after delivery to auto-complete if no buyer action |
| Default Revision Limit | revision_limit | 2 | 0-10 | Default revisions per order (overridable per service) |
Note: 0 = disabled for auto-complete; 0 = no revisions for revision limit
Related Documentation
- Order Workflow – Complete order lifecycle
- Order Messaging – Communication during orders
- Tipping & Extensions – Deadline extensions
- Dispute Resolution – Handling conflicts
Excellent deliveries and professional revision handling lead to 5-star reviews!
