Skip to content

Conversations

The conversation system lets vendors and customers communicate directly on a service order. Messages, file attachments, and status updates are tracked in a threaded conversation view.

After the customer submits their requirements, the conversation panel becomes available on the service order page. Both parties can send messages from that point.

Messages are submitted via AJAX (wp_ajax_wss_send_order_conversation):

  1. Open the service order page.
  2. Type your message in the conversation input field.
  3. Optionally attach files using the attachment button.
  4. Click Send.

Since 5.8.7, the handler derives the sender from the current user server-side and confirms the user is a party to the order, so a message cannot be forged or posted into another customer’s thread.

Both parties can attach files to messages. Supported file types follow WordPress’s default allowed MIME types and can be adjusted with the wss_get_allowed_mime_types filter. Files are served through the plugin’s download handler, which includes path traversal prevention.

When enabled, the conversation panel uses AJAX polling (via sell-conversation-update.php) to fetch new messages in real time. The polling endpoint:

  • Fetches new messages since the last check.
  • Marks received messages as read when the other party views them.
  • This read status prevents the email cron from notifying about messages already seen live.

Enable it at WP Admin > WB Plugins > Woo Sell Services > General > Enable Live Conversation.

Conversation emails are not sent immediately. They use a cron-based delay:

  1. A new message is stored with an unread status.
  2. A cron job runs every 5 minutes.
  3. The cron selects unread messages whose timestamp is older than the configured delay.
  4. If the message is still unread, an email is sent.
  5. If the other user already read it via live conversation, no email is sent.

This prevents email floods during rapid back-and-forth. Configure the delay at WB Plugins > Woo Sell Services > General > Email Conversation Delay (in minutes).

If a product has a co-author assigned and the co-author notification setting is enabled, the co-author receives copies of conversation email notifications, can view the conversation in the admin order view, and can be assigned at the product or order level.

Support agents are assigned from the product edit screen (when Enable Support Agent Frontend is on) or from the WooCommerce order admin via the wss_assign_order_agent AJAX handler.

Notification Recipient
Email (via cron) The other party, after the configured delay
Email (vendor copy) Vendor, if author_enabled is set in the conversation email’s WooCommerce settings
Live notification Both parties (in-app)
Co-author email Assigned support agent

Messages are stored in the wss_sell_messages custom table (author, recipient, order, item, product, message, timestamp, attachment, and read status). See Database Schema.

The store owner can read, search, delete, and export all order conversations at WP Admin > WB Plugins > Order Conversations (since 5.8.7), backed by the REST API. See REST API.