{"id":349512,"date":"2026-08-06T15:23:47","date_gmt":"2026-08-06T15:23:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pallasmark-video-proof-buyer-approval-for-woocommerce\/"},"modified":"2026-08-07T15:36:26","modified_gmt":"2026-08-07T15:36:26","slug":"pallasmark-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pallasmark-for-woocommerce\/","author":23543168,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.0.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PallasMark \u2013 Video Proof & Buyer Approval for WooCommerce","header_author":"PallasMark","header_description":"Connect your store to PallasMark \u2014 pre-shipment video proof & buyer approval. Auto-registers the order webhook (modern wc\/v3) so orders flow into PallasMark.","assets_banners_color":"003426","last_updated":"2026-08-07 15:36:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pallasmark.com\/","header_author_uri":"https:\/\/pallasmark.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":72,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"pallasmark","date":"2026-08-06 15:23:32"},"1.0.5":{"tag":"1.0.5","author":"pallasmark","date":"2026-08-06 16:04:45"},"1.0.6":{"tag":"1.0.6","author":"pallasmark","date":"2026-08-06 22:28:31"},"1.0.7":{"tag":"1.0.7","author":"pallasmark","date":"2026-08-07 15:36:26"},"1.0.8":{"tag":"1.0.8","author":"pallasmark","date":"2026-08-07 15:36:26"}},"upgrade_notice":{"1.0.8":"<p>This version adds an automatic install ping (site URL + version numbers only, no order data) on\nactivate\/deactivate\/daily heartbeat \u2014 see this page&#039;s Privacy section for the full disclosure.<\/p>","1.0.5":"<p>Connecting now works: paste a connect token from PallasMark \u2192 Integrations and click &quot;Connect to\nPallasMark&quot; \u2014 previous versions asked you to copy a secret the other side had no way to receive.<\/p>","1.0.4":"<p>Declares the required WooCommerce dependency for WordPress plugin activation checks.<\/p>","1.0.3":"<p>Compatibility and directory-compliance update for WordPress 7.0 and WooCommerce 10.9.<\/p>","1.0.1":"<p>Fixes a bug where new installs sent webhooks to a domain that no longer serves PallasMark\n(app.drproof.com). Re-run &quot;Register webhooks&quot; after upgrading to point at app.pallasmark.com.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3636793,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3636793,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3636793,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3636793,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3636793,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.0.5","1.0.6","1.0.7","1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3636793,"resolution":"1","location":"assets","locale":"","width":1280,"height":430},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3636793,"resolution":"2","location":"assets","locale":"","width":1280,"height":620}},"screenshots":{"1":"The PallasMark settings page under WooCommerce, before registering webhooks.","2":"After registering \u2014 store URL and webhook secret ready to copy into PallasMark."}},"plugin_section":[],"plugin_tags":[274649,250643,274811,274647,274648],"plugin_category":[45],"plugin_contributors":[274650],"plugin_business_model":[],"class_list":["post-349512","plugin","type-plugin","status-publish","hentry","plugin_tags-buyer-approval","plugin_tags-chargeback-protection","plugin_tags-dispute-protection","plugin_tags-order-proof","plugin_tags-video-proof","plugin_category-ecommerce","plugin_contributors-pallasmark","plugin_committers-pallasmark"],"banners":{"banner":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/banner-772x250.png?rev=3636793","banner_2x":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/banner-1544x500.png?rev=3636793","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/icon.svg?rev=3636793","icon":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/icon.svg?rev=3636793","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/screenshot-1.png?rev=3636793","caption":"The PallasMark settings page under WooCommerce, before registering webhooks."},{"src":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/screenshot-2.png?rev=3636793","caption":"After registering \u2014 store URL and webhook secret ready to copy into PallasMark."}],"raw_content":"<!--section=description-->\n<p><strong>Protect your WooCommerce store from \"item not as described\" disputes, chargebacks, and false\ndamage claims<\/strong> \u2014 with automatic video proof of every order before it ships, plus optional buyer\napproval before the package ever leaves your warehouse.<\/p>\n\n<p>PallasMark records short video or photo proof of your orders during packing, and can require the\nbuyer to review and approve that proof before you ship. If a dispute or chargeback happens later,\nyou have timestamped, tamper-evident order proof showing exactly what left your warehouse and\nwhen \u2014 turning a \"he said, she said\" argument into an open-and-shut case backed by evidence.<\/p>\n\n<p>Typical use cases: high-value or fragile orders where \"item not as described\" claims are common,\nsellers who've been burned by chargebacks before, warehouses and 3PLs that want a documented,\ntimestamped fulfillment record, and any WooCommerce store that wants proof of delivery beyond a\ncourier's tracking number.<\/p>\n\n<p>This plugin automates the whole connection: paste a one-time connect token from your PallasMark\naccount, click <strong>Connect to PallasMark<\/strong>, and the plugin registers itself with PallasMark and\ncreates the <code>order.created<\/code> \/ <code>order.updated<\/code> webhooks on WooCommerce's modern REST API\n(<code>wp_api_v3<\/code>) \u2014 using the single webhook secret PallasMark actually verifies, so there's nothing\nleft to copy between the two systems by hand.<\/p>\n\n<p><strong>What this plugin does:<\/strong><\/p>\n\n<ul>\n<li>Adds a <strong>WooCommerce \u2192 PallasMark<\/strong> settings page.<\/li>\n<li>On your click, calls PallasMark with your one-time connect token and this store's URL, receives\nback a webhook secret, and creates the order webhooks pointed at PallasMark using that secret \u2014\nno manual webhook setup in WooCommerce \u2192 Settings \u2192 Advanced \u2192 Webhooks, and nothing to\ncopy-paste into PallasMark yourself.<\/li>\n<li>Re-running \"Connect to PallasMark\" is safe \u2014 it replaces any previous PallasMark webhooks\ninstead of creating duplicates.<\/li>\n<\/ul>\n\n<p><strong>What this plugin does NOT do:<\/strong> it does not send any order data anywhere by itself outside of\nthe explicit setup action described above. Once connected, WooCommerce's own webhook delivery\nsystem sends the order payload to PallasMark whenever triggered by real order activity. You still\nneed a <a href=\"https:\/\/pallasmark.com\">PallasMark<\/a> account to receive and use that data \u2014 this plugin is\nthe WooCommerce-side half of the connection, not a full product on its own.<\/p>\n\n<p>After connecting here, you'll also need to click <strong>Connect WooCommerce<\/strong> inside PallasMark\n(Integrations page) to grant a read\/write REST API key pair \u2014 this is what lets PallasMark write\nthe proof link and approval status back onto your orders. The webhook connection alone only lets\norders flow <em>in<\/em>; the REST key is what lets status flow <em>back<\/em>.<\/p>\n\n<p><strong>External service disclosure:<\/strong> PallasMark is a hosted Software as a Service product, and this\nplugin talks to it in two distinct ways:<\/p>\n\n<ol>\n<li><em>Install ping (automatic).<\/em> On activation, on deactivation, and at most once every 24 hours\nwhile active, the plugin sends this site's own public URL plus the plugin\/WordPress\/WooCommerce\nversion numbers to PallasMark \u2014 nothing else, no order\/customer\/product data. This lets\nPallasMark know your store has the plugin installed so we can reach out with setup help if you\nhaven't connected yet; it does not require or create a PallasMark account. See == Privacy ==\nbelow.<\/li>\n<li><em>Store connection (explicit, your click).<\/em> When you paste a connect token and click\n<strong>Connect to PallasMark<\/strong>, the plugin (a) calls PallasMark's registration API with that token\nand this site's URL to obtain a webhook secret, and (b) configures WooCommerce to send\norder-created and order-updated webhook payloads to the PallasMark service going forward.\nDepending on the order, those payloads may include customer contact, billing, shipping,\nproduct, and order-status data.<\/li>\n<\/ol>\n\n<p>Use of the service is subject to the\n<a href=\"https:\/\/pallasmark.com\/en\/legal\/terms\">PallasMark Terms of Service<\/a> and\n<a href=\"https:\/\/pallasmark.com\/en\/legal\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin sends data to PallasMark (app.pallasmark.com, or a different URL if you've configured\none on the settings page) in the two situations described above. Summary of what's sent and when:<\/p>\n\n<ul>\n<li><strong>On activate \/ deactivate \/ a throttled daily heartbeat:<\/strong> this site's URL (<code>home_url()<\/code>) and\nthe plugin\/WordPress\/WooCommerce version numbers. No order, customer, or product data \u2014 this\nhappens automatically, without a click, so it needs to stay minimal by design.<\/li>\n<li><strong>Only when you click \"Connect to PallasMark\":<\/strong> a webhook secret exchange (your connect token\n\n<ul>\n<li>this site's URL), and from then on WooCommerce's own order webhook payloads (which can include\ncustomer\/order data) for as long as the connection stays active.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>Deactivating or uninstalling the plugin stops all of the above. See PallasMark's\n<a href=\"https:\/\/pallasmark.com\/en\/legal\/privacy\">Privacy Policy<\/a> for how that data is handled once received.<\/p>\n\n<h3>Privacy == section for the full breakdown of what's sent and when.<\/h3>\n\n<h4>What happens if I deactivate the plugin?<\/h4>\n\n<p>The webhooks it created remain registered in WooCommerce (visible under WooCommerce \u2192 Settings \u2192\nAdvanced \u2192 Webhooks) until you delete them manually or reactivate the plugin and re-register\n(which replaces them). Deactivating the plugin does not disconnect your PallasMark account, and\nstops the automatic install ping described above.<\/p>\n\n<h4>I previously used the \"drProof\" plugin \u2014 do I need to do anything?<\/h4>\n\n<p>Re-running <strong>Register webhooks<\/strong> on this version automatically removes any leftover webhooks from\nthe old plugin name and endpoint, and creates fresh ones pointed at the current PallasMark\nendpoint.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/pallasmark-for-woocommerce<\/code>, or install the\nplugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress \u2014 you'll find it under\n<strong>WooCommerce \u2192 PallasMark<\/strong>.<\/li>\n<li>Click <strong>Log in to PallasMark<\/strong> on that page. No account yet? Create one free from the same\nscreen (14-day Pro trial, no card required) \u2014 it already knows this is a WooCommerce store.<\/li>\n<li>In PallasMark, click <strong>Get connect token<\/strong> and copy the code it shows you.<\/li>\n<li>Switch back to your WordPress tab, paste the code, and click <strong>Connect to PallasMark<\/strong>.<\/li>\n<li>Back in PallasMark, click <strong>Connect WooCommerce<\/strong> to finish granting write-back access (lets\nPallasMark write the proof link and approval status back onto your orders).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20actually%20help%20with%20chargebacks%20and%20disputes%3F\"><h3>Does this actually help with chargebacks and disputes?<\/h3><\/dt>\n<dd><p>Yes \u2014 that's the point. PallasMark keeps a timestamped video\/photo record of what was packed and\nshipped for every order, so if a buyer claims \"item not as described,\" \"item never arrived,\" or\nfiles a chargeback, you have evidence to respond with instead of just your word against theirs.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20pallasmark%20account%3F\"><h3>Do I need a PallasMark account?<\/h3><\/dt>\n<dd><p>Yes, but you don't need to create it separately first \u2014 click <strong>Log in to PallasMark<\/strong> on this\nplugin's settings page and you can sign up for a free account (14-day Pro trial, no card required)\nright from there, with this store already attached.<\/p><\/dd>\n<dt id=\"can%20buyers%20see%20and%20approve%20the%20proof%20before%20i%20ship%3F\"><h3>Can buyers see and approve the proof before I ship?<\/h3><\/dt>\n<dd><p>Yes, that's optional and configurable in PallasMark: turn on buyer approval and the order won't\nship until the buyer reviews the video\/photo proof and approves it \u2014 or you can run PallasMark in\nrecord-only mode and just keep proof on file without blocking shipment.<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20anywhere%20else%3F\"><h3>Is my data sent anywhere else?<\/h3><\/dt>\n<dd><p>The plugin only talks to the PallasMark URL you configure (default: <code>app.pallasmark.com<\/code>). It\nsends this site's URL and version numbers automatically (on activate\/deactivate and a throttled\ndaily heartbeat \u2014 no order data), and sends order webhook data only after you explicitly click\n<strong>Connect to PallasMark<\/strong>. See the Description tab above (\"External service disclosure\") and the<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added a lightweight \"install ping\" on activate\/deactivate and a throttled daily heartbeat \u2014\nsends only this site's URL and version numbers to PallasMark (no order\/customer\/product data),\ndisclosed in full under the new == Privacy == section. Lets PallasMark know a store has the\nplugin installed even before an account exists, for support\/setup outreach.<\/li>\n<li>Rewrote the plugin listing (description, tags, FAQ) to better reflect what merchants actually\nsearch for \u2014 chargeback protection, dispute protection, proof of delivery.<\/li>\n<li>Simplified the Installation section into one unified flow (the \"already have an account\" \/\n\"new to PallasMark\" split was redundant since 1.0.7 \u2014 both cases now use the same login screen).<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Changed the \"New here?\" button to go to PallasMark's login screen instead of straight to\nsignup \u2014 merchants who already have an account (adding a second store) were being pushed\ntoward creating a duplicate one; login still offers a \"create account\" link for those who\ntruly have none, with the same store info carried through.<\/li>\n<li>Clarified the connection steps on this page with a numbered 1-2-3 list instead of a single\nparagraph.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added a \"Create a free PallasMark account\" button for merchants who install this plugin\ndirectly from the WordPress.org search results without a PallasMark account yet \u2014 it opens\nsignup with this store's URL already attached, so PallasMark's onboarding can skip straight\nto a connect token instead of a generic setup screen.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Replaced the manual \"copy a plugin-generated secret into PallasMark\" step with a one-time\nconnect token: paste it once, click Connect, and the plugin registers itself with PallasMark\nautomatically. The previous flow had no way to actually get the plugin's secret into PallasMark,\nso webhook signature verification could never succeed \u2014 this fixes that.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Declared WooCommerce as a required plugin dependency.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 7.0 and WooCommerce 10.9.<\/li>\n<li>Added the external-service, data-transfer, Terms of Service, and Privacy Policy disclosure\nrequired for transparent PallasMark SaaS integration.<\/li>\n<li>Fixed translation-domain declarations so the plugin passes WordPress.org Plugin Check.<\/li>\n<li>Updated the plugin homepage to a live PallasMark URL.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Plugin title expanded to \"PallasMark \u2013 Video Proof &amp; Buyer Approval for WooCommerce\" \u2014\nthe plain brand name alone isn't a keyword anyone searches the plugin directory for; the\nfunctional description improves discoverability without stuffing the title with unrelated\nkeywords (search-relevant terms live in Tags\/description instead, per directory guidelines).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed from \"drProof for WooCommerce\" to \"PallasMark for WooCommerce\" (product rebrand).<\/li>\n<li>Fixed the default endpoint, which still pointed at the retired drproof.com domain instead of\napp.pallasmark.com.<\/li>\n<li>Re-registering webhooks now also cleans up old drProof-named webhooks left over from the\nprevious plugin name, not just PallasMark-named ones.<\/li>\n<li>Added translator-ready strings (text domain: <code>pallasmark-for-woocommerce<\/code>).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Stop chargebacks and &quot;item not as described&quot; disputes with pre-shipment video proof and buyer approval for WooCommerce.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349512","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=349512"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pallasmark"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349512"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349512"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349512"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349512"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349512"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}