Lehenik eta behin, historia eta teoria pixka bat, uste dut garrantzitsua dela guztia ulertzeko.
Azkenaldian, modulosdepago.es pluginaren PRO bertsioaren bezero askok, txartelen tokenizazioa eta WooCommerce Subscriptions-ekin ordainketa errepikakorrak onartzen dituena, WooCommerce.com-en nire pluginera migratzen ari dira.
Haien arazoa, funtsean, aurretik sortutako harpidetzak kargatzen ez direla da, hau da, kobratzea ezin dute. Hemen dena normala da, izan ere, WooCommerce-k tokenizatutako txartelak gordetzen ditu, Gateway ID zehatz batentzat gordetzen ditu, eta nire pasarela pluginak ez du sarbiderik izan behar token horietara ID-a desberdina bada.
Funtsean, WooCommerce-k bere API bidez txartelak gordetzen ditu, bi taula hauetan gordetzen ditu.
woocommerce_payment_tokens taulan

Hemen gordetzen ditu tokenak.
eta woocommerce_payments_tokensmeta taulan

hor gordetzen ditu txartel horiekin lotutako datuak.
Ondo, ikus dezakezue woocommerce_payment_tokens taulan gateway_id izeneko zutabe bat dagoela. Zutabe honetan WooCommerce-k Gateway ID-a gordetzen du. Modulosdepago.es pluginak WooCommerce API-a erabiliz garatu izan balu, hemen aurkituko lirateke erabiltzaileen token guztiak eta ez litzateke ezer egin beharko, zortez, modulosdepago.es eta WooCommerce.com-en gateway_id-ak berdinak baitira. Beraz, migratze prozesua guztiz garden izango litzateke.
Esan dudan bezala, modulosdepago.es luzapena WooCommerce estandarren arabera garatu ez denez, eta Tokenizazio API-a erabili ez denez, script bat sortzera behartu naiz, WooCommerce.com-en Redsys plugin ofizialaren abantailak gozatu nahi dituzten erabiltzaile guztiek, arazo barik egin dezaten.
Zer egiten du modulosdepago.es luzapenak? Ba, oso sinplea da, tokenizazio API-a erabili beharrean, erabiltzaileen metadatuak tokenarekin gordetzen ditu.
Zehazki, erabiltzaileen metas _ds_merchant_identifier eta redsys_card-ta gordetzen du {prefijo_}usermeta taulan.

Modu honek «funtzionatzen» du, baina ondorioak ditu, hala nola, erabiltzaileak WooCommerce bere kontutik txartelak kudeatu ezin izatea, edo WooCommerce-k iraungitze data bezalako gauza oinarrizkoak ez jakitea. Ikusiko duzuenez, ez da egiteko modurik egokiena, batez ere API zehatz bat dagoenean.
Nire scriptak zer egiten duen, ba, erabiltzaile guztiak bilatzea da, bi datu horiek bilatzea eta horiek WooCommerce-ra modu egokian gehitzea Tokenizazio API-a erabiliz. Horrela, erabiltzaileek, adibidez, beren txartelak kudeatu ahal izango dituzte beren kontuetatik.

Kasuan, scriptak datu faltsuak gehitu behar ditu, adibidez, iraungitze data, abendua 2022an ezartzen duena, edo txartel mota, ezaguna bezala ezartzen duena, modulosdepago.es pluginak datu horiek ez baititu gordetzen, eta beraz, WooCommerce API-ra gehitu ezin dira (WooCommerce.com-ek guztiak gordetzen ditu).
Prozesua amaitzen denean, dena normaltasunez funtzionatzen du, erabiltzaile guztiek beren txartelak kudeatzeko aukera dute, eta WooCommerce-k horiek kudeatzeko gai da (logikoki garrantzitsua dena).
Jarraitzen hasi aurretik, ez erabili script hau modulosdepago.es pluginarekin jarraitzeko. Ez du zentzurik izango, pluginak datuak gordetzen jarraituko duelako eta bere moduan erabiliko duelako. Script hau erabilgarri da, WooCommerce.com-en Redsys plugin ofiziala erabiltzen hasi nahi baduzu, WooCommerce API-a erabiltzen duena.
Nola erabiltzen da script-a?
Oso sinplea da, besterik gabe, nahi duzun izenarekin fitxategi bat igo behar duzu, adibidez, update-tokens.php zure instalazioaren erro direktorioan. Igo ondoren, besterik gabe, https://tusitio.tld/update-tokens.php helbidea bisitatu behar duzu eta script-a martxan jarriko da. Amaitzen denean «¡Felicidades! Todos los Tokens de los usuarios migrados» mezua agertzen ez bada, orriaren berrargitaratu behar duzu agertu arte. Hori, adibidez, erabiltzaile asko izateagatik eta timeout-ak izateagatik izan daiteke.
Mesedez, egin kopia bat script-a exekutatu aurretik. Funtzionamendu motagatik, ez da ezer gertatu behar, baina datu-basearekin jolasten denean, beti da ona kopia bat egitea hasi aurretik.
Igotzeko fitxategiak izan behar duen kodea:
Gogoratu, migratze hau egiten ari bazara eta arazo bat baduzu, ticket bat ireki dezakezula WooCommerce.com-en laguntza eskatzeko.
Era berean, gogoratu nire pluginak Automattic-ek (WooCommerce garatzaileek) etengabe aztertzen duela eta WordPress, WooCommerce estandarrak zorrozki jarraitzen dituela eta beti WooCommerce API-a erabiltzen duela. Inongo bateragarritasun arazoak izango ez dituzu eta kode guztia WordPress VIP Coding Standards-en jarraitzen du, WordPress munduko kode kalitateari dagokionez gehien eskatzen dutenak.







