Il tuo carrello è attualmente vuoto!
Red-Fidelity: Un plugin di Fidelizzazione(Loyalty) per WooCommerce con Pods gratuito

Photo by Element5 Digital on Pexels
Perché un plugin di Fidelizzazione? Nel mio shop offro consulenze, e la consulenza è una relazione che cresce e si arricchisce nel tempo, man mano che la conoscenza reciproca diventa più profonda. In altre parole, è più semplice lavorare con un cliente che già conosco, poiché ho sviluppato una comprensione più completa della sua azienda, del servizio o del prodotto. Di conseguenza, posso dire che il costo di una consulenza si abbassa per me, grazie alla familiarità acquisita nel tempo. Lo stesso vale per il cliente, che beneficia di una consulenza sempre più mirata e personalizzata.
Ma come incentivare questa relazione continua e proficua? Ho pensato di creare un sistema che premi la fedeltà, per dare un valore aggiunto a queste interazioni che si sviluppano nel tempo.
Come sai, non sono un fan dei plugin che appesantiscono il sito, preferisco lavorare direttamente sul codice per mantenere alte le performance. Inoltre, uno degli obiettivi principali di questo sito è offrire spunti pratici e tecnici per la gestione di un sito web.
Per questo motivo, ho deciso di sviluppare il plugin Red-Fidelity: l’ho creato con l’intenzione di condividerlo con te, ma anche di spiegarti come funziona, in modo che tu possa comprenderne la logica e, se necessario, personalizzarlo per adattarlo meglio alle tue esigenze. Il plugin è già pronto all’uso, ma ti offro anche l’opportunità di modificarlo e migliorarlo in futuro, costruendo qualcosa di unico per il tuo business.
Il plugin è attivo su questo sito, quindi ogni acquisto ti sarà diritto a punti fedeltà da usare per i tuoi futuri acquisti.
Vuoi provarlo? Acquista la prima consulenza di benvenuto a 15€, ricevi 15 punti ed un coupon da 15€.
Indice dei contenuti
Funzionalità Principali del Plugin di Fidelizzazione Red-Fidelity
Red-Fidelity è progettato per offrire la gestione dei punti fedeltà, con una serie di funzionalità pensate per essere facilmente personalizzabili e integrabili nel tuo negozio online. Ecco cosa puoi fare con il plugin:
1. Gestione dei Punti Fedeltà
Ogni utente che effettua un acquisto nel tuo negozio accumula punti fedeltà. Questi punti possono essere utilizzati come sconto sui futuri acquisti. Il sistema di calcolo è completamente personalizzabile, permettendo di impostare:
- Tasso di conversione: quanti punti vengono guadagnati per ogni unità di valuta spesa.
- Valore di un punto: quanto vale ogni punto in termini di sconto.
- Punti massimi utilizzabili: il numero massimo di punti che un cliente può utilizzare in un singolo ordine.
2. Applicazione dello Sconto con i Punti
Quando un cliente aggiunge prodotti al carrello, il sistema verifica quanti punti sono disponibili per lui. Lo sconto viene calcolato in base ai punti accumulati e applicato automaticamente al carrello. L’utente può vedere un riepilogo dei punti utilizzati e dello sconto applicato durante il checkout.
3. Aggiornamento dei Punti al Completamento dell’Ordine
Quando un ordine viene completato, i punti vengono aggiornati automaticamente. Il sistema aggiunge nuovi punti in base al totale dell’ordine e sottrae i punti utilizzati durante il pagamento. Il saldo dei punti fedeltà è quindi sempre aggiornato.
4. Visualizzazione dei Punti nella Dashboard e nell’Area Admin
- Per gli utenti: Nella dashboard dell’account, i clienti possono vedere quanti punti hanno accumulato e il loro valore. Questo offre una trasparenza totale e incoraggia gli utenti a tornare.
- Per gli amministratori: Gli amministratori possono visualizzare i punti fedeltà degli utenti direttamente dalla lista utenti di WordPress, grazie a una colonna apposita che mostra il saldo dei punti di ciascun cliente.
5. Pannello di Configurazione nel Back Office
L’amministratore può configurare facilmente tutte le impostazioni relative al programma di fidelizzazione dal back office di WordPress:
- Impostare il numero massimo di punti utilizzabili per ordine.
- Definire la conversione tra punti e valore monetario.
- Gestire il tasso di guadagno dei punti in base all’importo dell’ordine.

