Qui ho sviluppato un codice che permette di avere un sistema per inviare in automatico le recensioni su Trustpilot.
Il plugin di Trustpilot per WordPress e WooCommerce non viene aggiornato da anni e da sempre problemi, quindi ho pensato che potesse esservi di aiuto questo codice, testato, che serve per inviare le richieste di recensioni.
Lo script scatta quando un ordine è stato creato e si attiva nella pagina di ringraziamento che vede il cliente, ovvero /order-received/
La prima cosa da fare è andare sul sito di trustpilot e prendere il primo codice da inserire con la key giusta.

Ho incluso già io il codice per la header, ma voi dovete solo mettere la KEY giusta, nella funzione mm_add_trustpilot_script_head
Questo file va inserito nel vostro tema o plugin e va richiamato dal vostro file functions.php
<?php /** * @package mm */ // Se questo file viene chiamato direttamente, abortire. if ( ! defined( 'WPINC' ) ) { die; } function mm_add_trustpilot_script_head() { if (is_wc_endpoint_url('order-received')) { ?> <script> (function(w,d,s,r,n){w.TrustpilotObject=n;w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)}; a=d.createElement(s);a.async=1;a.src=r;a.type='text/java'+s;f=d.getElementsByTagName(s)[0]; f.parentNode.insertBefore(a,f)})(window,document,'script', 'https://invitejs.trustpilot.com/tp.min.js', 'tp'); tp('register', 'LA_TUA_KEY_QUI'); </script> <?php } } add_action('wp_head', 'mm_add_trustpilot_script_head', 99); function mm_add_trustpilot_invitation_script() { if (!is_wc_endpoint_url('order-received')) { return; } if (!isset($_GET['key'])) { return; } $order_id = wc_get_order_id_by_order_key(sanitize_text_field($_GET['key'])); $order = wc_get_order($order_id); if (!$order) { return; } $customer_email = $order->get_billing_email(); $customer_name = $order->get_billing_first_name(); $reference_id = $order->get_order_number(); $products_data = []; $product_skus = []; foreach ($order->get_items() as $item) { $product = $item->get_product(); if (!$product) { continue; } $sku = $product->get_sku(); $product_skus[] = $sku; $products_data[] = [ "sku" => $sku, "productUrl" => get_permalink($product->get_id()), "imageUrl" => wp_get_attachment_url($product->get_image_id()), "name" => $product->get_name() ]; } ?> <script> function sendTpInvitation() { var trustpilot_invitation = { recipientEmail: "<?php echo esc_js($customer_email); ?>", recipientName: "<?php echo esc_js($customer_name); ?>", referenceId: "<?php echo esc_js($reference_id); ?>", source: "InvitationScript", productSkus: <?php echo json_encode($product_skus); ?>, products: <?php echo json_encode($products_data); ?> }; tp("createInvitation", trustpilot_invitation); } if (typeof tp !== "undefined") { sendTpInvitation(); } else { document.addEventListener("DOMContentLoaded", function () { sendTpInvitation(); }); } </script> <?php } add_action('wp_footer', 'mm_add_trustpilot_invitation_script');