{"id":387817,"date":"2026-10-17T14:57:21","date_gmt":"2026-10-17T14:57:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/carthacker-trust-badges-seals\/"},"modified":"2026-10-17T14:56:56","modified_gmt":"2026-10-17T14:56:56","slug":"carthacker-trust-badges-seals","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/carthacker-trust-badges-seals\/","author":23583182,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"CartHacker Trust Badges & Seals","header_author":"CartHacker","header_description":"Shows trust badges anywhere on your WordPress site with a block or a shortcode, and under Add to cart on WooCommerce, and counts how many visitors saw them. Works with a free CartHacker account.","assets_banners_color":"cdd4dd","last_updated":"2026-10-17 14:56:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/carthacker.com\/plugins\/trust-badges\/wordpress\/","header_author_uri":"https:\/\/carthacker.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":65,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"carthacker","date":"2026-10-17 14:56:56","revision":3752043}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3752043,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3752043,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3752043,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3752043,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3752043,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"carthacker\/trust-badges":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carthacker\/trust-badges","version":"1.0.0","title":"Trust badges","category":"widgets","icon":"shield","description":"Shows one of your CartHacker trust badge groups where you place this block.","keywords":["trust","badges","seals","guarantee"],"textdomain":"carthacker-trust-badges-seals","attributes":{"group":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"]},"editorScript":"carthacker-tbs-block","editorStyle":"carthacker-tbs-block-editor"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3752043,"resolution":"1","location":"assets","locale":"","width":2400,"height":1500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3752043,"resolution":"2","location":"assets","locale":"","width":2400,"height":1500},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3752043,"resolution":"3","location":"assets","locale":"","width":2400,"height":1500},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3752043,"resolution":"4","location":"assets","locale":"","width":2400,"height":1500},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3752043,"resolution":"5","location":"assets","locale":"","width":2400,"height":1500}},"screenshots":{"1":"The Trust badges block places a badge group anywhere on your WordPress site.","2":"Trust badges right under the Add to cart button of a WooCommerce product page.","3":"Statistics in WordPress admin: page views with badges, how many shoppers saw them and how each badge group performs.","4":"With CartHacker Premium, every badge switches to the language of the page, across 30 languages.","5":"Trust badges sized for phones, on a small screen too."}},"plugin_section":[],"plugin_tags":[3175,984,242305,287268,286],"plugin_category":[45,55],"plugin_contributors":[286721],"plugin_business_model":[],"class_list":["post-387817","plugin","type-plugin","status-publish","hentry","plugin_tags-add-to-cart","plugin_tags-conversion","plugin_tags-trust-badges","plugin_tags-trust-seals","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-carthacker","plugin_committers-carthacker"],"banners":{"banner":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/banner-772x250.png?rev=3752043","banner_2x":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/banner-1544x500.png?rev=3752043","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/icon.svg?rev=3752043","icon":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/icon.svg?rev=3752043","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/screenshot-1.png?rev=3752043","caption":"The Trust badges block places a badge group anywhere on your WordPress site."},{"src":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/screenshot-2.png?rev=3752043","caption":"Trust badges right under the Add to cart button of a WooCommerce product page."},{"src":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/screenshot-3.png?rev=3752043","caption":"Statistics in WordPress admin: page views with badges, how many shoppers saw them and how each badge group performs."},{"src":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/screenshot-4.png?rev=3752043","caption":"With CartHacker Premium, every badge switches to the language of the page, across 30 languages."},{"src":"https:\/\/ps.w.org\/carthacker-trust-badges-seals\/assets\/screenshot-5.png?rev=3752043","caption":"Trust badges sized for phones, on a small screen too."}],"raw_content":"<!--section=description-->\n<p>Add trust badges to your WordPress site and <strong>boost customer confidence<\/strong>. Show your free shipping, easy returns, money-back guarantee and secure checkout promises anywhere on your site: with the Trust badges block or a shortcode in any post or page, above the footer, or after any element you choose. On a WooCommerce store, they can also go right under the Add to cart button and under the checkout button in the cart. You'll see statistics on <strong>how many shoppers actually saw them<\/strong>.<\/p>\n\n<p>Shoppers leave when they're unsure. The latest research on why shoppers abandon a checkout found that <strong>40% of them left over extra costs<\/strong> such as shipping. 19% didn't trust the site with their card, and 13% didn't like the returns policy. A free shipping, secure checkout or easy returns trust badge answers each of those doubts before the shopper leaves your site.<\/p>\n\n<p>It works because shoppers don't read a product page word by word. Their eyes move from the price to the button and to anything that is easy to notice. A badge is a promise they understand in about a second. Research on online stores found that <strong>showing a trust seal made shoppers more likely to buy<\/strong> (Ozpolat and colleagues, 2013 and 2015). The effect was largest at stores they didn't know yet.<\/p>\n\n<p><strong>Your trust badges keep your site fast.<\/strong> The badge file loads without delaying the page and needs no images. Badges that load after the page would normally push the content under them down, and that movement lowers your Visual stability score (Cumulative Layout Shift), one of the three Core Web Vitals Google uses to rank pages. The plugin reserves the exact space for each badge group before the page loads, so nothing is pushed down and your score stays the same.<\/p>\n\n<p>You design your badges in the <a href=\"https:\/\/carthacker.com\/trust-badges\/\">CartHacker badge builder<\/a> and see a live preview of every change. Every change reaches your site within 5 minutes.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>Trust badges anywhere on your site<\/strong>: with the Trust badges block or a shortcode in any post, page or template, above the footer on every page, or after any element you choose.<\/li>\n<li><strong>Trust badges under Add to cart<\/strong>: on WooCommerce, a badge group goes right under the Add to cart button of every product page, simple or variable.<\/li>\n<li><strong>Trust badges in the cart<\/strong>: on WooCommerce, right under the checkout button, the last thing a shopper reads before paying.<\/li>\n<li><strong>Statistics in WordPress admin<\/strong>: page views with badges, how many shoppers had your badges on screen and which badge links they clicked.<\/li>\n<li><strong>8 free trust badges in 2 styles<\/strong>: free shipping, fast shipping, money-back guarantee, easy returns, satisfaction, secure checkout, 24\/7 support and premium quality, as a Rosette seal or as an icon with a caption.<\/li>\n<li><strong>Your brand color and your numbers<\/strong>: every layout, sizes for desktops and phones, and a number you can change on any badge, such as 30 days or 2 years.<\/li>\n<li><strong>Safe for your Core Web Vitals<\/strong>: the plugin reserves the space for each badge group before the page loads, so the badges never push your content down. Your Visual stability score (Cumulative Layout Shift), one of the Core Web Vitals Google uses to rank pages, stays the same.<\/li>\n<\/ul>\n\n<h4>Free and CartHacker Premium<\/h4>\n\n<p>The free CartHacker account gives you <strong>1 badge group<\/strong> with 8 badges in 2 styles, in English. You get 7 days of statistics, and up to 1,000 page views with badges are counted each day.<\/p>\n\n<p><strong>CartHacker Premium ($7.99 a month or $79 a year, USD)<\/strong> gives you all 50 badges in 14 styles and up to 50 badge groups. <strong>Every badge switches to the language of the page<\/strong>, across 30 languages, and you can write your own wording for each language. Premium also adds:<\/p>\n\n<ul>\n<li>the full color set and different styles in one group<\/li>\n<li>badge links and showing a group only on the pages you choose<\/li>\n<li>180 days of statistics by page, language and device, with up to 50,000 page views counted each day<\/li>\n<li>an impact test that shows whether your badges raise add to cart on your own store<\/li>\n<\/ul>\n\n<p>The same membership includes 180 days of Core Web Vitals history with automatic tests on your 50 busiest pages, unlimited PDF tools, 200 tracked QR codes, no ads on CartHacker, new guides 2 weeks earlier and new CartHacker tools as they launch.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>Once you connect, the plugin loads your store's badge file from carthacker.com on your public pages. The file draws each badge group where you placed it. CartHacker builds the file from your groups and your plan, so your plan decides which badges, styles and languages your groups can use.<\/p>\n\n<p>Pick the Under Add to cart placement and your badges show right under the Add to cart button on every product page. It works with the classic WooCommerce product page and with block themes that use the Add to cart block. If your theme builds its product pages its own way, the badge file looks for the Add to cart button and puts your badges right under it. <strong>We tested it on 16 free WooCommerce themes<\/strong>, from Storefront, Astra and Kadence to Twenty Twenty-Five, on desktops and on phones. Your badges appeared under Add to cart on every simple and variable product, and the Under the checkout button placement worked in both the classic cart and the Cart block.<\/p>\n\n<h4>Fonts<\/h4>\n\n<p>The plugin screens use two open-source fonts, bundled in assets\/fonts: Inter by Rasmus Andersson and JetBrains Mono by JetBrains. Both are free under the SIL Open Font License 1.1.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>Every file in this plugin is readable source code with no build step. The example badges in includes\/example-badges.php are plain SVG drawings.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin uses the CartHacker service (https:\/\/carthacker.com), run by CARTHACKER LLC, to build and show the badges and to count their views. It connects to carthacker.com only after an administrator clicks Build my trust badges on the plugin page and confirms the connection on carthacker.com.<\/p>\n\n<ul>\n<li><strong>Connecting.<\/strong> The button opens https:\/\/carthacker.com\/connect\/ in your browser and sends this site's address, the address of the plugin page, which CartHacker plugin is connecting, whether WooCommerce is active and one-time security values (an OAuth state and a PKCE challenge). After you confirm, your site sends the one-time code, the PKCE verifier, the site address and the plugin version to https:\/\/carthacker.com\/wp-json\/carthacker\/v1\/connect\/token. It receives an access token and stores it in your site's database.<\/li>\n<li><strong>Showing the badges.<\/strong> While connected, every public page loads your store's badge file from <code>https:\/\/carthacker.com\/ch-badges\/{store key}.js<\/code>. CartHacker builds the file from your badge groups and your plan. The file draws the badges and places them on the page. It sets no cookies and stores nothing on the visitor's device.<\/li>\n<li><strong>Counting views.<\/strong> Each time a visitor leaves a page with badges or switches tabs, the browser sends one request to https:\/\/carthacker.com\/ch-badges\/hit with what changed since its last report. The request contains the store key and the page path. On a site whose addresses name the page with a query parameter, such as ?product=linen-shirt or ?page_id=7, that parameter is included too. The rest of the query string is removed. The request also contains the language the badges were shown in and a device class worked out from the browser window width. For each group, it says whether the group was shown, whether at least half of it was on screen for one second, and how many badge links were clicked and which ones. While an impact test runs, it also says whether that page view showed or hid the group and whether an add to cart happened. CartHacker stores only daily totals.<\/li>\n<li><strong>Reading your groups and statistics.<\/strong> When you open the plugin page or the block editor, your site's server calls https:\/\/carthacker.com\/wp-json\/carthacker\/v1\/plugin\/status and https:\/\/carthacker.com\/wp-json\/carthacker\/v1\/plugin\/stats with the access token and the plugin version. It reuses each answer for 15 minutes unless you click Refresh numbers. Once a day, your site also calls \/plugin\/status on its own to read the plan, the store key, the groups, the space each group takes on the page and a picture of each group, drawn by the CartHacker dashboard and shown on the plugin page.<\/li>\n<li><strong>Keeping the badge space current.<\/strong> While connected, your site's server calls <code>https:\/\/carthacker.com\/wp-json\/carthacker\/v1\/badges\/public\/{store key}<\/code> every 5 minutes through WP-Cron, never during a visitor's page view. It sends only the plugin version, with no access token, and reads the space each group takes on the page and the badge file's revision. That way a change in the builder reaches the reserved space within 5 minutes. When nothing has changed, carthacker.com answers with an empty \"not modified\" response. No visitor data and no personal data are sent.<\/li>\n<li><strong>Disconnecting.<\/strong> Clicking Disconnect and confirming, or deleting the plugin, sends one request with the access token to https:\/\/carthacker.com\/wp-json\/carthacker\/v1\/plugin\/disconnect.<\/li>\n<\/ul>\n\n<p>CartHacker Terms of Service: https:\/\/carthacker.com\/terms\/<\/p>\n\n<p>CartHacker Privacy Policy: https:\/\/carthacker.com\/privacy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin from Plugins &gt; Add Plugin.<\/li>\n<li>Open CartHacker &gt; Trust Badges and click Build my trust badges.<\/li>\n<li>Sign in to CartHacker or create a free account, then confirm this site.<\/li>\n<li>Click Edit my badges, build a badge group, choose where it goes and save. It shows on your site within 5 minutes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20trust%20badges%20increase%20sales%3F\"><h3>Do trust badges increase sales?<\/h3><\/dt>\n<dd><p>They help shoppers who are still unsure. Shipping costs, card safety and returns are among the top reasons shoppers leave a checkout, and a badge answers each one before they leave. Research on online stores found that a trust seal made shoppers more likely to buy, most of all at stores they didn't know yet. Every store is different. That's why CartHacker Premium includes an impact test: it hides a group from some page views and compares add to cart with and without it on your own store.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. On any WordPress site, a badge group goes wherever you place the Trust badges block or the shortcode, above the footer, or after any element you choose. WooCommerce adds two more placements: right under Add to cart and under the checkout button in the cart.<\/p><\/dd>\n<dt id=\"will%20trust%20badges%20slow%20down%20my%20site%3F\"><h3>Will trust badges slow down my site?<\/h3><\/dt>\n<dd><p>No. The badge file loads asynchronously, so it never delays your page or your store's own scripts. It needs no images and no web fonts. If a caching plugin delays all JavaScript until the first tap, such as the Delay JavaScript execution option in WP Rocket, the badges appear only after that tap. Exclude the badge file from that option to show them right away.<\/p><\/dd>\n<dt id=\"will%20trust%20badges%20hurt%20my%20core%20web%20vitals%20or%20my%20google%20rankings%3F\"><h3>Will trust badges hurt my Core Web Vitals or my Google rankings?<\/h3><\/dt>\n<dd><p>No. Badges that appear after the page has loaded would normally push the content under them down, and that movement lowers your Visual stability score (Cumulative Layout Shift), one of the three Core Web Vitals Google uses to rank pages. On product pages and inside the block and the shortcode, the plugin reserves the exact space for each badge group before the page reaches the visitor, so nothing is pushed down, even if the badge file arrives late. When you change a group in the builder, the plugin reads its new size within 5 minutes. In our tests on Storefront and Twenty Twenty-Five, the badges added 0.00 to Cumulative Layout Shift on desktops and on phones.<\/p><\/dd>\n<dt id=\"what%20does%20visible%20mean%20in%20the%20statistics%3F\"><h3>What does visible mean in the statistics?<\/h3><\/dt>\n<dd><p>A badge group counts as visible when at least half of it was on the visitor's screen for at least one second. This is the standard definition of a viewable ad impression. The visibility rate is the share of page views where that happened.<\/p><\/dd>\n<dt id=\"can%20i%20put%20trust%20badges%20on%20the%20checkout%20page%3F\"><h3>Can I put trust badges on the checkout page?<\/h3><\/dt>\n<dd><p>There is no automatic placement on the checkout page. The closest automatic placement is under the checkout button in the cart, the last thing a shopper reads before paying. On the checkout page itself, a group set to After a CSS selector can follow an element you name, such as the order review table.<\/p><\/dd>\n<dt id=\"why%20is%20there%20no%20ssl%2C%20norton%20or%20fda%20badge%3F\"><h3>Why is there no SSL, Norton or FDA badge?<\/h3><\/dt>\n<dd><p>A store can't honestly award itself someone else's certificate. EU consumer law lists an unearned trust mark among the practices that are always unfair, and it also restricts generic green claims. That's why the library has no certificate-style seals and no generic environmental badges. Every badge is a promise you control, and the builder reminds you to keep checkable promises true.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20my%20premium%20membership%20ends%3F\"><h3>What happens when my Premium membership ends?<\/h3><\/dt>\n<dd><p>Your oldest active group that has at least one free badge keeps showing, in English, with just its free badges. A group made only of Premium badges pauses. Everything else is kept and shows again when you renew.<\/p><\/dd>\n<dt id=\"can%20i%20connect%20more%20than%20one%20site%20to%20one%20account%3F\"><h3>Can I connect more than one site to one account?<\/h3><\/dt>\n<dd><p>One CartHacker account counts badge views for one site. Connecting another site moves the counting there, and your groups and statistics stay. The connection screen tells you this before you confirm. Use a separate account for each site.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20disconnect%20or%20delete%20the%20plugin%3F\"><h3>What happens when I disconnect or delete the plugin?<\/h3><\/dt>\n<dd><p>The access token is removed from your site, carthacker.com deletes the connection and the plugin stops loading the badge file. Cached pages keep showing the badges until you clear your page cache. Your badge groups and statistics stay in your CartHacker dashboard.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Trust badges anywhere with the Trust badges block or a shortcode, and under Add to cart and in the cart on WooCommerce.<\/li>\n<li>The plugin reserves the space for each badge group before the page loads, so the badges never push your content down or lower your Visual stability score (Cumulative Layout Shift) in Core Web Vitals.<\/li>\n<li>Statistics on how many shoppers saw your trust badges.<\/li>\n<\/ul>","raw_excerpt":"Add trust badges anywhere on your WordPress site or under Add to cart on WooCommerce to boost customer confidence and see how many shoppers saw them.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/387817","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=387817"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/carthacker"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=387817"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=387817"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=387817"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=387817"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=387817"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=387817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}