Dynamic Invoice Submissions
How to setup?
First thing to do would be to create your Pre-defined Line Items, otherwise there won't be any services/products/other options on the custom form.
The next step depends on the premium WordPress form plugin...
I'll start with our favorite form plugin, Ninja Forms:
When you create your submission form there will be a new field called Invoice Items, simply add that field to your form and it will be used to include your pre-defined line items as options.
Follow the same steps as Ninja Forms but expect the image above to not make any sense :)
GravityForms is similar:
Instead of a custom field you'll just add a "Checkboxes" field to your form, don't worry about the options since they'll be automatically override by your pre-defined line item.
The final step is going to the Sprout Invoices settings page and completing the Invoice Submission mapping section; this is critical since the mapping allows for the content submitted to automatically generate the necessary records.
Only Shows Specific Items
This code snippet will create a new pre-defined line item type called "Submissions" which will be the only type shown on invoice submissions.