Migrer les données de LikeBtn vers Helpful

par | 4/06/2121

Migration Helpful vers LikeBtn

Il y a mille et une raisons de vouloir se débarrasser de LikeBtn, je ne vais pas les exposer dans cet article, simplement vous montrer comment le remplacer par un plugin open-source tout en gardant les données que vous avez accumulées jusqu’à maintenant et supprimer ou remplacer vos shortcodes. Tout ça grâce à Python, bien sûr ! 🙂

Migrer les données de LikeBtn vers Helpful

Prérequis

  • Python 3 🐍
  • Pymysql (pip3 install pymysqlou python -m pip install pymysql)
  • LikeBtn et Helpful installés sur votre site WordPress

Pour toutes les manipulations de cette article, on partira du principe que vous êtes sur un serveur Linux avec une base MySQL et que vous avez la possibilité de placer et d’exécuter des fichiers sur votre serveur web.

Première étape : exporter les données de LikeBtn

Rendez-vous sur l’interface d’administration de LikeBtn puis dans l’onglet Votes. Cliquez sur le bouton « Export to CSV » et configurez l’export comme suit :

  • Cochez « Vote type » et « Item URL »
  • Encoding UTF-16
  • Séparateur semicolon (« ; »)

Export de votes de LikeBtn

Cliquez sur « Export » et le plugin vous renverra un fichier CSV contenant toutes les données de vote (like/dislike et l’URL concernée).

Deuxième étape : importer les données vers Helpful

Munissez-vous des identifiants de l’utilisateur de la BDD de votre site wordpress : vous pouvez trouver les identifiants dans le fichier wp-config.phpde votre installation.

Le script suivant permet de se connecter à la BDD (mysql) et d’y envoyer les données de vote dans les tables de Helpful. Pour qu’il fonctionne, vous devez remplacer les paramètres de configuration de la connexion MySQL.

import csv, pymysql

def db_connect():
    db = pymysql.connect(host="localhost", 
                         user="user", # Pseudo de l'utilisateur de la BDD wordpress
                         passwd="mdp", # Mdp de l'utilisateur de la BDD wordpress
                         db="wordpress") # Nom de la BDD wordpress
    return (db)

def quickSql(sql):
    db = db_connect()
    cur = db.cursor(pymysql.cursors.DictCursor)
    cur.execute(sql)
    db.commit()
    db.close()
    return ()

csvfile = open("likebtn.csv","r", encoding="utf-16") # Remplacez le nom du fichier ou l'emplacement ici si nécessaire
csvreader = csv.reader(csvfile, delimiter=";")
for elt in csvreader :

    if elt[0] == "like" :
        quickSql("INSERT INTO wp_helpful (`pro`, `contra`, `post_id` ) VALUES ('1','0', '{}')".format(elt[1]))
    elif elt[0] == "dislike" :
        quickSql("INSERT INTO wp_helpful (`pro`, `contra`, `post_id` ) VALUES ('0','1', '{}')".format(elt[1]))

Placez le script sur votre serveur dans un fichier script.py, assurez-vous qu’il soit exécutable (chmod +x script.py sur linux) et placez le fichier d’export des votes de LikeBtn au même emplacement.

Il est temps d’exécuter le script : python script.py et de laisser mouliner le temps que les votes soient enregistrés un à un dans la base. Si tout se passe bien, il n’y aura pas de message d’erreur 🤑

Troisième étape : supprimer ou remplacer les shortcodes de LikeBtn

Si vous utilisez des shortcodes pour activer les interfaces de vote de LikeBtn, il faudra supprimer ces shortcodes. Si vous avez comme c’est mon cas, plus de 500 de pages contenant le shortcode, il est préférable de manipuler directement la base de données pour automatiser le processus.

Pour ce faire, on aura recours au petit bijoux Search Regex, extension qui permet de faire du search & replace sur votre base de données avec des expressions régulières. En l’occurence, on devra utiliser la regex suivante (c’est cadeau 😁) :

\[likebtn([\S\s]*?)\]

Elle permet de matcher tous les shortcodes de LikeBtn, y compris ceux qui sont configurés avec des attributs (par exemple [likebtn reglage=true reglage2=false]).

Search Regex

De cette façon vous pouvez soit supprimer tous les shortcodes de LikeBtn ou les remplacer par d’autre shortcodes… notamment le shortcode de Helpful, bien sûr. Le plugin est safe puisqu’il vous permet de faire une recherche avant de remplacer, et de voir exactement ce que vous matchez.

Conclusion

Et voila, c’est terminé ! Rendez-vous dans les commentaires si vous avez une question ou si vous rencontrez un problème. En espérant que cet article soit utile à quelques uns !

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée.

D’autres articles qui pourront vous intéresser

Ensemble, donnons vie à vos projets.

Vous avez une idée, une question, un problème, une vision ou simplement besoin d’être conseillé ?