Skip to content

Requirement Questions

Every service product can define a set of requirement questions. Buyers answer these immediately after purchase, and the seller cannot begin the order until the required answers are submitted. The builder lives in the “EDD Services” box on the service product, under “Add Your Question”, and is powered by an ACF flexible content field.

Above the questions is the Estimate Delivery Time field, a number of days. This is the seller’s stated deadline for delivering the order and is shown to buyers.

Click “Add Question” and choose one of the following layouts. Each question also carries a Question Description (a rich text field that gives the buyer guidance) and a Required toggle.

  • Text Box. A short text answer.
  • Text Area (With Editor). A multi line answer with a basic visual editor.
  • Text Area. A rich text answer with the full editor toolbar.
  • Upload. Lets the buyer attach a file as the answer.
  • DropDown. A single choice from a list of options. Each option has a label and a Default toggle.
  • Checkbox. A multiple choice list. Each option has a label and a Default toggle.
  • Radio Buttons. A single choice list. Each option has a label and a Default toggle.

Questions can be reordered by drag and drop, and options within Dropdown, Checkbox, and Radio questions are managed as a repeating list.

The plugin readme describes three field types (“Textbox, Radio Button, and Select Box”). The current code defines seven layouts as listed above. Treat this page as the accurate list.

When a buyer submits the requirement form, the answers are saved to the order (payment) meta under keys derived from the payment id and product id (edd_sell_req_data_<paymentid>_<productid>), a “saved” flag is set, and any uploaded files are stored under a matching attachment meta key. Submitting the form also moves the order into the “Work In Progress” state.

A seller who builds the same questions across many products can save a product’s questions as a reusable template and import them into another service. See Requirement Templates.