After purchase
When a line is fulfilled, Contracts fills the mapped template and writes a PDF.
- With the player:
beatstore_order_line_fulfilled - Without the player: EDD
edd_complete_purchase, or WooCommerceprocessing/completed
The write is idempotent on order_ref + commerce_ref. A second hook fire does not create a second file.
Where the file lives
New PDFs are private: uploads/beatstore-contracts/private/. The filename is a hash of the order and commerce refs. Download is ?beatstore_contract={token}, not a public URL.
Old agreement-pdfs/ files from Licenses & Contracts stay where they are. They are not moved.
Receipts can include token links. EDD uses the {contract_list} email tag. WooCommerce appends the same list after the order table in the email. Turn that on under contract settings (email in receipt).
Order success / receipt page
Buyers also get the same token list on the page they land on after paying:
- Easy Digital Downloads: the purchase receipt screen
- WooCommerce: the thank-you / order-received page, and My Account → View order
Those screens always print the links when a PDF exists for the order. The email setting only controls whether the list is emailed.
No template mapped
If the offer has no template, or the template is disabled / empty HTML, fulfillment skips that line. The sale and the buyer files still go through EDD or Woo.