Avant tout, un peu d’histoire et de théorie, car je pense que c’est important pour tout comprendre.
Dernièrement, de nombreux clients du plugin modulosdepago.es dans sa version PRO, celle qui accepte la tokenisation des cartes et les paiements récurrents avec WooCommerce Subscriptions, migrent vers mon plugin de WooCommerce.com
Le problème qu’ils rencontrent est essentiellement que les abonnements créés auparavant ne se chargent pas, c’est-à-dire qu’ils ne peuvent pas être facturés. Jusqu’ici tout va bien, car lorsque WooCommerce enregistre les cartes tokenisées, il les enregistre pour un ID de passerelle particulier, et mon plugin de passerelle ne devrait pas avoir accès à ces tokens si l’ID est différent.
Essentiellement, lorsque WooCommerce enregistre les cartes via son API, il les enregistre dans deux tables
Dans la table woocommerce_payment_tokens

C’est ici qu’il enregistre les tokens.
et la table woocommerce_payments_tokensmeta

est où il enregistre toutes les données liées à ces cartes.
Bien, vous pouvez voir que dans la table woocommerce_payment_tokens, il y a une colonne qui indique gateway_id, Dans cette colonne, WooCommerce enregistre l’ID de la passerelle. Si le plugin modulosdepago.es avait été développé en utilisant l’API de WooCommerce, tous les tokens des utilisateurs se trouveraient ici et il n’y aurait rien d’autre à faire, car heureusement, l’ID de gateway_id de modulosdepago.es et celui de WooCommerce.com sont identiques. Donc, ce serait une migration totalement transparente.
Comme je l’ai mentionné, l’extension de modulosdepago.es n’a pas été développée en suivant les normes de WooCommerce, et n’a pas utilisé l’API de Tokenisation. Cela m’a obligé à créer un script pour que tous les utilisateurs qui souhaitent commencer à profiter de tous les avantages du plugin officiel de WooCommerce.com pour Redsys, puissent le faire sans problème.
Que fait l’extension de modulosdepago.es ? C’est très simple, au lieu d’utiliser l’API de tokenisation, elle enregistre le token avec les métadonnées des utilisateurs.
Exactement ce qu’elle fait, c’est l’enregistrer dans les métas _ds_merchant_identifier et redsys_card des utilisateurs dans la table {prefijo_}usermeta

Cette méthode « fonctionne », mais a des conséquences, comme le fait que l’utilisateur ne puisse pas gérer les cartes depuis son compte WooCommerce, ou que WooCommerce ne sache pas des choses aussi basiques que la date d’expiration. Comme vous le verrez, ce n’est pas la manière la plus appropriée de le faire, surtout lorsqu’il existe une API spécifique pour cela.
En quoi consiste mon script ? Eh bien, il fait simplement le tour de tous les utilisateurs à la recherche de ces deux données, et les ajoute correctement à WooCommerce via son API de Tokenisation. De cette façon, les utilisateurs peuvent déjà gérer par exemple leurs cartes depuis leurs comptes.

Dans ce cas, le script doit ajouter des données fictives, comme par exemple la date d’expiration, qu’il fixe à décembre 2022, ou le type de carte qu’il met comme inconnu, simplement parce que ces données ne sont pas enregistrées par le plugin de modulosdepago.es. et donc ne peuvent pas être ajoutées à l’API de WooCommerce (celui de WooCommerce.com les enregistre tous).
Une fois le processus terminé, tout fonctionne normalement, tous les utilisateurs ont accès à leurs cartes, et WooCommerce est capable de les gérer (ce qui est très important, comme il se doit).
Avant de continuer, NE utilisez pas ce script si vous allez continuer avec le plugin de modulosdepago.es. Cela ne vous servira à rien car le plugin continuera à enregistrer les données et à les utiliser de sa manière. Ce script ne vaut la peine d’être utilisé que si vous souhaitez commencer à utiliser le plugin officiel de WooCommerce.com pour Redsys qui utilise l’API de WooCommerce.
Comment utiliser le script ?
C’est très simple, vous devez simplement télécharger un fichier avec le nom que vous souhaitez, par exemple update-tokens.php dans le répertoire racine de votre installation. Une fois téléchargé, vous devez simplement visiter l’adresse https://tusitio.tld/update-tokens.php et le script se mettra en marche. Si à la fin, le message « Félicitations ! Tous les Tokens des utilisateurs migrés » n’apparaît pas, rechargez la page jusqu’à ce qu’il apparaisse. Cela peut être dû au fait que vous avez beaucoup d’utilisateurs et que des timeouts se produisent.
Veuillez faire une sauvegarde avant de procéder avec le script. En raison de son fonctionnement, il ne devrait absolument rien se passer, mais lorsqu’on joue avec la base de données, il est toujours bon de faire une sauvegarde avant de commencer.
Le code que le fichier à télécharger doit contenir est :
Rappelez-vous que si vous effectuez cette migration et que vous avez un problème, vous pouvez ouvrir un ticket pour obtenir de l’aide sur WooCommerce.com
Rappelez-vous également que mon plugin est constamment audité par Automattic (développeurs de WooCommerce) et suit strictement toutes les normes de WordPress, WooCommerce et utilise toujours l’API de WooCommerce. Vous n’aurez jamais de problèmes de compatibilité et tout le code suit les Coding Standards de WordPress VIP, les plus exigeants en matière de qualité de code dans le monde de WordPress.







