Service Requirements & FAQs
Define what information you need from buyers before starting work, and answer common questions.
Requirements Overview
Requirements are custom questions buyers must answer when placing an order. They ensure you get all necessary information upfront.
Requirements Limits
| Version | Maximum Requirements |
|---|---|
| Free | 5 requirements |
| [PRO] | Unlimited (filter: wpssservicemax_requirements = -1) |
Requirement Field Types

Four field types supported by the wizard:
1. Text (Short Answer)
Single-line text input for brief responses.

Use Cases:
- Business name
- Domain name
- Social media handle
- Contact email
Example:
{
"question": "What is your business name?",
"type": "text",
"required": true,
"options": ""
}
2. Textarea (Long Answer)
Multi-line text area for detailed responses.
Use Cases:
- Project description
- Design preferences
- Content requirements
- Target audience details
Example:
{
"question": "Describe your project in detail",
"type": "textarea",
"required": true,
"options": ""
}
3. File Upload

Allow buyers to upload files.
Use Cases:
- Logo files
- Brand guidelines
- Reference images
- Content documents
File Upload Limits:
- 24 allowed extensions (not 6 as in old docs)
- Maximum file size: 50MB (not 10MB)
- Extensions: jpg, jpeg, png, gif, webp, pdf, doc, docx, xls, xlsx, ppt, pptx, txt, rtf, csv, zip, rar, 7z, mp3, wav, mp4, mov, avi, psd, ai, eps, svg
Example:
{
"question": "Upload your company logo",
"type": "file",
"required": false,
"options": ""
}
4. Select (Multiple Choice)

Dropdown with predefined options.
Use Cases:
- Style preference
- Color scheme
- Target platform
- Industry type
Example:
{
"question": "Choose your preferred style",
"type": "select",
"required": true,
"options": "Modern, Classic, Minimalist, Vintage"
}
Options Format: Comma-separated values
Field Types NOT Available
The wizard does NOT support:
- Radio buttons – Not exposed in wizard UI
- Multi-select checkboxes – Not implemented
- Date picker – Not available
- Number input – Use text field instead
Only the 4 types listed above are available in the wizard.
Requirement Configuration
Question Field
- Text input
- The question buyers will see
- Required field
- Used as field key when storing responses
Type Dropdown
Four options:
- Text
- Textarea
- File
- Select
Required Checkbox
- Toggle for mandatory vs optional
- If checked, buyers must answer before submitting requirements
- Validation enforced in
RequirementsService::validate()
Options Field
- Text input
- Only shown when type is “Select”
- Comma-separated list
- Example:
Option 1, Option 2, Option 3
Requirements Data Structure
Stored in wpssrequirements post meta:
[
{
"question": "What is your business name?",
"type": "text",
"required": true,
"options": ""
},
{
"question": "Choose industry",
"type": "select",
"required": false,
"options": "Tech, Healthcare, Finance, Retail"
},
{
"question": "Upload brand guidelines",
"type": "file",
"required": false,
"options": ""
}
]
Buyer Submission Process
Order Requirements Submission
After purchasing, buyer fills requirement form:
- Order created with status
pending_requirements - Buyer accesses requirements form
- Buyer answers all required questions
- Buyer uploads any required files
- Submits requirements
- Order status changes to
in_progress - Vendor receives notification to start work
Late Submission
If setting enabled (wpssallowlaterequirementssubmission):
- Buyers can submit requirements after order starts
- Only if no requirements submitted yet
- Vendor gets notification of late submission
- Order continues with new information
File Uploads
Files uploaded via requirements are:
- Validated against 24 allowed extensions
- Limited to 50MB per file
- Set to
post_status='private'for security - Accessible only to buyer and vendor
- Stored in WordPress media library
Requirements Service Class
Location: src/Services/RequirementsService.php
Key Methods:
$req_service = new RequirementsService();
// Get service requirement fields
$fields = $req_service->get_service_fields( $service_id );
// Submit requirements for order
$result = $req_service->submit( $order_id, $field_data, $files );
// Check if order has requirements
$has_reqs = $req_service->has_requirements( $order_id );
// Get formatted requirements for display
$formatted = $req_service->get_formatted( $order_id );
// Validate requirements
$validation = $req_service->validate( $fields, $field_data, $files );
Validation
Requirements validated in RequirementsService::validate():
Required Field Check:
if ( $required && empty( $value ) ) {
$errors[ $field_key ] = sprintf( '%s is required.', $field_label );
}
Select Type Validation:
$choices = explode( ',', trim( $field['options'] ) );
if ( ! in_array( $value, $choices, true ) ) {
$errors[ $field_key ] = 'Invalid selection.';
}
File Upload Validation:
// Check file extension
if ( ! in_array( $ext, $allowed_types, true ) ) {
continue; // Skip invalid file
}
// Check file size (50MB max)
if ( $file['size'] > 50 * 1024 * 1024 ) {
continue;
}
FAQs Overview
Frequently Asked Questions section helps buyers make informed decisions.
FAQ Limits
| Version | Maximum FAQs |
|---|---|
| Free | 5 FAQs |
| [PRO] | Unlimited (filter: wpssservicemax_faq = -1) |
FAQ Configuration

