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 ! 🙂
Sommaire
Migrer les données de LikeBtn vers Helpful
Prérequis
- Python 3 🐍
- Pymysql (
pip3 install pymysql
oupython -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 (« ; »)
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.php
de 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]
).
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