Details
Description
Some people need to request a signature during checkout. This would probably be displayed below acceptance to the terms. The signature should be possible with a mouse, or with a finger on mobile devices.
There are some libraries available, this one stands out to me as a possible option:
https://github.com/szimek/signature_pad
Order Form Config
When creating/editing an order form as an admin, add an option to require a digital signature. This can probably go beneath "Require Agreement to Terms of Service" and be called "Require a Digital Signature".
Order Forms
During checkout, toward the end, probably below the terms (if terms are displayed) add the signature pad. (Will need to determine formatting and any text that should be shown). If the signature pad is shown, it must be used and the user should not be able to continue without signing. The signature image will need to be stored somewhere within the uploads directory.
Orders Widget
In the orders widget (Billing Overview and on the client's profile page) admins should be able to see the signature. Include the signature in the expand area for orders. We can add a new table for "Signature" in the expand area with 2 columns: Signature and Date. The signature image should appear in the Signature column, and the date/time it was signed (or the date/time the order was submitted) should appear in the other column.
Clients will not be able to see their signature in the client area.
CORE-3273 mentions logging these TOS acceptances in another table. We might consider implementing both of these together, or copying what is best about the other task to this implementation.