Question Field
- Text input
- The FAQ question
- Required
Answer Field
- Textarea
- The answer to the question
- Supports HTML via
wpksespost() - Required
FAQ Data Structure
Stored in wpssfaqs post meta:
[
{
"question": "Do you offer refunds?",
"answer": "Yes, we offer full refunds within 14 days if you're not satisfied."
},
{
"question": "How long will it take?",
"answer": "Standard delivery is 5 days. Express options available."
}
]
Best Practices
Requirements
Ask Only What You Need:
- Too many questions reduce conversion
- Focus on essential information
- Combine related questions
Be Specific:
- “What colors do you prefer?” vs “Tell me about your project”
- Give examples in question text
- Explain why you need the information
Use Correct Field Types:
- Text for short answers (name, email)
- Textarea for descriptions
- Select for predefined choices
- File for reference materials
Order Logically:
- Most important questions first
- Group related questions
- Optional questions at end
FAQs
Answer Common Questions:
- Review buyer messages for patterns
- Address concerns proactively
- Update based on questions received
Keep Answers Concise:
- 2-3 sentences per answer
- Use bullet points for clarity
- Link to detailed info if needed
Cover These Topics:
- Refund policy
- Delivery timeframes
- Revision process
- What’s included/excluded
- Communication process

Example FAQ Structure:
Q: What do you need from me to start?
A: After ordering, you'll fill a simple form with your business name,
preferred colors, and any reference examples. Takes about 5 minutes.
Q: How many revisions are included?
A: Basic package includes 2 revisions, Standard includes 3,
and Premium includes unlimited revisions.
Q: Do you offer rush delivery?
A: Yes! Add the Express Delivery option for 24-hour turnaround
at checkout for an additional $25.
Common Issues
Requirements Not Saving
Causes:
- Limit of 5 requirements reached (free version)
- Missing question text
- Invalid field type
Fix:
- Remove unused requirements
- Ensure all questions have text
- Select valid field type
- Upgrade to Pro for unlimited
File Upload Failing
Causes:
- File exceeds 50MB
- Unsupported file type (not in 24 allowed extensions)
- Upload directory permissions
Fix:
- Compress files under 50MB
- Use supported file types
- Check
/wp-content/uploads/permissions - Try different file format
Buyer Can’t Submit Requirements
Causes:
- Required fields not filled
- Invalid file upload
- Order status not
pending_requirements - Validation errors
Fix:
- Check all required fields completed
- Verify file uploads successful
- Confirm order status correct
- Review browser console for errors
Technical Details
Requirements Storage
Service Requirements: wpssrequirements post meta (array of fields)
Order Requirements: wpssorderrequirements custom table
Table Structure:
CREATE TABLE wpss_order_requirements (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_id BIGINT UNSIGNED NOT NULL,
field_data TEXT, -- JSON of answers
attachments TEXT, -- JSON of uploaded files
submitted_at DATETIME NOT NULL
)
Allowed File Types
Complete list of 24 allowed extensions:
$types = array(
'jpg', 'jpeg', 'png', 'gif', 'webp', // Images
'pdf', // PDF
'doc', 'docx', // Word
'xls', 'xlsx', // Excel
'ppt', 'pptx', // PowerPoint
'txt', 'rtf', 'csv', // Text
'zip', 'rar', '7z', // Archives
'mp3', 'wav', // Audio
'mp4', 'mov', 'avi', // Video
'psd', 'ai', 'eps', 'svg' // Design
);
Filter available: wpssrequirementsallowedfiletypes
Related Documentation
- Service Wizard – Requirements step in wizard
- Order Management – Requirements submission workflow
- Publishing & Moderation – Service approval
