{"id":395773,"date":"2026-10-30T16:56:32","date_gmt":"2026-10-30T16:56:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/synth-review-integrity\/"},"modified":"2026-10-31T16:41:45","modified_gmt":"2026-10-31T16:41:45","slug":"synth-review-integrity","status":"publish","type":"plugin","link":"https:\/\/fy.wordpress.org\/plugins\/synth-review-integrity\/","author":23543338,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Synth Review Integrity","header_author":"Synth","header_description":"Records how WooCommerce product reviews are created, edited and moderated, matches them with orders on this site, and sends only the resulting facts to your Synth Review Integrity dashboard.","assets_banners_color":"fbfbf9","last_updated":"2026-10-31 16:41:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/synth.locker\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":194,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"synthplatform","date":"2026-10-30 16:56:06","revision":3775720},"0.1.1":{"tag":"0.1.1","author":"synthplatform","date":"2026-10-31 16:41:45","revision":3777139}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3775722,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3775722,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3775722,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3775722,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3775722,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3775722,"resolution":"1","location":"assets","locale":"","width":2880,"height":1760},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3775722,"resolution":"2","location":"assets","locale":"","width":2880,"height":1760},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3775722,"resolution":"3","location":"assets","locale":"","width":2880,"height":1760},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3775722,"resolution":"4","location":"assets","locale":"","width":2880,"height":1760},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3777142,"resolution":"5","location":"assets","locale":"","width":2880,"height":1760}},"screenshots":{"1":"Findings become cases in one queue \u2014 here, a \"verified owner\" mark without a matching purchase on this site.","2":"A case keeps its record: who it is assigned to, notes, the latest recheck and the reason it was resolved.","3":"The review card: every version of a review and the latest result of each check, with a link to the review in your WordPress admin.","4":"Stores &amp; Coverage: see how complete and fresh each shop's data is, and pair another shop with a code.","5":"Settings \u2192 Synth Review Integrity in WordPress: the site key is set and the shop is connected with a pairing code from the dashboard."}},"plugin_section":[],"plugin_tags":[8534,5431,163404,286,14539],"plugin_category":[45],"plugin_contributors":[281531],"plugin_business_model":[],"class_list":["post-395773","plugin","type-plugin","status-publish","hentry","plugin_tags-audit-log","plugin_tags-product-reviews","plugin_tags-review-management","plugin_tags-woocommerce","plugin_tags-woocommerce-reviews","plugin_category-ecommerce","plugin_contributors-synthplatform","plugin_committers-synthplatform"],"banners":{"banner":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/banner-772x250.png?rev=3775722","banner_2x":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/banner-1544x500.png?rev=3775722","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/icon.svg?rev=3775722","icon":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/icon.svg?rev=3775722","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/screenshot-1.png?rev=3775722","caption":"Findings become cases in one queue \u2014 here, a \"verified owner\" mark without a matching purchase on this site."},{"src":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/screenshot-2.png?rev=3775722","caption":"A case keeps its record: who it is assigned to, notes, the latest recheck and the reason it was resolved."},{"src":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/screenshot-3.png?rev=3775722","caption":"The review card: every version of a review and the latest result of each check, with a link to the review in your WordPress admin."},{"src":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/screenshot-4.png?rev=3775722","caption":"Stores &amp; Coverage: see how complete and fresh each shop's data is, and pair another shop with a code."},{"src":"https:\/\/ps.w.org\/synth-review-integrity\/assets\/screenshot-5.png?rev=3777142","caption":"Settings \u2192 Synth Review Integrity in WordPress: the site key is set and the shop is connected with a pairing code from the dashboard."}],"raw_content":"<!--section=description-->\n<p><strong>Find WooCommerce reviews that need attention, and keep a clear record of how they were checked.<\/strong><\/p>\n\n<p>Synth Review Integrity brings review history, order-match results and documented decisions into one dashboard. Use it to investigate unfamiliar review batches, check verified-owner claims and hand cases to the right person.<\/p>\n\n<p>Once connected, it records product reviews and their changes in the background. It never changes, publishes or deletes reviews, orders, coupons or ratings.<\/p>\n\n<p>Findings highlight records to investigate. The plugin does not determine whether a review is fake.<\/p>\n\n<h4>Why Synth Review Integrity exists<\/h4>\n\n<p>When someone questions a review, your shop needs a clear record of what was checked and how the issue was handled.<\/p>\n\n<p>Rules for consumer reviews differ by market. In the EU, shops displaying product reviews must explain whether and how they check their origin. Presenting reviews as coming from buyers or users requires reasonable, proportionate checks. Rules in the US, Australia and New Zealand also address misleading review practices.<\/p>\n\n<p>Synth automates specific checks, records review changes and keeps findings and decisions together. You can export available records to help respond to a complaint or regulatory inquiry. It supports your review-handling process; it does not guarantee legal compliance.<\/p>\n\n<p>Official guidance: <a href=\"https:\/\/eur-lex.europa.eu\/legal-content\/EN\/TXT\/?uri=CELEX%3A52021XC1229%2805%29\">EU<\/a>, <a href=\"https:\/\/www.ftc.gov\/business-guidance\/resources\/consumer-reviews-testimonials-rule-questions-answers\">US<\/a>, <a href=\"https:\/\/www.accc.gov.au\/consumers\/advertising-and-promotions\/online-reviews-for-product-and-services\">Australia<\/a>, <a href=\"https:\/\/www.comcom.govt.nz\/business\/dealing-with-typical-situations\/ensuring-customers-get-a-complete-picture-of-your-online-reviews\/\">New Zealand<\/a>.<\/p>\n\n<h4>How you use it<\/h4>\n\n<p>Your usual WordPress moderation remains in place. Findings become cases in the dashboard. Make corrections in WordPress; when the dashboard sees that the issue is fixed, the case closes as fixed at the source. Checks and decisions stay on record.<\/p>\n\n<h4>What it checks<\/h4>\n\n<ul>\n<li>A batch of reviews whose source is unknown, such as an import \u2014 one case per batch.<\/li>\n<li>A \"verified owner\" mark without a matching purchase on this site.<\/li>\n<li>A review that Customer Reviews for WooCommerce links to an order without the reviewed product.<\/li>\n<li>Exact duplicates of a long review text within your shop.<\/li>\n<li>A review that changed after a check: earlier results become outdated and the review is checked again.<\/li>\n<li>Gaps in what the dashboard knows about your shop \u2014 reported once per period.<\/li>\n<li>A review already identified as an ad by Synth Antispam. Its verdict is reused without checking the text again; this check needs Synth Antispam on the same site.<\/li>\n<\/ul>\n\n<p>Order matching happens on your site, through WooCommerce. The service receives the match result and a pseudonym of the order. Order numbers, order contents and customer details stay on your site.<\/p>\n\n<h4>The dashboard<\/h4>\n\n<ul>\n<li><strong>Stores &amp; Coverage<\/strong> \u2014 see how complete and fresh each shop's data is.<\/li>\n<li><strong>Reviews<\/strong> \u2014 inspect a review's versions and check results, then open it in your WordPress admin.<\/li>\n<li><strong>Cases<\/strong> \u2014 assign, add notes, resolve with a reason, dismiss, reopen and recheck.<\/li>\n<li><strong>Members<\/strong> \u2014 invite people by email as Owner, Operator or Viewer. Sign-in uses a one-time email link; there are no passwords.<\/li>\n<li><strong>Export<\/strong> \u2014 download a ZIP of reviews, checks and history, with a manifest of checksums.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<ul>\n<li>By default, only facts and keyed one-way digests leave the site. Reviewer names, email addresses, websites and IP addresses never do.<\/li>\n<li>Review text is sent only if the workspace owner enables content consent in the dashboard.<\/li>\n<li>Connecting a shop excludes its domain from Synth Antispam training copies, including Antispam checks on that site. Disconnecting does not reverse this.<\/li>\n<li>The plugin sends nothing while a visitor is submitting a review.<\/li>\n<\/ul>\n\n<p>The \"External services\" section below lists what is sent, when, and how long it is kept.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li><strong>WooCommerce.<\/strong> Without it, the plugin records and sends nothing.<\/li>\n<li><strong>A workspace at reviews.synth.locker.<\/strong> Creating one takes an email address and costs nothing. What it includes \u2014 how many shops, continuous tracking of new reviews and rechecks \u2014 is shown in the dashboard.<\/li>\n<li><strong>Synth Antispam is optional.<\/strong> It is recommended for the ad-review check and is not required for the other checks.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin needs the Synth Review Integrity service (<code>wp-api.synth.locker<\/code>, operated by LightApps O\u00dc, Estonia). Once an administrator activates the plugin, gets a site key and connects the shop to the Synth Review Integrity dashboard with a pairing code, the plugin records how WooCommerce product reviews are created, edited and moderated, reads WooCommerce orders locally on this site to check whether a reviewer bought the product and, when Customer Reviews for WooCommerce links a review to an order, whether that order contains the reviewed product, and sends only the resulting facts to the service. The text of a review is sent only if the shop owner has enabled content consent in the Synth Review Integrity dashboard, and only for review versions the plugin records after it was enabled (a new or changed review, or a scan the dashboard asks for); turning the consent off stops new transfers. Orders are read on this site only; what leaves it is the fact of a match and a pseudonym of the order \u2014 and, for a linked order, only whether it contains the product, never its number. Until the shop is connected, the plugin sends nothing except the two requests an administrator makes by pressing a button on its screen \u2014 Get a site key and Connect \u2014 and nothing is ever sent while a visitor is submitting a review: sending happens later, in the background.<\/p>\n\n<p><strong>Requests the plugin makes<\/strong><\/p>\n\n<p>Every request below carries the plugin version and WordPress's own User-Agent header; all except <code>POST \/v1\/register<\/code> also carry the site key and, in a separate header, the site address. <code>POST \/v1\/register<\/code> carries instead the plugin's name (<code>X-Synth-Product: review-integrity<\/code>), so the service can tell this plugin's site keys from Synth Antispam's \u2014 nothing about the site.<\/p>\n\n<ul>\n<li><code>POST \/v1\/register<\/code> \u2014 only when an administrator presses Get a site key on the plugin's screen; asks the service for this plugin's own site key with an empty body \u2014 no site key and no site address header. The key is tied to this site's address by the first request made with it (<code>connect<\/code>).<\/li>\n<li><code>POST \/v1\/integrity\/connect<\/code> \u2014 only when an administrator presses Connect with a one-time pairing code from the dashboard; sends the code, a random identifier of this installation and the capability snapshot.<\/li>\n<li><code>POST \/v1\/integrity\/events<\/code> \u2014 in the background while the shop is connected; sends up to 50 review events at a time.<\/li>\n<li><code>POST \/v1\/integrity\/status<\/code> \u2014 in the background, at most once every 15 minutes; sends the capability snapshot and the state of the local queue, and receives scan jobs.<\/li>\n<li><code>POST \/v1\/integrity\/scan\/page<\/code> \u2014 in the background, only while the dashboard has asked for a scan or a recheck; sends review snapshots page by page.<\/li>\n<li><code>POST \/v1\/integrity\/erasure<\/code> \u2014 in the background, only after the shop owner erases a person's personal data with the WordPress privacy tools (Tools \u2192 Erase Personal Data); sends the numbers of that person's product reviews on this site, found here by the email address, and a random request id \u2014 never the email address itself.<\/li>\n<\/ul>\n\n<p><strong>Exactly what is sent, field by field.<\/strong> The complete list, matching the plugin's request builders:<\/p>\n\n<ul>\n<li><code>request.connect.pairing_code<\/code> \u2014 the one-time pairing code.<\/li>\n<li><code>request.connect.store_instance_id<\/code> \u2014 a random identifier of this installation.<\/li>\n<li><code>request.connect.capabilities<\/code> \u2014 the capability snapshot (fields below).<\/li>\n<li><code>request.events.store_instance_id<\/code> \u2014 the installation identifier.<\/li>\n<li><code>request.events.events<\/code> \u2014 up to 50 review events (fields below).<\/li>\n<li><code>request.status.store_instance_id<\/code> \u2014 the installation identifier.<\/li>\n<li><code>request.status.capabilities<\/code> \u2014 the capability snapshot (fields below).<\/li>\n<li><code>request.status.outbox<\/code> \u2014 the state of the local queue (fields below).<\/li>\n<li><code>request.status.active_job_id<\/code> \u2014 the scan job in progress, if any.<\/li>\n<li><code>request.scan_page.store_instance_id<\/code> \u2014 the installation identifier.<\/li>\n<li><code>request.scan_page.job_id<\/code> \u2014 the scan job the page belongs to.<\/li>\n<li><code>request.scan_page.after_cursor<\/code> \u2014 the last review number of the previous page.<\/li>\n<li><code>request.scan_page.next_cursor<\/code> \u2014 the last review number of this page.<\/li>\n<li><code>request.scan_page.done<\/code> \u2014 whether the job is finished.<\/li>\n<li><code>request.scan_page.events<\/code> \u2014 up to 50 review snapshots (fields below).<\/li>\n<li><code>request.erasure.store_instance_id<\/code> \u2014 the installation identifier.<\/li>\n<li><code>request.erasure.request_id<\/code> \u2014 a random identifier of the erasure request, so it is never recorded twice.<\/li>\n<li><code>request.erasure.review_refs<\/code> \u2014 the numbers on this site of up to 100 product reviews of the person; never the person's email address.<\/li>\n<li><code>event.event_id<\/code> \u2014 an identifier of the event, so it is never recorded twice.<\/li>\n<li><code>event.store_instance_id<\/code> \u2014 the installation identifier.<\/li>\n<li><code>event.sequence<\/code> \u2014 the order in which this installation recorded its events.<\/li>\n<li><code>event.kind<\/code> \u2014 insert, edit, status, delete or observed.<\/li>\n<li><code>event.capture<\/code> \u2014 whether the change was seen by a hook, the daily reconciliation or a scan.<\/li>\n<li><code>event.scan_job_id<\/code> \u2014 the scan job, for a scan snapshot.<\/li>\n<li><code>event.source_system<\/code> \u2014 always <code>woocommerce<\/code>.<\/li>\n<li><code>event.review_ref<\/code> \u2014 the review's number on this site.<\/li>\n<li><code>event.product_ref<\/code> \u2014 the reviewed product's number on this site.<\/li>\n<li><code>event.submission_channel<\/code> \u2014 product page, admin, REST API, import or unknown.<\/li>\n<li><code>event.channel_basis<\/code> \u2014 what that channel was determined from.<\/li>\n<li><code>event.observed_at<\/code> \u2014 when the plugin saw the change.<\/li>\n<li><code>event.source_created_at<\/code> \u2014 the review's creation date as stored.<\/li>\n<li><code>event.source_occurred_at<\/code> \u2014 when the change happened, where WordPress stores it.<\/li>\n<li><code>event.source_updated_at<\/code> \u2014 always empty for WooCommerce.<\/li>\n<li><code>event.status<\/code> \u2014 approved, held, spam, trash, deleted or absent.<\/li>\n<li><code>event.prior_status<\/code> \u2014 the status before a status change.<\/li>\n<li><code>event.rating<\/code> \u2014 the star rating.<\/li>\n<li><code>event.content_digest<\/code> \u2014 a keyed one-way digest of the review text; without content consent the text never leaves the site.<\/li>\n<li><code>event.version_digest<\/code> \u2014 a keyed one-way digest of text, rating and status together.<\/li>\n<li><code>event.digest_scheme<\/code> \u2014 how the text was normalised before digesting.<\/li>\n<li><code>event.normalized_length<\/code> \u2014 the length of the review text.<\/li>\n<li><code>event.text<\/code> \u2014 the review text, only while the shop owner has enabled content consent in the Synth Review Integrity dashboard and only for versions captured after it was enabled; at most 8 KB; never with a deletion or a status change.<\/li>\n<li><code>event.purchase.state<\/code> \u2014 whether a matching order was found on this site.<\/li>\n<li><code>event.purchase.method<\/code> \u2014 whether the match used the customer account or the order's email address.<\/li>\n<li><code>event.purchase.product_match<\/code> \u2014 the product itself or one of its variations.<\/li>\n<li><code>event.purchase.order_ref<\/code> \u2014 a keyed pseudonym of the order, never the order number.<\/li>\n<li><code>event.purchase.order_status_class<\/code> \u2014 completed, in progress, refunded, cancelled, failed or other.<\/li>\n<li><code>event.purchase.refunded<\/code> \u2014 whether the order was refunded.<\/li>\n<li><code>event.purchase.orders_examined<\/code> \u2014 how many of that customer's orders were examined.<\/li>\n<li><code>event.purchase.orders_limit<\/code> \u2014 the most orders examined per customer.<\/li>\n<li><code>event.provider_facts.verified<\/code> \u2014 WooCommerce's own \"verified owner\" mark, as stored.<\/li>\n<li><code>event.provider_facts.verified_source<\/code> \u2014 where that mark was read from.<\/li>\n<li><code>event.provider_facts.ivole_order_kind<\/code> \u2014 which order link Customer Reviews for WooCommerce stored, if any \u2014 never the order number.<\/li>\n<li><code>event.antispam_verdict.state<\/code> \u2014 whether Synth Antispam already judged the review.<\/li>\n<li><code>event.antispam_verdict.is_spam<\/code> \u2014 its verdict.<\/li>\n<li><code>event.antispam_verdict.category<\/code> \u2014 its category.<\/li>\n<li><code>event.antispam_verdict.outcome<\/code> \u2014 what was done with the review.<\/li>\n<li><code>event.order_link.state<\/code> \u2014 whether the order Customer Reviews for WooCommerce links the review to was found on this site and contains the reviewed product; checked on this site, never the order number or its contents.<\/li>\n<li><code>event.order_link.kind<\/code> \u2014 which order link of Customer Reviews for WooCommerce was checked, if any.<\/li>\n<li><code>event.order_link.product_match<\/code> \u2014 the product itself or one of its variations.<\/li>\n<li><code>capabilities.captured_at<\/code> \u2014 when the snapshot was taken.<\/li>\n<li><code>capabilities.wp_version<\/code> \u2014 the WordPress version.<\/li>\n<li><code>capabilities.php_version<\/code> \u2014 the PHP version.<\/li>\n<li><code>capabilities.wc_version<\/code> \u2014 the WooCommerce version.<\/li>\n<li><code>capabilities.hpos<\/code> \u2014 whether WooCommerce stores orders in its own tables.<\/li>\n<li><code>capabilities.action_scheduler_version<\/code> \u2014 the Action Scheduler version.<\/li>\n<li><code>capabilities.wp_cron_disabled<\/code> \u2014 whether WP-Cron is switched off.<\/li>\n<li><code>capabilities.digest_scheme<\/code> \u2014 how review text is normalised on this host.<\/li>\n<li><code>capabilities.cusrev_version<\/code> \u2014 the Customer Reviews for WooCommerce version, if active.<\/li>\n<li><code>capabilities.product_comments_non_review_type<\/code> \u2014 how many comments on products are not reviews and are therefore not recorded.<\/li>\n<li><code>outbox.pending<\/code> \u2014 how many events wait to be sent.<\/li>\n<li><code>outbox.oldest_pending_age_s<\/code> \u2014 how long the oldest of them has waited.<\/li>\n<li><code>outbox.dropped_total<\/code> \u2014 how many were deleted unsent after 7 days.<\/li>\n<li><code>outbox.last_reconciliation_at<\/code> \u2014 when the last daily reconciliation for the current connection finished (empty right after connecting, until the first one does).<\/li>\n<li><code>outbox.paused_reason<\/code> \u2014 why sending is paused, if it is.<\/li>\n<\/ul>\n\n<p><strong>What is never sent:<\/strong> reviewer name, reviewer email address, reviewer website, reviewer IP address, order number, order contents, amounts, addresses.<\/p>\n\n<p><strong>Sent only with the shop owner's consent:<\/strong> review text \u2014 only while the shop owner has enabled content consent in the Synth Review Integrity dashboard, and only for versions captured after it was enabled.<\/p>\n\n<p><strong>Retention on this site:<\/strong> events wait in a local table and are deleted 7 days after they were recorded, sent or not; the number deleted unsent is reported (<code>outbox.dropped_total<\/code>) so the gap is visible. An erasure request is the exception: it is kept until it is sent \u2014 while the shop is disconnected it waits for the shop to be reconnected \u2014 and is then deleted like the rest. Uninstalling the plugin removes the table and the per-site secret behind every pseudonym and digest, after which earlier pseudonyms can no longer be linked to anything on this site.<\/p>\n\n<p><strong>Training:<\/strong> nothing this plugin sends is used to train models. Connecting the shop also excludes its domain from the copies the Synth Antispam service keeps for training: from then on, checks made for that domain \u2014 including those of Synth Antispam on this site \u2014 are not kept. Disconnecting the shop does not undo this. Copies taken before the shop was connected are deleted on request: write to support@synth.locker with the site address.<\/p>\n\n<ul>\n<li>Terms of Use: https:\/\/synth.locker\/assets\/legal\/wordpress-terms-of-use.html<\/li>\n<li>Privacy Policy: https:\/\/synth.locker\/assets\/legal\/wordpress-privacy-policy.html<\/li>\n<\/ul>\n\n<h4>Every address that appears in the source<\/h4>\n\n<p>A search of this plugin's files finds these addresses and no others:<\/p>\n\n<ul>\n<li><code>wp-api.synth.locker<\/code> \u2014 the Synth Review Integrity service above; changeable only with the <code>SYNTH_RI_API_BASE<\/code> constant in <code>wp-config.php<\/code> or the <code>synth_ri_settings<\/code> filter. <strong>The only address this plugin sends a request to.<\/strong><\/li>\n<li><code>reviews.synth.locker<\/code> \u2014 the Synth Review Integrity dashboard, where pairing codes are issued: a link on the plugin's settings screen. Nothing is sent to it.<\/li>\n<li><code>wordpress.org<\/code> \u2014 a link to Synth Antispam on the plugin's settings screen, shown while Synth Antispam is not installed, and the support forum in the translation template. Nothing is sent to it.<\/li>\n<li><code>synth.locker<\/code>, <code>www.gnu.org<\/code> and <code>fsf.org<\/code> \u2014 links (the plugin's home page, the terms and the privacy policy above, the GPL licence). Nothing is sent to them.<\/li>\n<li><code>support@synth.locker<\/code> \u2014 the email address for deletion requests.<\/li>\n<li>Not addresses: the translation-template placeholder <code>LL@li.org<\/code>; <code>localhost<\/code>, <code>127.0.0.1<\/code> and the <code>.test<\/code>, <code>.local<\/code> and <code>.localhost<\/code> endings, by which the plugin recognises a development address of the service and allows it without HTTPS; and <code>a@b.test<\/code>, an example inside a code comment. None of them is contacted.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install from <strong>Plugins \u2192 Add New<\/strong> (search \"Synth Review Integrity\") and activate. WooCommerce must be active.<\/li>\n<li>Go to <strong>Settings \u2192 Synth Review Integrity<\/strong> and press <strong>Get a site key<\/strong>, or paste a key you already have.<\/li>\n<li>Open the Synth Review Integrity dashboard at https:\/\/reviews.synth.locker\/, enter your email address and press <strong>Email me a link<\/strong>. The link in the email opens a page with a <strong>Create workspace<\/strong> button; the new workspace comes with a first shop waiting to be connected.<\/li>\n<li>In the shop's row press <strong>New pairing code<\/strong> (the workspace owner can). The code works once and expires after 30 minutes.<\/li>\n<li>Back in <strong>Settings \u2192 Synth Review Integrity<\/strong>, paste the code and press <strong>Connect<\/strong>.<\/li>\n<li>To check the reviews the shop already has, press <strong>Run audit<\/strong> in the shop's row of the dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%2C%20publish%20or%20delete%20my%20reviews%3F\"><h3>Does it change, publish or delete my reviews?<\/h3><\/dt>\n<dd><p>No. It reads reviews, orders, coupons and ratings and never changes them. You fix a review in WordPress as usual; the dashboard then sees the fix.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20the%20review%20form%3F\"><h3>Does it slow down the review form?<\/h3><\/dt>\n<dd><p>No. While a visitor submits a review, the plugin only writes a row to a table on this site. Sending happens later, in the background.<\/p><\/dd>\n<dt id=\"is%20the%20text%20of%20the%20reviews%20sent%3F\"><h3>Is the text of the reviews sent?<\/h3><\/dt>\n<dd><p>Only if the workspace owner turns on content consent in the dashboard, and only for reviews recorded after that. Without consent the service receives a keyed one-way digest of the text: enough to find exact duplicates, but it cannot be turned back into the text.<\/p><\/dd>\n<dt id=\"do%20i%20need%20synth%20antispam%3F\"><h3>Do I need Synth Antispam?<\/h3><\/dt>\n<dd><p>No. Synth Review Integrity works on its own. With Synth Antispam on the same site, its verdict is used to flag reviews that are ads; without it, that one check is not made.<\/p><\/dd>\n<dt id=\"does%20synth%20review%20integrity%20decide%20whether%20a%20review%20is%20fake%3F\"><h3>Does Synth Review Integrity decide whether a review is fake?<\/h3><\/dt>\n<dd><p>No. It shows facts \u2014 where a review came from, whether it matches an order, whether it changed \u2014 and the checks that call for attention. The decision is yours, and every action in the dashboard is recorded.<\/p><\/dd>\n<dt id=\"which%20reviews%20does%20it%20cover%3F\"><h3>Which reviews does it cover?<\/h3><\/dt>\n<dd><p>WooCommerce product reviews, including those collected by Customer Reviews for WooCommerce. Comments on posts and other kinds of comments are not recorded.<\/p><\/dd>\n<dt id=\"how%20do%20i%20erase%20a%20reviewer%27s%20data%3F\"><h3>How do I erase a reviewer's data?<\/h3><\/dt>\n<dd><p>Use <strong>Tools \u2192 Erase Personal Data<\/strong> in WordPress with the reviewer's email address. The plugin finds that person's product reviews on this site and asks the service to erase them; only the numbers of the reviews are sent, never the email address. If the shop is disconnected at that moment, the request waits on this site and is sent as soon as the shop is connected again. The dashboard has no erase button; if you cannot reconnect the shop, write to support@synth.locker with the review numbers.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20disconnect%20the%20shop%20or%20uninstall%20the%20plugin%3F\"><h3>What happens when I disconnect the shop or uninstall the plugin?<\/h3><\/dt>\n<dd><p>The workspace owner disconnects a shop in the dashboard. Its history stays there, and a new pairing code connects it again. Disconnecting does not lift the exclusion of the shop's domain from the training copies of Synth Antispam. Uninstalling the plugin deletes its table and the per-site secret behind every pseudonym on this site; the site key is kept, so reinstalling does not need a new one.<\/p><\/dd>\n<dt id=\"who%20sees%20the%20data%20in%20the%20dashboard%3F\"><h3>Who sees the data in the dashboard?<\/h3><\/dt>\n<dd><p>Members of your workspace, each with one of three roles: Owner, Operator or Viewer. Review text, when it is sent, is shown only to Owners and Operators.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Settings screen guides through the three steps (site key, pairing code, audit), shows the audit's progress and explains the sending state in plain words.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Audit WooCommerce product reviews: check order matches, track review changes and keep a record of checks and decisions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=395773"}],"author":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/synthplatform"}],"wp:attachment":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395773"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395773"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395773"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395773"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395773"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}