Struttura del Plugin
Il plugin Red-Fidelity è composto da diversi file, ciascuno con una responsabilità specifica.
Alberatura dei file
red-fidelity/
│
├── assets/
│ ├── style.css # Stile frontend
│ ├── script.js # Eventuali funzioni
│ └── admin-style.css # Stile backoffice
│
├── includes/ # File PHP
│ ├── settings.php # Impostazioni del plugin
│ └── points-system.php # Gestione dei punti
│
├── pods.json # Campo Pods con i punti
├── red-fidelity.php # File che carica tutto
├── index.php
Ecco un’analisi dei file principali:
1. red-fidelity.php
Questo è il file principale che gestisce l’integrazione tra WooCommerce, Pods e il resto del sistema. Controlla se i plugin WooCommerce e Pods sono attivi e li carica se necessario. Inoltre, gestisce il caricamento dei file CSS e JS per l’interfaccia utente.
Mostra il codice
<?php
/**
* Plugin Name: Red-Fidelity
* Description: Plugin per la gestione di un programma fedeltà con WooCommerce e Pods.
* Version: 1.0.0
* Author: devInRed
* Author URI: https://devinred.com
* License: GPL2
*/
if (!defined('ABSPATH')) {
exit; // Evita accessi diretti
}
// Verifica se WooCommerce è attivo
if ( !in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
add_action('admin_notices', function() {
echo '<div class="error"><p>Il plugin WooCommerce non è installato o attivo. Red-Fidelity richiede WooCommerce per funzionare correttamente.</p></div>';
});
return;
}
// Verifica se Pods è attivo
if (!class_exists('Pods')) {
add_action('admin_notices', function() {
echo '<div class="error"><p>Il plugin Pods non è installato o attivo. Red-Fidelity richiede Pods per funzionare correttamente.</p></div>';
});
return;
}
// Inclusione dei file principali
include_once plugin_dir_path(__FILE__) . 'includes/settings.php';
include_once plugin_dir_path(__FILE__) . 'includes/points-system.php';
// Caricamento CSS e JS
add_action('wp_enqueue_scripts', function() {
wp_enqueue_style('red-fidelity-style', plugins_url('assets/style.css', __FILE__));
wp_enqueue_script('red-fidelity-script', plugins_url('assets/script.js', __FILE__), ['jquery'], false, true);
});
function load_admin_scripts($hook) {
if ('settings_page_red-fidelity-settings' === $hook) {
// Carica il tuo CSS nell'admin
wp_enqueue_style('my-admin-style', plugin_dir_url(__FILE__) . 'assets/admin-style.css');
}
}
add_action('admin_enqueue_scripts', 'load_admin_scripts');
2. includes/settings.php
Qui sono definite tutte le opzioni di configurazione del plugin, che possono essere facilmente gestite attraverso l’interfaccia di amministrazione di WordPress. L’amministratore può personalizzare i parametri come il tasso di conversione dei punti, il valore di ciascun punto e il numero massimo di punti utilizzabili per ordine.
Mostra il codice
<?php
add_action('admin_menu', function () {
add_options_page('Red Fidelity Settings', 'Red Fidelity', 'manage_options', 'red-fidelity-settings', 'red_fidelity_settings_page');
});
function red_fidelity_settings_page()
{
if (isset($_POST['red_fidelity_max_points']) && isset($_POST['red_fidelity_conversion_rate']) && isset($_POST['red_fidelity_point_value'])) {
update_option('red_fidelity_max_points', intval($_POST['red_fidelity_max_points']));
update_option('red_fidelity_conversion_rate', intval($_POST['red_fidelity_conversion_rate']));
update_option('red_fidelity_point_value', floatval($_POST['red_fidelity_point_value']));
echo '<div class="updated"><p>Impostazioni salvate.</p></div>';
}
$max_points = get_option('red_fidelity_max_points', 100);
$conversion_rate = get_option('red_fidelity_conversion_rate', 1);
$point_value = get_option('red_fidelity_point_value', 1);
echo '<div class="red_fidelity_backoffice wrap"><h2><a href="https://devinred.com" target="_blank">🎈devInRed</a>: Impostazioni Red-Fidelity</h2>
<form method="post">
<label>Punti massimi per ordine:</label>
<input type="number" name="red_fidelity_max_points" value="' . esc_attr($max_points) . '" />
<label>Punti per 1 ' . get_woocommerce_currency() . ':</label>
<input type="number" step="1" name="red_fidelity_conversion_rate" value="' . esc_attr($conversion_rate) . '" />
<label>Valore di 1 punto in ' . get_woocommerce_currency() . ':</label>
<input type="number" step="0.01" name="red_fidelity_point_value" value="' . esc_attr($point_value) . '" />
<input type="submit" value="Salva" class="button button-primary" />
</form>
</div>';
};
3. includes/points-system.php
Questo file gestisce la logica dei punti fedeltà:
- Calcola lo sconto basato sui punti accumulati.
- Aggiorna i punti degli utenti al completamento di un ordine.
- Previene che i punti dell’ordine vengano processati più di 1 volta.
- Aggiunge un riepilogo dei punti usati durante il checkout.
Mostra il codice
<?php
function register_pods_config()
{
// Aggiunge fidelity-points al post type user
pods_register_config_file(plugin_dir_path(__FILE__) . '/pods.json');
}
add_action('init', 'register_pods_config');
function apply_fidelity_points_discount($cart)
{
if (is_admin() && ! defined('DOING_AJAX')){
return;
}
// verifico l'utente e carico i punti fedeltà
$user_id = get_current_user_id();
$pods_user = pods('user', $user_id);
$current_points = $pods_user->field('fidelity-points');
// Imposto i punti massimi utilizzabili e il valore di conversione
$max_points = get_option('red_fidelity_max_points', 1000);
$point_value = get_option('red_fidelity_point_value', 0.1);
// Calcolo il totale del carrello e il massimo sconto utilizzabile
$cart_total = $cart->get_subtotal();
$max_points_discount = floor($cart_total / $point_value);
// Calcolo i punti da utilizzare
$points_to_use = min($current_points, $max_points);
$points_to_use = min($points_to_use, $max_points_discount);
// Calcolo il valore dello sconto
$discount_value = $points_to_use * $point_value;
// Aggiungo lo sconto al carrello
if ($discount_value > 0) {
$cart->add_fee('Punti fedeltà usati: '.$points_to_use.'/'.$current_points, -$discount_value, true, '');
}
}
add_action('woocommerce_cart_calculate_fees', 'apply_fidelity_points_discount', 10, 1);
function change_fidelity_points_on_order_complete($order_id)
{
// Ottengo l'ordine
$order = wc_get_order($order_id);
// Verifico se l'ordine è già stato processato per i punti fedeltà
$red_fidelity_processed = get_post_meta($order_id, '_red_fidelity_processed', true);
if ($red_fidelity_processed) {
return;
}
update_post_meta($order_id, '_red_fidelity_processed', '1');
$user_id = $order->get_user_id();
// Se l'utente ha un ID
if ($user_id) {
// Ottengo il tasso di conversione e il valore di 1 punto
$conversion_rate = get_option('red_fidelity_conversion_rate', 1);
$points_value = get_option('red_fidelity_point_value', 1);
// Calcolo i punti da aggiungere in base al totale dell'ordine
$order_total = $order->get_total();
$points_to_add = (int) $order_total * $conversion_rate;
// Aggiungo i punti all'utente
$pods_user = pods('user', $user_id);
if ($pods_user->exists()) {
// Recupero i punti attuali e aggiungo i nuovi punti
$current_points = (int) $pods_user->field('fidelity-points');
$new_points = $current_points + $points_to_add;
// Aggiorno i punti fedeltà dell'utente sottraendo i punti utilizzati
$fee_total = 0;
foreach ($order->get_fees() as $fee) {
// Verifico se la fee è relativa ai punti fedeltà
if (strpos($fee->get_name(), 'Punti fedeltà usati') !== false) {
$fee_total += $fee->get_total();
}
}
// Calcolo i punti utilizzati in valore assoluto (perché lo sconto è negativo)
$fee_total = abs($fee_total);
$points_used = 0;
if ($fee_total > 0) {
// Se ho utilizzato dei punti, calcolo quanti punti ho utilizzato convertendo il valore dello sconto in punti
$points_used = floor($fee_total / $points_value);
$new_points = $new_points - $points_used;
}
// Aggiorno i punti fedeltà dell'utente
$pods_user->save(array('fidelity-points' => $new_points));
}
}
}
add_action('woocommerce_order_status_completed', 'change_fidelity_points_on_order_complete');
// Aggiungo la colonna Fidelity Points alla lista utenti
add_filter('manage_users_columns', function ($columns) {
$columns['fidelity_points'] = 'Fidelity Points';
return $columns;
});
// Mostro i punti fedeltà nella colonna Fidelity Points
add_filter('manage_users_custom_column', function ($value, $column_name, $user_id) {
if ($column_name == 'fidelity_points') {
$pods = pods('user', $user_id);
if ($pods->exists()) {
$fidelity_points = $pods->field('fidelity-points');
return (int)$fidelity_points;
} else {
return 'Nessun punto fedeltà';
}
}
return $value;
}, 10, 3);
// Stampo i punti fedeltà nella dashboard dell'utente
add_action('woocommerce_account_dashboard', function () {
$user_id = get_current_user_id();
$pods = pods('user', $user_id);
if ($pods->exists()) {
$fidelity_points = $pods->field('fidelity-points');
echo '<div class="red-fidelity-user">Punti Fedeltà: <span>' . (int)$fidelity_points . '</span></div>';
} else {
echo '<div class="red-fidelity-user">Nessun punto fedeltà</div>';
}
});
4. includes/pods.json
Il file di configurazione di Pods per definire la struttura dei dati utente. Red-Fidelity utilizza Pods per gestire i punti fedeltà, memorizzandoli come un campo personalizzato nell’oggetto “user”. Il sistema tiene traccia dei punti attraverso il campo “fidelity-points”.
Mostra il codice
{
"@meta": {
"version": "3.2.8.2",
"build": 1740665993
},
"pods": [
{
"name": "user",
"id": 71,
"label": "User",
"description": "",
"type": "user",
"storage": "meta",
"object": "user",
"_migrated_28": "1",
"groups": [
{
"name": "red-fidelity-pod",
"id": 72,
"label": "Red Fidelity Pod",
"description": "",
"weight": 0,
"roles_allowed": "administrator",
"fields": [
{
"name": "fidelity-points",
"id": 73,
"label": "Fidelity Points",
"description": "",
"weight": 0,
"type": "number",
"number_format_type": "number",
"number_format": "i18n",
"number_decimals": "0",
"number_format_soft": "0",
"number_step": "1",
"number_max_length": "12",
"number_html5": "0",
"repeatable": "0",
"repeatable_format": "default",
"default_evaluate_tags": "0",
"default_empty_fields": "0",
"roles_allowed": "administrator",
"enable_conditional_logic": "0",
"rest_pick_response": "array",
"rest_pick_depth": "1",
"required": "0"
}
]
}
]
}
]
}
5. assets/style.css
I punti fedeltà sono visualizzati in un contenitore ben stilizzato con un colore di sfondo chiaro e un bordo arrotondato. Il testo dei punti è evidenziato in un colore accattivante, per attirare l’attenzione dell’utente.
Mostra codice
/* Stile per il contenitore dei punti fedeltà */
.red-fidelity-user {
background-color: #f0f4f8;
border: 1px solid #ccc;
border-radius: 5px;
padding: 15px;
font-size: 1.1em;
color: #333;
display: flex;
justify-content: space-between;
align-items: center;
margin: 20px auto;
}
/* Stile per i punti fedeltà */
.red-fidelity-user span {
font-weight: bold;
color: #008ab5;
}
6. assets/admin-style.css
Il pannello di configurazione ha uno sfondo chiaro, bordi arrotondati e ombra per un aspetto moderno e pulito. I form sono facili da utilizzare, con input numerici che evidenziano il focus e pulsanti chiari per la conferma delle modifiche
Mostra il codice
.red_fidelity_backoffice {
background-color: #f9f9f9;
border-radius: 8px;
padding: 20px;
max-width: 600px;
margin: 0 auto;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.red_fidelity_backoffice h2 {
font-size: 1.8em;
color: #333;
margin-bottom: 20px;
font-weight: bold;
text-align: center;
}
.red_fidelity_backoffice a {
color: #008ab5;
text-decoration: none;
}
.red_fidelity_backoffice h2 a:hover {
text-decoration: underline;
}
.red_fidelity_backoffice form {
display: flex;
flex-direction: column;
}
.red_fidelity_backoffice label {
font-size: 1.1em;
margin-bottom: 5px;
color: #333;
}
.red_fidelity_backoffice input[type="number"] {
padding: 10px;
font-size: 1em;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
transition: border-color 0.3s ease;
}
.red_fidelity_backoffice input[type="number"]:focus {
border-color: #008ab5;
outline: none;
}
.red_fidelity_backoffice input[type="submit"] {
background-color: #008ab5;
color: white;
font-size: 1.1em;
padding: 12px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.red_fidelity_backoffice input[type="submit"]:hover {
background-color: #008ab5;
}
Conclusioni
Il plugin Red-Fidelity è una soluzione potente e personalizzabile per la gestione dei programmi di fidelizzazione su WooCommerce. Utilizzando Pods per memorizzare e gestire i dati utente, puoi facilmente tracciare i punti fedeltà e fornire ai tuoi clienti uno strumento per ottenere sconti sui loro acquisti futuri. Grazie alla sua facilità di configurazione e integrazione, Red-Fidelity ti aiuta a migliorare l’esperienza di acquisto e a rafforzare la fedeltà dei tuoi clienti.
Con le opzioni di personalizzazione e la gestione facile del back office, il plugin è un’ottima scelta per negozi di qualsiasi dimensione che vogliano implementare un programma di fidelizzazione semplice e automatico.
Migliorie
Il plugin è stato progettato per essere estremamente semplice, sia da utilizzare che da modificare ed espandere. L’obiettivo era offrire uno strumento flessibile che potesse adattarsi facilmente alle diverse esigenze.
Per esempio, sarebbe interessante creare uno shortcode che consenta di visualizzare il saldo punti in qualsiasi parte del sito, come l’header, il footer, o anche in una sidebar.
Inoltre, si potrebbe aggiungere un’azione che attivi una funzione ogni volta che i punti vengono aggiornati, permettendo, ad esempio, di inviare automaticamente l’aggiornamento dei punti ai contatti di Brevo per un marketing mirato.
Le possibilità di personalizzazione sono praticamente infinite, e potrai facilmente adattare il plugin alle tue necessità!
Ottieni il Plugin Red-Fidelity Gratuitamente!
Se sei pronto a migliorare la fidelizzazione dei tuoi clienti con il plugin sviluppato in questo articolo? Compila il form qui sotto e ricevilo immediatamente nella tua casella di posta. È gratuito e pronto per l’uso sul tuo negozio!
Non perdere questa opportunità di implementare un sistema di punti fedeltà semplice ed efficace per premiare i tuoi clienti.
Compila il form e scarica il plugin Red-Fidelity ora! 👇
Se stai cercando un hosting con assistenza top e un pannello di controllo super semplificato, ti consiglio SiteGround! Se acquisti tramite il mio link, guadagno una commissione, ma tu non paghi nulla in più. Win-win! 😉