{"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-09-06T00:57:08","modified_gmt":"2026-09-06T00:57:08","slug":"pallasmark-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/bho.wordpress.org\/plugins\/pallasmark-for-woocommerce\/","author":23543168,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.13","stable_tag":"1.0.13","tested":"7.0.6","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-09-06 00:57:08","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":349,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"pallasmark","date":"2026-09-04 23:13:45","revision":3681900},"1.0.11":{"tag":"1.0.11","author":"pallasmark","date":"2026-09-04 23:48:22","revision":3681922},"1.0.12":{"tag":"1.0.12","author":"pallasmark","date":"2026-09-05 21:23:33","revision":3682817},"1.0.13":{"tag":"1.0.13","author":"pallasmark","date":"2026-09-06 00:57:08","revision":3682900},"1.0.4":{"tag":"1.0.4","author":"pallasmark","date":"2026-08-06 15:23:32","revision":3636793},"1.0.5":{"tag":"1.0.5","author":"pallasmark","date":"2026-08-06 16:04:45","revision":3636830},"1.0.6":{"tag":"1.0.6","author":"pallasmark","date":"2026-08-06 22:28:31","revision":3637080},"1.0.7":{"tag":"1.0.7","author":"pallasmark","date":"2026-08-07 15:36:26","revision":3638031},"1.0.8":{"tag":"1.0.8","author":"pallasmark","date":"2026-08-07 15:36:26","revision":3638031},"1.0.9":{"tag":"1.0.9","author":"pallasmark","date":"2026-08-18 22:54:54","revision":3653625}},"upgrade_notice":{"1.0.13":"<p>Adds private administrator evidence access, native GTIN lookup and verified connection permissions.\nDeactivation disconnects PallasMark and removes its local webhooks and API key; evidence is retained.<\/p>","1.0.12":"<p>Adds exact order lookup for barcode, SKU, tracking, and order-number scans, including HPOS support.<\/p>","1.0.11":"<p>Updates the WooCommerce listing copy. The authenticated local lookup index was added in 1.0.12.<\/p>","1.0.10":"<p>Connect tokens now expire after 10 minutes and can be used only once.<\/p>","1.0.9":"<p>Adds native WooCommerce order and customer-account visibility for proof and return-evidence links.<\/p>","1.0.8":"<p>Adds the automatic install ping containing only the store URL and version numbers.<\/p>","1.0.5":"<p>Connecting now uses a one-time token from PallasMark \u2192 Integrations.<\/p>","1.0.4":"<p>Declares the required WooCommerce dependency for plugin activation checks.<\/p>","1.0.3":"<p>Compatibility and directory-disclosure update for WordPress 7.0 and WooCommerce 10.9.<\/p>","1.0.1":"<p>Fixes the retired default endpoint and cleans up old webhook registrations.<\/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.10","1.0.11","1.0.12","1.0.13","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"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":"Legacy settings-page mockup before webhook registration: a PallasMark endpoint field and\n<strong>Register webhooks<\/strong> button are shown. A replacement capture of the current connect-token flow\nis pending.","2":"Legacy post-registration mockup showing a sample webhook secret and <strong>Connect WooCommerce<\/strong>\ninstructions. It reflects the retired secret copy flow; a replacement current-flow capture is\npending."}},"plugin_section":[],"plugin_tags":[274649,250643,274647,279332,286],"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-order-proof","plugin_tags-proof-of-delivery","plugin_tags-woocommerce","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":"Legacy settings-page mockup before webhook registration: a PallasMark endpoint field and\n<strong>Register webhooks<\/strong> button are shown. A replacement capture of the current connect-token flow\nis pending."},{"src":"https:\/\/ps.w.org\/pallasmark-for-woocommerce\/assets\/screenshot-2.png?rev=3636793","caption":"Legacy post-registration mockup showing a sample webhook secret and <strong>Connect WooCommerce<\/strong>\ninstructions. It reflects the retired secret copy flow; a replacement current-flow capture is\npending."}],"raw_content":"<!--section=description-->\n<p>PallasMark helps WooCommerce teams document packing with photo or video evidence. An authorized\nstaff member manually captures proof in the PallasMark workflow while an order is being packed,\nthen the merchant can optionally share a completed proof with the buyer.<\/p>\n\n<p>The evidence can help a merchant respond to an \"item not as described\" claim, delivery question,\nreturn, or chargeback. It does not guarantee a dispute outcome, delivery, or recovery of funds.\nPallasMark does not automatically capture every order and does not make shipping, refund, or\nchargeback decisions for the store.<\/p>\n\n<p>This plugin connects the WooCommerce store to PallasMark with a one-time connect token. After the\nmerchant clicks <strong>Connect to PallasMark<\/strong>, it registers the order webhooks that send order activity\nto the configured PallasMark service. The plugin also provides the WooCommerce-side settings and\nevidence views; capture and optional buyer sharing happen in the PallasMark workflow.<\/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>Connects the store with a one-time token and registers <code>order.created<\/code> \/ <code>order.updated<\/code>\nwebhooks through WooCommerce's modern REST API (<code>wp_api_v3<\/code>).<\/li>\n<li>Re-registers only PallasMark\/drProof webhooks, replacing stale copies instead of creating\nduplicates.<\/li>\n<li>Adds a read-only <strong>PallasMark evidence<\/strong> panel to classic and HPOS WooCommerce order screens.<\/li>\n<li>Shows proof and return-evidence status and links on customer order views when PallasMark has\nwritten a buyer-visible link; stores can also use <code>[pallasmark_order_evidence]<\/code>.<\/li>\n<li>Supports authenticated exact lookup for order numbers, tracking values, product SKUs, and\nbarcodes, with a bounded local alias index and SHA-256 lookup hashes.<\/li>\n<li>Shows local webhook health and a nonce-protected re-register action.<\/li>\n<\/ul>\n\n<p><strong>What this plugin does not do:<\/strong> it does not capture media automatically, guarantee a successful\nchargeback or dispute response, stop an order from shipping, issue a refund, or decide whether a\nbuyer is right. Any buyer decision or shipment gate depends on the configured PallasMark workflow\nand the merchant's process. Sharing evidence with a buyer is an optional merchant action.<\/p>\n\n<p>After connecting the store, click <strong>Connect WooCommerce<\/strong> inside PallasMark (Integrations) to grant\nthe read\/write REST keys needed for PallasMark to write proof status and links back onto orders.\nThe webhook connection lets order data flow in; the REST keys enable write-back.<\/p>\n\n<p><strong>External service disclosure:<\/strong> PallasMark is a hosted Software as a Service product. This plugin\ntalks to it in two distinct ways:<\/p>\n\n<ol>\n<li><em>Support telemetry (optional).<\/em> It is off by default. If a store manager opts in, at most once\nevery 24 hours the plugin sends this site's public URL and plugin\/WordPress\/WooCommerce version\nnumbers. It sends no order, customer, or product data and can be turned off at any time.<\/li>\n<li><em>Store connection (explicit, your click).<\/em> After you paste a connect token and click\n<strong>Connect to PallasMark<\/strong>, the plugin exchanges the token and store URL for a webhook secret and\nconfigures WooCommerce order webhooks. Those webhook payloads can include customer, billing,\nshipping, product, and order-status data for real order activity.<\/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 the PallasMark URL configured on its settings page (the default is\n    https:\/\/app.pallasmark.com) in the situations described above:<\/p>\n\n<ul>\n<li><strong>Only after optional support telemetry is enabled:<\/strong> a throttled daily heartbeat containing this\nsite's URL (<code>home_url()<\/code>) and plugin\/WordPress\/WooCommerce version numbers only.<\/li>\n<li><strong>After you click \"Connect to PallasMark\":<\/strong> the one-time token exchange and, while connected,\nWooCommerce order webhook payloads that can include order\/customer data.<\/li>\n<li><strong>When PallasMark searches after a scan:<\/strong> the scanned identifier is sent in an authenticated\nrequest body. The plugin's local lookup table stores only its SHA-256 hash; the identifier is\nnot put in request URLs or stored as plain text by the index.<\/li>\n<\/ul>\n\n<p>Deactivation, uninstall, and the explicit Disconnect action remove this plugin's WooCommerce\nwebhooks and local connection credentials, stopping new order delivery. Existing evidence in\nPallasMark is retained. Uninstall also removes the optional telemetry preference.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install this plugin from the WordPress plugins screen or upload it to\n   \/wp-content\/plugins\/pallasmark-for-woocommerce.<\/li>\n<li>Activate it and open <strong>WooCommerce \u2192 PallasMark<\/strong>.<\/li>\n<li>Click <strong>Log in to PallasMark<\/strong>. If you do not have an account, create one from that login flow.<\/li>\n<li>In PallasMark, generate and copy the one-time connect token.<\/li>\n<li>Return to WordPress, paste the token, and click <strong>Connect to PallasMark<\/strong>.<\/li>\n<li>In PallasMark \u2192 Integrations, click <strong>Connect WooCommerce<\/strong> to enable proof status and link\nwrite-back.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20prevent%20chargebacks%20or%20disputes%3F\"><h3>Does this prevent chargebacks or disputes?<\/h3><\/dt>\n<dd><p>No tool can guarantee that outcome. PallasMark gives an authorized packing operator a place to\nmanually capture evidence and gives the merchant evidence to consider when responding to a claim.<\/p><\/dd>\n<dt id=\"does%20pallasmark%20record%20video%20for%20every%20order%20automatically%3F\"><h3>Does PallasMark record video for every order automatically?<\/h3><\/dt>\n<dd><p>No. An authorized staff member manually starts a photo or video capture in the PallasMark workflow.\nThe merchant decides which completed evidence to keep and whether to share it.<\/p><\/dd>\n<dt id=\"can%20i%20share%20proof%20with%20a%20buyer%3F\"><h3>Can I share proof with a buyer?<\/h3><\/dt>\n<dd><p>Yes, when the configured PallasMark workflow allows it. Sharing is a separate, optional merchant\naction for a selected completed proof. The WooCommerce plugin displays a buyer-visible link only\nwhen PallasMark has written one for that order.<\/p><\/dd>\n<dt id=\"will%20an%20order%20stop%20shipping%20until%20the%20buyer%20approves%3F\"><h3>Will an order stop shipping until the buyer approves?<\/h3><\/dt>\n<dd><p>The plugin does not automatically stop shipping. Buyer decisions and any shipment gate are\ncontrolled by the PallasMark workflow configuration and the merchant's fulfillment process.<\/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. Click <strong>Log in to PallasMark<\/strong> from the plugin settings page; an account can be created from\nthat same flow.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20send%3F\"><h3>What data does the plugin send?<\/h3><\/dt>\n<dd><p>Optional support telemetry contains only the store URL and version numbers and is off by default.\nOrder\/customer data is sent through WooCommerce webhooks only after you explicitly connect the\nstore. See the Privacy section above for the full summary.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>The plugin removes its PallasMark\/drProof WooCommerce webhooks and local connection credentials, so\nnew order data stops. It does not erase existing evidence stored in PallasMark.<\/p><\/dd>\n<dt id=\"i%20previously%20used%20the%20%22drproof%22%20plugin%20%E2%80%94%20do%20i%20need%20to%20do%20anything%3F\"><h3>I previously used the \"drProof\" plugin \u2014 do I need to do anything?<\/h3><\/dt>\n<dd><p>Re-register PallasMark webhooks from the settings page. This version removes leftover webhooks from\nthe old plugin name and endpoint before creating the current ones.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Shows completed packing evidence in the WooCommerce administrator order panel before optional\nbuyer sharing, using an authenticated PallasMark evidence\/history link.<\/li>\n<li>Indexes native product and variation GTIN\/SKU\/barcode values, refreshes affected orders after\nproduct edits, and reports progressive backfill coverage for large order histories.<\/li>\n<li>Adds a side-effect-free authenticated write-permission probe for connection verification.<\/li>\n<li>Restricts PallasMark endpoints to the trusted HTTPS service origin, disables redirects for\ncredential-bearing requests, makes support telemetry opt-in, and removes local webhooks and\nrevokes the PallasMark Woo API key on disconnect, deactivation, or uninstall.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Adds exact barcode, SKU, tracking, and order-number lookup through the authenticated PallasMark\nendpoint, with bounded backfill for older WooCommerce orders and no identifier in request URLs.<\/li>\n<li>Keeps the local alias index current when orders change or are deleted and supports HPOS order\nobjects without requiring legacy post tables.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Reworks the listing copy around WooCommerce packing proof, order evidence, buyer approval, return\nevidence, and chargeback-dispute documentation.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Clarifies that connect tokens expire after 10 minutes and can be used only once.<\/li>\n<li>Adds a specific message when a WooCommerce store is already connected to another PallasMark\naccount.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Adds a read-only PallasMark evidence panel to classic and HPOS WooCommerce order screens.<\/li>\n<li>Adds proof and return-evidence status\/links to customer order views and the order-received screen,\nwith the <code>[pallasmark_order_evidence]<\/code> shortcode for custom placement.<\/li>\n<li>Adds ownership and order-key checks for customer-facing evidence links, webhook health visibility,\nand a nonce-protected idempotent re-register action.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Adds a lightweight install ping on activation, deactivation, and a throttled daily heartbeat,\nsending only the site's URL and version numbers; the data transfer is disclosed in Privacy.<\/li>\n<li>Simplifies the installation flow and updates the listing copy for WooCommerce search terms.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Sends the \"New here?\" path through the PallasMark login screen so existing users do not create a\nduplicate account; login still offers account creation for new users.<\/li>\n<li>Clarifies the connection steps with a numbered flow.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Adds a path for a new WordPress.org visitor to create a free PallasMark account with this store\nURL attached.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Replaces the unusable plugin-generated-secret flow with a one-time PallasMark connect token.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Declares WooCommerce as a required plugin dependency.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Confirms compatibility with WordPress 7.0 and WooCommerce 10.9.<\/li>\n<li>Adds external-service, data-transfer, Terms of Service, and Privacy Policy disclosure.<\/li>\n<li>Fixes translation-domain declarations and updates the plugin homepage to PallasMark.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Expands the plugin title to include the WooCommerce video-proof and buyer-approval use case.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renames the plugin from drProof for WooCommerce to PallasMark for WooCommerce.<\/li>\n<li>Fixes the default endpoint and cleans up old drProof webhook names during re-registration.<\/li>\n<li>Adds translator-ready strings.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Manually capture packing proof in PallasMark and optionally share selected evidence with WooCommerce buyers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=349512"}],"author":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pallasmark"}],"wp:attachment":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349512"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349512"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349512"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349512"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349512"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}