{"id":398465,"date":"2026-11-05T16:56:01","date_gmt":"2026-11-05T16:56:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/salsox\/"},"modified":"2026-11-05T16:55:29","modified_gmt":"2026-11-05T16:55:29","slug":"salsox","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/salsox\/","author":23598774,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Salsox","header_author":"Salsox","header_description":"Add a \"Request a signature\" form to any page. Visitors enter their name and email, and Salsox emails them your document to sign.","assets_banners_color":"3c837d","last_updated":"2026-11-05 16:55:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/salsox.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":140,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"richardprempeh","date":"2026-11-05 16:55:29","revision":3786410}},"upgrade_notice":{"1.0.1":"<p>Makes the request limits hold when many submissions arrive at once, and fixes the form for logged-in visitors.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3786410,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3786410,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3786410,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3786410,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"salsox\/request-signature":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"salsox\/request-signature","title":"Request a signature","category":"widgets","description":"A form where visitors enter their name and email and receive your document to sign with Salsox.","keywords":["salsox","signature","esign","sign","contract"],"textdomain":"salsox","version":"1.0.1","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true}},"attributes":{"source":{"type":"string","default":"default"},"template":{"type":"string","default":""},"savedTemplate":{"type":"string","default":""},"pdfId":{"type":"number","default":0},"pdfName":{"type":"string","default":""},"documentTitle":{"type":"string","default":""},"message":{"type":"string","default":""},"values":{"type":"string","default":""},"heading":{"type":"string","default":""},"description":{"type":"string","default":""},"buttonLabel":{"type":"string","default":""}},"editorScript":"salsox-block-editor","style":"salsox-form"}},"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3786410,"resolution":"1","location":"assets","locale":"","width":1280,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3786410,"resolution":"2","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3786410,"resolution":"3","location":"assets","locale":"","width":1280,"height":860},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3786410,"resolution":"4","location":"assets","locale":"","width":1280,"height":860},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3786410,"resolution":"5","location":"assets","locale":"","width":1280,"height":1385}},"screenshots":{"1":"The Request a signature form on a page.","2":"The confirmation a visitor sees after sending the form.","3":"The visitor signs in Salsox from the link in the email: drawn, typed or uploaded, in black or blue ink.","4":"What the visitor sees once they have signed.","5":"Settings &gt; Salsox: the connection, the default document, the limits and the recent requests with their status."}},"plugin_section":[],"plugin_tags":[147709,166562,183370,601,723],"plugin_category":[42],"plugin_contributors":[290916],"plugin_business_model":[],"class_list":["post-398465","plugin","type-plugin","status-publish","hentry","plugin_tags-contract","plugin_tags-e-signature","plugin_tags-esign","plugin_tags-forms","plugin_tags-signature","plugin_category-contact-forms","plugin_contributors-richardprempeh","plugin_committers-richardprempeh"],"banners":{"banner":"https:\/\/ps.w.org\/salsox\/assets\/banner-772x250.png?rev=3786410","banner_2x":"https:\/\/ps.w.org\/salsox\/assets\/banner-1544x500.png?rev=3786410","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/salsox\/assets\/icon-128x128.png?rev=3786410","icon_2x":"https:\/\/ps.w.org\/salsox\/assets\/icon-256x256.png?rev=3786410","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/salsox\/assets\/screenshot-1.png?rev=3786410","caption":"The Request a signature form on a page."},{"src":"https:\/\/ps.w.org\/salsox\/assets\/screenshot-2.png?rev=3786410","caption":"The confirmation a visitor sees after sending the form."},{"src":"https:\/\/ps.w.org\/salsox\/assets\/screenshot-3.png?rev=3786410","caption":"The visitor signs in Salsox from the link in the email: drawn, typed or uploaded, in black or blue ink."},{"src":"https:\/\/ps.w.org\/salsox\/assets\/screenshot-4.png?rev=3786410","caption":"What the visitor sees once they have signed."},{"src":"https:\/\/ps.w.org\/salsox\/assets\/screenshot-5.png?rev=3786410","caption":"Settings &gt; Salsox: the connection, the default document, the limits and the recent requests with their status."}],"raw_content":"<!--section=description-->\n<p>Salsox for WordPress connects your site to your <a href=\"https:\/\/salsox.com\">Salsox<\/a> account. Put a form on any page, and when a visitor enters their name and email, Salsox sends them your document to read and sign online. You follow every request in Salsox, and on Settings &gt; Salsox in WordPress.<\/p>\n\n<p><strong>What a form can send<\/strong><\/p>\n\n<ul>\n<li>A template from the Salsox library, such as a liability waiver, a photo release or a consent form, with your own details filled in.<\/li>\n<li>One of your saved templates in Salsox.<\/li>\n<li>A PDF from your Media Library. Salsox adds a signature and a date for the visitor.<\/li>\n<\/ul>\n\n<p>The visitor is the signer; you are filled in as the sender.<\/p>\n\n<p><strong>Two ways to add the form<\/strong><\/p>\n\n<ul>\n<li>The <strong>Request a signature<\/strong> block, in the block editor. Pick the document and the wording in the block's sidebar; the editor shows the form as it will appear.<\/li>\n<li>The <code>[salsox_sign]<\/code> shortcode, anywhere shortcodes work.<\/li>\n<\/ul>\n\n<p><strong>Built to be safe on a public page<\/strong><\/p>\n\n<p>Every request sends a real document from your account and counts toward your Salsox plan, so the plugin protects the form:<\/p>\n\n<ul>\n<li>The document a form sends is fixed by you and signed with your site's keys. A visitor cannot change it.<\/li>\n<li>An hourly limit per visitor and per email address, and a daily limit for the whole site, both adjustable.<\/li>\n<li>An optional setting to accept requests only from logged-in visitors.<\/li>\n<li>A hidden field that catches automated submissions.<\/li>\n<\/ul>\n\n<p>Your API key is stored on your server and used only from your server. It is never sent to a visitor's browser, and it is not shown again once saved.<\/p>\n\n<p><strong>Responsive and accessible<\/strong><\/p>\n\n<p>The form fits phones from 320 pixels wide, works with the keyboard and screen readers, works without JavaScript, and respects reduced-motion settings.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Salsox API (https:\/\/salsox.com\/api\/v1), which is needed to send documents for signature. It makes no other outgoing requests and includes no tracking or analytics.<\/p>\n\n<p>It sends data to Salsox only in these cases:<\/p>\n\n<ul>\n<li><strong>When you save an API key or click Test connection<\/strong> on Settings &gt; Salsox: your API key, to check it and read your account's name, email and plan.<\/li>\n<li><strong>When you open Settings &gt; Salsox or the block's sidebar<\/strong>: your API key, to list your templates and, if there are requests in the log, the status of your recent documents.<\/li>\n<li><strong>When a visitor submits a form<\/strong>: the visitor's name and email address, and the document you chose (a template name, a saved template's ID, or the public link to your PDF), so Salsox can send them the document.<\/li>\n<li><strong>When you click Disconnect<\/strong>: your API key, so Salsox revokes it.<\/li>\n<\/ul>\n\n<p>Salsox is provided by Salsox: <a href=\"https:\/\/salsox.com\/terms\">Terms of service<\/a>, <a href=\"https:\/\/salsox.com\/privacy\">Privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to Plugins &gt; Add New &gt; Upload Plugin, choose <code>salsox.zip<\/code> and click Install Now, then Activate.<\/li>\n<li>In Salsox, open the <a href=\"https:\/\/salsox.com\/dashboard\/developers\">Developers page<\/a> and create an API key.<\/li>\n<li>In WordPress, go to Settings &gt; Salsox, paste the key and click Save settings. The plugin tests the connection and shows the account it is connected to.<\/li>\n<li>Choose the default document the forms send.<\/li>\n<li>Add the <strong>Request a signature<\/strong> block, or the <code>[salsox_sign]<\/code> shortcode, to a page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20salsox%20account%3F\"><h3>Do I need a Salsox account?<\/h3><\/dt>\n<dd><p>Yes. The documents are sent from your Salsox account, and count toward its plan. You can create an account at salsox.com.<\/p><\/dd>\n<dt id=\"can%20visitors%20sign%20on%20my%20page%20without%20leaving%20it%3F\"><h3>Can visitors sign on my page without leaving it?<\/h3><\/dt>\n<dd><p>Not yet. Salsox emails the visitor a private link to sign, which keeps the signature tied to their email address. The Salsox API does not offer signing embedded in another site.<\/p><\/dd>\n<dt id=\"why%20does%20my%20pdf%20not%20send%3F\"><h3>Why does my PDF not send?<\/h3><\/dt>\n<dd><p>Salsox downloads the PDF from your site, so the site must be public and use HTTPS, and the file must be 4 MB or smaller. A site on a local computer or behind a password cannot be reached; use a template instead.<\/p><\/dd>\n<dt id=\"which%20templates%20can%20i%20use%3F\"><h3>Which templates can I use?<\/h3><\/dt>\n<dd><p>Templates with exactly one signer besides you, as the form sends to one person. The template lists only those.<\/p><\/dd>\n<dt id=\"how%20do%20i%20fill%20in%20a%20template%27s%20details%3F\"><h3>How do I fill in a template's details?<\/h3><\/dt>\n<dd><p>In the block's sidebar, under Template values, write one per line, as Name=Value, for example <code>Activity=Guided kayak tour<\/code>. In the shortcode, separate them with a vertical bar: <code>[salsox_sign template=\"liability-waiver\" values=\"Activity=Guided kayak tour|Activity date=12 June\"]<\/code>.<\/p>\n\n<p>Write <code>{name}<\/code> or <code>{email}<\/code> in a value to use what the visitor enters, for example <code>Participant name={name}<\/code>.<\/p><\/dd>\n<dt id=\"what%20shortcode%20options%20are%20there%3F\"><h3>What shortcode options are there?<\/h3><\/dt>\n<dd><ul>\n<li><code>template<\/code>: a Salsox library template's slug.<\/li>\n<li><code>saved_template<\/code>: the ID of one of your saved templates.<\/li>\n<li><code>pdf<\/code>: the ID of a PDF in your Media Library.<\/li>\n<li><code>values<\/code>: template details, as Name=Value separated by <code>|<\/code>.<\/li>\n<li><code>title<\/code>: the document's title.<\/li>\n<li><code>message<\/code>: the message in the email.<\/li>\n<li><code>heading<\/code>, <code>description<\/code>, <code>button<\/code>: the form's wording.<\/li>\n<\/ul>\n\n<p>Without <code>template<\/code>, <code>saved_template<\/code> or <code>pdf<\/code>, the form sends the default document from Settings &gt; Salsox.<\/p><\/dd>\n<dt id=\"what%20does%20the%20plugin%20store%3F\"><h3>What does the plugin store?<\/h3><\/dt>\n<dd><p>Your API key and settings, a log of the last 50 requests (the visitor's name, email address, the document and the time), and a small table of limit counters, which hold only hashed visitor and email identifiers and expire within a day. Deleting the plugin removes all of it.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20click%20disconnect%3F\"><h3>What happens when I click Disconnect?<\/h3><\/dt>\n<dd><p>The plugin asks Salsox to revoke the API key, then removes it from your site. The forms stop sending until you connect again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: simultaneous submissions could get past the hourly and daily limits. The counters are now raised in one atomic step (in the object cache when the site has a persistent one, otherwise in a small table of the plugin's own), and checked after counting.<\/li>\n<li>Fixed: with the block or shortcode on a page, logged-in visitors could not send the form without a page reload, so \"Only logged-in visitors\" forms failed.<\/li>\n<li>The note under the form names Salsox without linking to it.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: settings page with connection test, Request a signature block and <code>[salsox_sign]<\/code> shortcode, request log with signing status.<\/li>\n<li>The plugin header names the author's site only (no separate plugin URI), as WordPress.org requires the two to differ.<\/li>\n<li>A rejected API key is reported in plain words on Settings &gt; Salsox.<\/li>\n<\/ul>","raw_excerpt":"Add a \"Request a signature\" form to any page. Visitors enter their name and email, and Salsox emails them your document to sign online.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398465"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/richardprempeh"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398465"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398465"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398465"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398465"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398465"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}