From c9e7e76449cdbbf954ac4e8ac6ec15801c2532d5 Mon Sep 17 00:00:00 2001 From: Alexander Minza Date: Tue, 28 May 2024 12:20:41 +0300 Subject: [PATCH] v1.4.0 (#34) Added support for WooCommerce Cart and Checkout Blocks --- README.md | 1 + assets/js/blocks.js | 46 ++++++ languages/wc-moldovaagroindbank-ro_RO.mo | Bin 10275 -> 10490 bytes languages/wc-moldovaagroindbank-ro_RO.po | 187 ++++++++++++----------- languages/wc-moldovaagroindbank-ru_RU.mo | Bin 13012 -> 13257 bytes languages/wc-moldovaagroindbank-ru_RU.po | 187 ++++++++++++----------- languages/wc-moldovaagroindbank.pot | 183 +++++++++++----------- readme.txt | 21 ++- wc-moldovaagroindbank-wbc.php | 87 +++++++++++ wc-moldovaagroindbank.php | 158 ++++++++++++------- 10 files changed, 532 insertions(+), 338 deletions(-) create mode 100644 assets/js/blocks.js create mode 100644 wc-moldovaagroindbank-wbc.php diff --git a/README.md b/README.md index 6a05a82..d1820aa 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ WordPress plugin: https://wordpress.org/plugins/wc-moldovaagroindbank/ * Reverse transactions – partial or complete refunds * Admin order actions – complete authorized transaction * Close business day scheduled action +* Supports WooCommerce [block-based checkout experience](https://woo.com/checkout-blocks/) * Free to use – [Open-source GPL-3.0 license on GitHub](https://github.com/alexminza/wc-moldovaagroindbank) ## Getting Started diff --git a/assets/js/blocks.js b/assets/js/blocks.js new file mode 100644 index 0000000..65d0272 --- /dev/null +++ b/assets/js/blocks.js @@ -0,0 +1,46 @@ +const maib_settings = window.wc.wcSettings.getSetting('moldovaagroindbank_data', {}); +const maib_title = window.wp.htmlEntities.decodeEntities(maib_settings.title); + +const Content = () => { + return window.wp.htmlEntities.decodeEntities(maib_settings.description || ''); +}; + +const Label = () => { + let icon = maib_settings.icon + ? window.wp.element.createElement( + 'img', + { + alt: maib_title, + title: maib_title, + src: maib_settings.icon, + style: { float: 'right', paddingRight: '1em' } + } + ) + : null; + + let label = window.wp.element.createElement( + 'span', + icon ? { style: { width: '100%' } } : null, + maib_title, + icon + ); + + return label; +}; + +const maib_Block_Gateway = { + name: maib_settings.id, + label: Object(window.wp.element.createElement)(Label, null), + //icons: [{id: settings.id, src: settings.icon, alt: label_text}], + icons: ['visa', 'mastercard'], + content: Object(window.wp.element.createElement)(Content, null), + edit: Object(window.wp.element.createElement)(Content, null), + canMakePayment: () => true, + ariaLabel: maib_title, + supports: { + features: maib_settings.supports, + }, +}; + +//console.debug(maib_Block_Gateway); +window.wc.wcBlocksRegistry.registerPaymentMethod(maib_Block_Gateway); diff --git a/languages/wc-moldovaagroindbank-ro_RO.mo b/languages/wc-moldovaagroindbank-ro_RO.mo index ddcfaac86f2c093537f579e0de304a0454413b7a..7543fd3a0cb5f6983af09176f0f4bc28efbd75fe 100644 GIT binary patch delta 1634 zcmY+^Ur19?9Ki9j@=s>zOt;MS=l0h^U2FaWgPd9oEK&QT78K5Tvo&?-Ht9ttXwe^f zs1+ooJ(Lj{MOcvam{b%AWl@j>VF^X`P|!pFzdyDf8h7_|?z#7#bAG?`+s;>guMWMQ z6LU)OspC7J@5D5vLU=Zo6Q9%ZN?EZFHGF_I_#Ol3n4wfU-o)8Bh6y-?A5x&A0G!rICQ5KX5mm)zc zJIecOQ8M7h)p!U~B-OWQY{ZAS7E>5K4J&XlHlT*RD47|=1vnP%{}}C`&8#v`0dBxf zbl_c-t%ylhsthwQA9rKONaG}p^*D%G_yJd;nVZGvz#;6$Y|JK2)wlz9;t-z0xH*xC zFQNo+4cRRR3I+NrO_)qx~a1yoml(3QmeRH$9}(0UAf>kb#U;noPJ76R`}XzY?X` znot&Y5M?VaBgsRo46V8hiGUt(kziZ%}04~D^d=s z10}K^G~==8{R=25zK>FL6Ub2NEpn(ooVKHd-x^t0Z75sXi|gSR70o{rE8gsZdun!y|wVJb3 zc_m75wV_n;0G8l8bYP|yN%3AR=eiqZL61-}^BW~%6N43_7YlI+t8fxOVjioJty#=I zcF6C)hK7fZ$2g9K{75CGiBzN%XDUiYmSF?hFc!lo6ZE0fz!Q|ryg`{@=88x$7b9KD zi-++z4xlBIcjXV^HVuMQ+jv_d3E)0Fiqr91_;75dp?3Is>=}chZnz@ek`(sNSY>P1 z+k&2U-LKX9d}Y3t7QNlAYXP6uplhC1f56q;tT$?|R=)0lr$e`fn@p9{^Q^Y;h^fh# zmt)J#u@`7-@{8=bSvLEy&1^ADv)YF@&3$GxIK%GroRU`Et@}NJ(H_n1(pr3t!RBD| af0OySwa4>sI#)n@(C3NFW>tPyQ2hlaSI|@d delta 1495 zcmXZbZD^HM902fhb9b|?Y&zYRvw79rirZ{&wbXKJm1VT4MM{o}31Sh6q^5m{OHk0L zh`KEDh4!I^N+0}ii=>x96lmC|l!X<8+6N=-+Yowl{r>D;p8NdHbDrlp=luWY|NOo6 z!!3oWMHQpTZ@d38{|ncoRN$LgC%@OLQd+|i=6IUhc#-?rK0l>Ke#GlJ!E5R~%vfMGng&z2m1Ds{NFkqBc4zr6Rj7Y!YI-X+%D}^a3sfICO9R-_K zGTzTKGVmC0=OHePRG-k;$j`Z+8KW=eJzT*@nd5#&W=44vC(8Z5l>7f#F`jR#LkumTzqp1F2ENH1pj4jwe zNlLpJ&mE*Az3tS^lYEdxbBPZTs_FTZ0vc!|m&RX5E=)WCYzD;W3h zV${YEquBP+E9np&sp#}LPf?ar*0&a0*~ks-XDs9u_Onpbi0YkWME)~l0hbslonh?N zRYv3;R(mIRFeZ41n>o&ic&6Ncx3tBAH6-MHJ!y(^}B1k+B(|XI@abo)~@UB X&bN1!j?_10N}n}csIAyHd?5V~KP9D( diff --git a/languages/wc-moldovaagroindbank-ro_RO.po b/languages/wc-moldovaagroindbank-ro_RO.po index 9dd9535..293f980 100644 --- a/languages/wc-moldovaagroindbank-ro_RO.po +++ b/languages/wc-moldovaagroindbank-ro_RO.po @@ -3,11 +3,11 @@ msgid "" msgstr "" "Project-Id-Version: WooCommerce maib Moldova Agroindbank Payment Gateway " -"1.3.2\n" +"1.4.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wc-" "moldovaagroindbank\n" -"POT-Creation-Date: 2023-10-19 19:42+0300\n" -"PO-Revision-Date: 2023-10-19 19:44+0300\n" +"POT-Creation-Date: 2024-03-26 15:15+0200\n" +"PO-Revision-Date: 2024-03-26 15:23+0200\n" "Last-Translator: Alexander Minza \n" "Language-Team: \n" "Language: ro\n" @@ -16,9 +16,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -"X-Generator: Poedit 3.4\n" +"X-Generator: Poedit 3.4.2\n" #. Description of the plugin +#: wc-moldovaagroindbank.php msgid "" "Accept Visa and Mastercard directly on your store with the maib Moldova " "Agroindbank payment gateway for WooCommerce." @@ -26,59 +27,67 @@ msgstr "" "Acceptă plata cu carduri Visa și Mastercard direct în magazin cu gateway-ul " "de plată maib Moldova Agroindbank pentru WooCommerce." -#: wc-moldovaagroindbank.php:138 +#: wc-moldovaagroindbank.php:55 +msgid "" +"maib Moldova Agroindbank payment gateway requires WooCommerce to be " +"installed and active." +msgstr "" +"Gateway-ul de plată maib Moldova Agroindbank necesită ca modulul WooCommerce " +"să fie instalat și activ." + +#: wc-moldovaagroindbank.php:154 msgid "Enable/Disable" msgstr "Activare/Dezactivare" -#: wc-moldovaagroindbank.php:140 +#: wc-moldovaagroindbank.php:156 msgid "Enable this gateway" msgstr "Activează acest gateway de plată" -#: wc-moldovaagroindbank.php:144 +#: wc-moldovaagroindbank.php:160 msgid "Title" msgstr "Titlu" -#: wc-moldovaagroindbank.php:146 +#: wc-moldovaagroindbank.php:162 msgid "Payment method title that the customer will see during checkout." msgstr "Titlul metodei de plată afișat clientului în timpul plății." -#: wc-moldovaagroindbank.php:151 +#: wc-moldovaagroindbank.php:167 msgid "Description" msgstr "Descriere" -#: wc-moldovaagroindbank.php:153 +#: wc-moldovaagroindbank.php:169 msgid "Payment method description that the customer will see during checkout." msgstr "Descrierea metodei de plată afișată clientului în timpul plății." -#: wc-moldovaagroindbank.php:158 +#: wc-moldovaagroindbank.php:174 msgid "Logo" msgstr "Logo" -#: wc-moldovaagroindbank.php:161 +#: wc-moldovaagroindbank.php:177 msgid "Payment method logo image that the customer will see during checkout." msgstr "Sigla metodei de plată afișată clientului în timpul plății." -#: wc-moldovaagroindbank.php:165 +#: wc-moldovaagroindbank.php:181 msgid "Bank logo" msgstr "Logo bancă" -#: wc-moldovaagroindbank.php:166 +#: wc-moldovaagroindbank.php:182 msgid "Payment systems logos" msgstr "Logo sisteme de plăți" -#: wc-moldovaagroindbank.php:167 +#: wc-moldovaagroindbank.php:183 msgid "No logo" msgstr "Fără logo" -#: wc-moldovaagroindbank.php:172 +#: wc-moldovaagroindbank.php:188 msgid "Test mode" msgstr "Mod testare" -#: wc-moldovaagroindbank.php:174 +#: wc-moldovaagroindbank.php:190 msgid "Enabled" msgstr "Activat" -#: wc-moldovaagroindbank.php:175 +#: wc-moldovaagroindbank.php:191 msgid "" "Use Test or Live bank gateway to process the payments. Disable when ready to " "accept live payments." @@ -86,19 +95,19 @@ msgstr "" "Conectare la mediul de Test sau Producție al băncii pentru procesarea " "plăților. Dezactivați atunci când sunteți gata să acceptați plăți reale." -#: wc-moldovaagroindbank.php:180 +#: wc-moldovaagroindbank.php:196 msgid "Debug mode" msgstr "Mod depanare" -#: wc-moldovaagroindbank.php:182 +#: wc-moldovaagroindbank.php:198 msgid "Enable logging" msgstr "Activează jurnalizare" -#: wc-moldovaagroindbank.php:184 +#: wc-moldovaagroindbank.php:200 msgid "View logs" msgstr "Vizualizați jurnalele" -#: wc-moldovaagroindbank.php:185 +#: wc-moldovaagroindbank.php:201 msgid "" "Save debug messages to the WooCommerce System Status logs. Note: this may " "log personal information. Use this for debugging purposes only and delete " @@ -108,11 +117,11 @@ msgstr "" "Notă: acest lucru poate înregistra informații personale. Utilizați această " "opțiune numai pentru depanare și ștergeți jurnalele atunci când ați terminat." -#: wc-moldovaagroindbank.php:189 +#: wc-moldovaagroindbank.php:205 msgid "Transaction type" msgstr "Tip tranzacție" -#: wc-moldovaagroindbank.php:192 +#: wc-moldovaagroindbank.php:208 msgid "" "Select how transactions should be processed. Charge submits all transactions " "for settlement, Authorization simply authorizes the order total for capture " @@ -122,35 +131,35 @@ msgstr "" "toate tranzacțiile la bancă pentru decontare, Authorization doar autorizează " "suma comenzii la bancă pentru decontare ulterioară." -#: wc-moldovaagroindbank.php:196 +#: wc-moldovaagroindbank.php:212 msgid "Charge" msgstr "Plată (Charge)" -#: wc-moldovaagroindbank.php:197 +#: wc-moldovaagroindbank.php:213 msgid "Authorization" msgstr "Autorizare (Authorization)" -#: wc-moldovaagroindbank.php:201 +#: wc-moldovaagroindbank.php:217 msgid "Order description" msgstr "Descriere comandă" -#: wc-moldovaagroindbank.php:203 +#: wc-moldovaagroindbank.php:219 msgid "" "Format: %1$s - Order ID, %2$s - Order items summary" msgstr "" "Format: %1$s - ID Comandă, %2$s - Sumar conținut " "comandă" -#: wc-moldovaagroindbank.php:204 +#: wc-moldovaagroindbank.php:220 msgid "Order description that the customer will see on the bank payment page." msgstr "" "Descrierea comenzii afișată clientului pe pagina băncii în timpul plății." -#: wc-moldovaagroindbank.php:209 wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:225 wc-moldovaagroindbank.php:375 msgid "Connection Settings" msgstr "Setări conexiune" -#: wc-moldovaagroindbank.php:211 +#: wc-moldovaagroindbank.php:227 msgid "" "Use Basic settings to upload the certificate file received from the bank or " "configure manually using Advanced settings below." @@ -158,23 +167,23 @@ msgstr "" "Utilizați Setările de bază pentru a încărca fișierul de certificat primit de " "la bancă sau configurați manual utilizând Setările avansate de mai jos." -#: wc-moldovaagroindbank.php:212 +#: wc-moldovaagroindbank.php:228 msgid "Basic settings»" msgstr "Setări de bază»" -#: wc-moldovaagroindbank.php:213 +#: wc-moldovaagroindbank.php:229 msgid "or" msgstr "sau" -#: wc-moldovaagroindbank.php:214 +#: wc-moldovaagroindbank.php:230 msgid "Advanced settings»" msgstr "Setări avansate»" -#: wc-moldovaagroindbank.php:218 +#: wc-moldovaagroindbank.php:234 msgid "Client certificate (PFX)" msgstr "Certificat client (PFX)" -#: wc-moldovaagroindbank.php:220 +#: wc-moldovaagroindbank.php:236 msgid "" "Uploaded PFX certificate will be processed and converted to PEM format. " "Advanced settings will be overwritten and configured automatically." @@ -182,49 +191,49 @@ msgstr "" "Certificatul PFX încărcat va fi procesat și transformat în format PEM. " "Setările avansate vor fi suprascrise și configurate automat." -#: wc-moldovaagroindbank.php:228 wc-moldovaagroindbank.php:364 +#: wc-moldovaagroindbank.php:244 wc-moldovaagroindbank.php:380 msgid "Client certificate file" msgstr "Fișier certificat client" -#: wc-moldovaagroindbank.php:234 wc-moldovaagroindbank.php:370 +#: wc-moldovaagroindbank.php:250 wc-moldovaagroindbank.php:386 msgid "Private key file" msgstr "Fișier cheie privată" -#: wc-moldovaagroindbank.php:240 +#: wc-moldovaagroindbank.php:256 msgid "Certificate / private key passphrase" msgstr "Parolă certificat / cheie privată" -#: wc-moldovaagroindbank.php:242 +#: wc-moldovaagroindbank.php:258 msgid "Leave empty if certificate / private key is not encrypted." msgstr "Lăsați vid dacă certificatul / cheia privată nu sunt criptate." -#: wc-moldovaagroindbank.php:244 +#: wc-moldovaagroindbank.php:260 msgid "Optional" msgstr "Opțional" -#: wc-moldovaagroindbank.php:249 +#: wc-moldovaagroindbank.php:265 msgid "Payment Notification" msgstr "Notificare plăți" -#: wc-moldovaagroindbank.php:251 +#: wc-moldovaagroindbank.php:267 msgid "Provide this URL to the bank to enable online payment notifications." msgstr "" "Furnizați băncii această adresă URL pentru activare notificări de plată " "online." -#: wc-moldovaagroindbank.php:252 +#: wc-moldovaagroindbank.php:268 msgid "Callback URL" msgstr "URL apel invers (Callback URL)" -#: wc-moldovaagroindbank.php:349 +#: wc-moldovaagroindbank.php:365 msgid "Unsupported store currency" msgstr "Valuta magazinului nu este suportată" -#: wc-moldovaagroindbank.php:351 +#: wc-moldovaagroindbank.php:367 msgid "Supported currencies" msgstr "Valute suportate" -#: wc-moldovaagroindbank.php:358 +#: wc-moldovaagroindbank.php:374 msgid "" "See plugin documentation for installation " "instructions." @@ -232,11 +241,11 @@ msgstr "" "Consultați documentația modulului pentru instrucțiuni de instalare." -#: wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:375 msgid "Not configured" msgstr "Neconfigurat" -#: wc-moldovaagroindbank.php:396 +#: wc-moldovaagroindbank.php:412 msgid "" "%1$s is not properly configured. Verify plugin Connection " "Settings." @@ -244,7 +253,7 @@ msgstr "" "%1$s nu este configurat corect. Verificați Setările de " "conexiune." -#: wc-moldovaagroindbank.php:401 +#: wc-moldovaagroindbank.php:417 msgid "" "See %1$s settings page for log details and setup " "instructions." @@ -252,165 +261,165 @@ msgstr "" "Consultați pagina de setări %1$s pentru vizualizarea " "jurnalului și instrucțiuni de configurare." -#: wc-moldovaagroindbank.php:489 +#: wc-moldovaagroindbank.php:509 msgid "Certificate valid until %1$s" msgstr "Certificatul este valabil până la %1$s" -#: wc-moldovaagroindbank.php:496 +#: wc-moldovaagroindbank.php:516 msgid "Invalid certificate" msgstr "Certificat nevalid" -#: wc-moldovaagroindbank.php:499 +#: wc-moldovaagroindbank.php:519 msgid "Could not validate certificate" msgstr "Nu s-a putut valida certificatul" -#: wc-moldovaagroindbank.php:516 +#: wc-moldovaagroindbank.php:539 msgid "Invalid private key or wrong private key passphrase" msgstr "Cheie privată nevalidă sau parolă cheie privată incorectă" -#: wc-moldovaagroindbank.php:528 +#: wc-moldovaagroindbank.php:551 msgid "Private key does not correspond to client certificate" msgstr "Cheia privată nu corespunde certificatului client" -#: wc-moldovaagroindbank.php:533 +#: wc-moldovaagroindbank.php:556 msgid "Could not validate private key" msgstr "Nu s-a putut valida cheia privată" -#: wc-moldovaagroindbank.php:540 +#: wc-moldovaagroindbank.php:563 msgid "Invalid value" msgstr "Valoare nevalidă" -#: wc-moldovaagroindbank.php:543 +#: wc-moldovaagroindbank.php:566 msgid "File not found" msgstr "Fișierul nu a fost găsit" -#: wc-moldovaagroindbank.php:546 +#: wc-moldovaagroindbank.php:569 msgid "File not readable" msgstr "Fișierul nu poate fi citit" -#: wc-moldovaagroindbank.php:549 +#: wc-moldovaagroindbank.php:572 msgid "Could not validate file" msgstr "Nu s-a putut valida fișierul" -#: wc-moldovaagroindbank.php:569 +#: wc-moldovaagroindbank.php:592 msgid "Invalid certificate or wrong passphrase" msgstr "Certificat nevalid sau parolă incorectă" -#: wc-moldovaagroindbank.php:591 +#: wc-moldovaagroindbank.php:614 msgid "Unable to create temporary file: %1$s" msgstr "Nu s-a putut crea fișier temporar: %1$s" -#: wc-moldovaagroindbank.php:596 +#: wc-moldovaagroindbank.php:619 msgid "Unable to save data to temporary file: %1$s" msgstr "Nu s-au putut salva datele in fișier temporar: %1$s" -#: wc-moldovaagroindbank.php:677 +#: wc-moldovaagroindbank.php:700 msgid "Payment initiated via %1$s: %2$s" msgstr "Plată inițiată prin %1$s: %2$s" -#: wc-moldovaagroindbank.php:691 +#: wc-moldovaagroindbank.php:714 msgid "Payment initiation failed via %1$s: %2$s" msgstr "Inițierea plății prin %1$s a eșuat: %2$s" -#: wc-moldovaagroindbank.php:696 +#: wc-moldovaagroindbank.php:719 msgid "Order #%1$s payment initiation failed via %2$s." msgstr "Inițierea plății comenzii #%1$s prin %2$s a eșuat." -#: wc-moldovaagroindbank.php:732 wc-moldovaagroindbank.php:858 +#: wc-moldovaagroindbank.php:755 wc-moldovaagroindbank.php:881 msgid "Payment completed via %1$s: %2$s" msgstr "Plată finalizată prin %1$s: %2$s" -#: wc-moldovaagroindbank.php:744 +#: wc-moldovaagroindbank.php:767 msgid "Payment completion failed via %1$s: %2$s" msgstr "Finalizarea plății prin %1$s a eșuat: %2$s" -#: wc-moldovaagroindbank.php:764 +#: wc-moldovaagroindbank.php:787 msgid "%1$s Transaction ID not found for order #%2$s." msgstr "" "Identificatorul tranzacției (%1$s Transaction ID) nu a fost găsit pentru " "comanda #%2$s." -#: wc-moldovaagroindbank.php:774 +#: wc-moldovaagroindbank.php:797 msgid "Transaction status from %1$s for order #%2$s: %3$s" msgstr "Status tranzacție prin %1$s pentru comanda #%2$s: %3$s" -#: wc-moldovaagroindbank.php:782 +#: wc-moldovaagroindbank.php:805 msgid "Could not retrieve transaction status from %1$s for order #%2$s." msgstr "" "Verificarea statusului tranzacției prin %1$s pentru comanda #%2$s a eșuat." -#: wc-moldovaagroindbank.php:810 +#: wc-moldovaagroindbank.php:833 msgid "This %1$s Callback URL works and should not be called directly." msgstr "" "Această adresă de apel invers %1$s (Callback URL) funcționează și nu trebuie " "apelată direct." -#: wc-moldovaagroindbank.php:821 +#: wc-moldovaagroindbank.php:844 msgid "Payment verification failed: Transaction ID not received from %1$s." msgstr "" "Verificarea plății a eșuat: Transaction ID nu a fost primit de la %1$s." -#: wc-moldovaagroindbank.php:833 +#: wc-moldovaagroindbank.php:856 msgid "Order not found by Transaction ID: %1$s received from %2$s." msgstr "Comanda nu a fost gasită după Transaction ID: %1$s primit de la %2$s." -#: wc-moldovaagroindbank.php:859 +#: wc-moldovaagroindbank.php:882 msgid "Payment authorized via %1$s: %2$s" msgstr "Plată autorizată prin %1$s: %2$s" -#: wc-moldovaagroindbank.php:870 +#: wc-moldovaagroindbank.php:893 msgid "Order #%1$s paid successfully via %2$s." msgstr "Comanda #%1$s a fost platită cu succes prin %2$s." -#: wc-moldovaagroindbank.php:879 +#: wc-moldovaagroindbank.php:902 msgid "Payment failed via %1$s: %2$s" msgstr "Plată eșuată prin %1$s: %2$s" -#: wc-moldovaagroindbank.php:884 +#: wc-moldovaagroindbank.php:907 msgid "Order #%1$s payment failed via %2$s." msgstr "Plata comenzii #%1$s prin %2$s a eșuat." -#: wc-moldovaagroindbank.php:921 +#: wc-moldovaagroindbank.php:944 msgid "Refund of %1$s %2$s via %3$s approved: %4$s" msgstr "Rambursarea sumei de %1$s %2$s prin %3$s a fost aprobată: %4$s" -#: wc-moldovaagroindbank.php:930 +#: wc-moldovaagroindbank.php:953 msgid "Refund of %1$s %2$s via %3$s failed: %4$s" msgstr "Rambursarea sumei de %1$s %2$s prin %3$s a eșuat: %4$s" -#: wc-moldovaagroindbank.php:958 +#: wc-moldovaagroindbank.php:981 msgid "Close business day via %1$s succeeded: %2$s" msgstr "Închiderea zilei economice prin %1$s a fost efectuată cu succes: %2$s" -#: wc-moldovaagroindbank.php:965 +#: wc-moldovaagroindbank.php:988 msgid "%1$s is not properly configured." msgstr "%1$s nu este configurat corect." -#: wc-moldovaagroindbank.php:968 +#: wc-moldovaagroindbank.php:991 msgid "Close business day via %1$s failed: %2$s" msgstr "Închiderea zilei economice prin %1$s a eșuat: %2$s" -#: wc-moldovaagroindbank.php:1132 +#: wc-moldovaagroindbank.php:1153 msgid "Settings" msgstr "Setări" -#: wc-moldovaagroindbank.php:1147 +#: wc-moldovaagroindbank.php:1168 msgid "Complete %1$s transaction" msgstr "Finalizează tranzacția prin %1$s" -#: wc-moldovaagroindbank.php:1150 +#: wc-moldovaagroindbank.php:1171 msgid "Verify %1$s transaction" msgstr "Verifică tranzacția prin %1$s" -#: wc-moldovaagroindbank.php:1178 +#: wc-moldovaagroindbank.php:1199 msgid "Scheduled action %1$s is already registered." msgstr "Acțiunea programată %1$s este deja înregistrată." -#: wc-moldovaagroindbank.php:1191 +#: wc-moldovaagroindbank.php:1212 msgid "Registered scheduled action %1$s in timezone %2$s with ID %3$s." msgstr "" "Acțiunea programată %1$s a fost înregistrată în fusul orar %2$s cu ID %3$s." -#: wc-moldovaagroindbank.php:1198 +#: wc-moldovaagroindbank.php:1219 msgid "Unregistered scheduled action %1$s." msgstr "Acțiunea programată %1$s a fost anulată." diff --git a/languages/wc-moldovaagroindbank-ru_RU.mo b/languages/wc-moldovaagroindbank-ru_RU.mo index e5eea0407a1382532408029db64553cc3c4ebbb3..56c1285f8c8119c6dab083b695dae734f49f828f 100644 GIT binary patch delta 1650 zcmYk+X-HI26u|L2HEOn)=8`%suRSxL<7lQ?Bv>ibv_ehMf@3d{Oc@(n2%Ay^+lwhE zDuk$Lqg)cqmJbzCQt~F+w+{tj3wg{%*TPa8pmQCrs8=_!lxLEUoaoTdn+{r3sIh173yzBKI#}heeg6!;U$#k zZ-)9$FhY*{E;R5NW4PfrIelwdkGV2p&ioyH98#5{~)_BeFnFm$7a^(c`!iG#5#H2x_x-j7vfo@|_sHJFb# zQBq;;uT%jh;{;rezGxZ;XiUSCn2H}T1rxY974z{NZo%<5o-obB#kd5|VIzhQ2%h*9 z$^kAS*;2Pq=IKHyt0=RiU=+GgHn15-;8{$@F5HRlu?DM|-Hl&Sa=(z{ z$wC#l7&jnwtRA41#v`nv|D2oC&`H7V#!ZRD{~nDhCUip_ z+n&XR*|=S9z~eZI!l=PJC@Gpjek6D6aRr9)Zb`}v+=IJtI@$=QY_u5buo354h#JRU zM&CP5sjKq-KcI1%fxT2-4macwUkX)uh_{5O9!a0NfU1ve7wcvOBf>EsVk<)Zb)&C?8jH$O&nDk?bQv>E=INr$g?+6=hS=8DbcEnF39IX$y^0X>?YaJu}Ubtz}G@n;FTn zP)>;^ETv`+vW}D7%5yxx)&(h5^8;STDPF^AF6CKX%S&9% z%Zzzex~Vj#>e7e-dbpgA@K!#@M!v%p{DxJ$$c>!iN_H$PKDU+8AE0jpd5L@^Xmqe&1Gl+}N1XGxX##{xRUc@6JjEMS239ODg~;+s6jL);@gyZAGsW_oQeCfZ5$ zo1P3cp5}i20XH@ACk}Cuf}7^M)#Bf(@stW{;5eh$PB}!VXBjKaT1A9z9XoiC#!kl> z3;vGHoa235Q&Wu0vy6$S84>-PySdscu$F^)jhJYPUHpZyfO-jz$aFIX=x2ofAR{s# zQ99EM&6#Ey#q}p&VXapoCLCqFuBZ4iSKL%QKg{R#^CvW7pj=%sls)rqXAHcb8#u&n z&hTNDt4wpH-8{@!c_hxSDsE_$o%$!4<3EhzY_a+_zChRWX+qp zQH2pHI?u>mxja3_w;3tB>~NHI-m%U6gt5>+_!@J<`#>h8&$vT>!R;x1#V0rs?|;1n zu5-gQD_zKncZ9B*(v^A`6YpgFQC(u>I4j|CeG4~nAN%+zdwGQsx!#tP{^A>~Fi+lY ze$_uJ3@uSaFRHMp{tsEonfBqaY(pj$PG-k5nQes~Wi=JUKP>IPI@jDjT)%AZ;#^Z( jYg1ciU0dh+wYkRDTw!e4U75m<%Xih3PM-eq^kn)URZ*_k diff --git a/languages/wc-moldovaagroindbank-ru_RU.po b/languages/wc-moldovaagroindbank-ru_RU.po index f943075..c9bca80 100644 --- a/languages/wc-moldovaagroindbank-ru_RU.po +++ b/languages/wc-moldovaagroindbank-ru_RU.po @@ -3,11 +3,11 @@ msgid "" msgstr "" "Project-Id-Version: WooCommerce maib Moldova Agroindbank Payment Gateway " -"1.3.2\n" +"1.4.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wc-" "moldovaagroindbank\n" -"POT-Creation-Date: 2023-10-19 19:42+0300\n" -"PO-Revision-Date: 2023-10-19 19:43+0300\n" +"POT-Creation-Date: 2024-03-26 15:15+0200\n" +"PO-Revision-Date: 2024-03-26 15:22+0200\n" "Last-Translator: Alexander Minza \n" "Language-Team: \n" "Language: ru\n" @@ -16,9 +16,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 3.4\n" +"X-Generator: Poedit 3.4.2\n" #. Description of the plugin +#: wc-moldovaagroindbank.php msgid "" "Accept Visa and Mastercard directly on your store with the maib Moldova " "Agroindbank payment gateway for WooCommerce." @@ -26,62 +27,70 @@ msgstr "" "Принимайте оплату картами Visa и Mastercard прямо в своем магазине с помощью " "платежного шлюза maib Moldova Agroindbank для WooCommerce." -#: wc-moldovaagroindbank.php:138 +#: wc-moldovaagroindbank.php:55 +msgid "" +"maib Moldova Agroindbank payment gateway requires WooCommerce to be " +"installed and active." +msgstr "" +"Платежный шлюз maib Moldova Agroindbank требует установки и активации " +"плагина WooCommerce." + +#: wc-moldovaagroindbank.php:154 msgid "Enable/Disable" msgstr "Включить/Выключить" -#: wc-moldovaagroindbank.php:140 +#: wc-moldovaagroindbank.php:156 msgid "Enable this gateway" msgstr "Включить платежный шлюз" -#: wc-moldovaagroindbank.php:144 +#: wc-moldovaagroindbank.php:160 msgid "Title" msgstr "Наименование" -#: wc-moldovaagroindbank.php:146 +#: wc-moldovaagroindbank.php:162 msgid "Payment method title that the customer will see during checkout." msgstr "Заголовок, который видит пользователь в процессе оформления заказа." -#: wc-moldovaagroindbank.php:151 +#: wc-moldovaagroindbank.php:167 msgid "Description" msgstr "Описание" -#: wc-moldovaagroindbank.php:153 +#: wc-moldovaagroindbank.php:169 msgid "Payment method description that the customer will see during checkout." msgstr "" "Описание метода оплаты, которое клиент будет видеть при оформлении заказа." -#: wc-moldovaagroindbank.php:158 +#: wc-moldovaagroindbank.php:174 msgid "Logo" msgstr "Логотип" -#: wc-moldovaagroindbank.php:161 +#: wc-moldovaagroindbank.php:177 msgid "Payment method logo image that the customer will see during checkout." msgstr "" "Изображение логотипа способа оплаты, которое клиент будет видеть при " "оформлении заказа." -#: wc-moldovaagroindbank.php:165 +#: wc-moldovaagroindbank.php:181 msgid "Bank logo" msgstr "Логотип банка" -#: wc-moldovaagroindbank.php:166 +#: wc-moldovaagroindbank.php:182 msgid "Payment systems logos" msgstr "Логотипы платежных систем" -#: wc-moldovaagroindbank.php:167 +#: wc-moldovaagroindbank.php:183 msgid "No logo" msgstr "Без логотипа" -#: wc-moldovaagroindbank.php:172 +#: wc-moldovaagroindbank.php:188 msgid "Test mode" msgstr "Тестовый режим" -#: wc-moldovaagroindbank.php:174 +#: wc-moldovaagroindbank.php:190 msgid "Enabled" msgstr "Включен" -#: wc-moldovaagroindbank.php:175 +#: wc-moldovaagroindbank.php:191 msgid "" "Use Test or Live bank gateway to process the payments. Disable when ready to " "accept live payments." @@ -89,19 +98,19 @@ msgstr "" "Использовать Тестовый или Рабочий платежный шлюз на стороне банка. " "Отключить, когда будете готовы принимать реальные платежи." -#: wc-moldovaagroindbank.php:180 +#: wc-moldovaagroindbank.php:196 msgid "Debug mode" msgstr "Режим отладки" -#: wc-moldovaagroindbank.php:182 +#: wc-moldovaagroindbank.php:198 msgid "Enable logging" msgstr "Включить журналирование" -#: wc-moldovaagroindbank.php:184 +#: wc-moldovaagroindbank.php:200 msgid "View logs" msgstr "Просмотреть журналы" -#: wc-moldovaagroindbank.php:185 +#: wc-moldovaagroindbank.php:201 msgid "" "Save debug messages to the WooCommerce System Status logs. Note: this may " "log personal information. Use this for debugging purposes only and delete " @@ -111,11 +120,11 @@ msgstr "" "могут быть записаны персональные данные. Используйте эту опцию только для " "отладки и удалите журналы по завершению." -#: wc-moldovaagroindbank.php:189 +#: wc-moldovaagroindbank.php:205 msgid "Transaction type" msgstr "Тип транзакции" -#: wc-moldovaagroindbank.php:192 +#: wc-moldovaagroindbank.php:208 msgid "" "Select how transactions should be processed. Charge submits all transactions " "for settlement, Authorization simply authorizes the order total for capture " @@ -125,35 +134,35 @@ msgstr "" "транзакции в банк для расчета, Authorization просто авторизует в банке сумму " "заказа для последующего расчета." -#: wc-moldovaagroindbank.php:196 +#: wc-moldovaagroindbank.php:212 msgid "Charge" msgstr "Оплата (Charge)" -#: wc-moldovaagroindbank.php:197 +#: wc-moldovaagroindbank.php:213 msgid "Authorization" msgstr "Авторизация (Authorization)" -#: wc-moldovaagroindbank.php:201 +#: wc-moldovaagroindbank.php:217 msgid "Order description" msgstr "Описание заказа" -#: wc-moldovaagroindbank.php:203 +#: wc-moldovaagroindbank.php:219 msgid "" "Format: %1$s - Order ID, %2$s - Order items summary" msgstr "" "Формат: %1$s - номер заказа, %2$s - описание " "позиций заказа" -#: wc-moldovaagroindbank.php:204 +#: wc-moldovaagroindbank.php:220 msgid "Order description that the customer will see on the bank payment page." msgstr "" "Описание заказа, которое клиент будет видеть при оплате на странице банка." -#: wc-moldovaagroindbank.php:209 wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:225 wc-moldovaagroindbank.php:375 msgid "Connection Settings" msgstr "Настройки подключения" -#: wc-moldovaagroindbank.php:211 +#: wc-moldovaagroindbank.php:227 msgid "" "Use Basic settings to upload the certificate file received from the bank or " "configure manually using Advanced settings below." @@ -161,23 +170,23 @@ msgstr "" "Используйте Простые настройки для загрузки файла сертификата, полученного из " "банка, или установите вручную, используя Расширенные настройки ниже." -#: wc-moldovaagroindbank.php:212 +#: wc-moldovaagroindbank.php:228 msgid "Basic settings»" msgstr "Простые настройки»" -#: wc-moldovaagroindbank.php:213 +#: wc-moldovaagroindbank.php:229 msgid "or" msgstr "или" -#: wc-moldovaagroindbank.php:214 +#: wc-moldovaagroindbank.php:230 msgid "Advanced settings»" msgstr "Расширенные настройки»" -#: wc-moldovaagroindbank.php:218 +#: wc-moldovaagroindbank.php:234 msgid "Client certificate (PFX)" msgstr "Сертификата клиента (PFX)" -#: wc-moldovaagroindbank.php:220 +#: wc-moldovaagroindbank.php:236 msgid "" "Uploaded PFX certificate will be processed and converted to PEM format. " "Advanced settings will be overwritten and configured automatically." @@ -185,49 +194,49 @@ msgstr "" "Загруженный сертификат PFX будет обработан и преобразован в формат PEM. " "Расширенные настройки будут перезаписаны и заданы автоматически." -#: wc-moldovaagroindbank.php:228 wc-moldovaagroindbank.php:364 +#: wc-moldovaagroindbank.php:244 wc-moldovaagroindbank.php:380 msgid "Client certificate file" msgstr "Файл сертификата клиента" -#: wc-moldovaagroindbank.php:234 wc-moldovaagroindbank.php:370 +#: wc-moldovaagroindbank.php:250 wc-moldovaagroindbank.php:386 msgid "Private key file" msgstr "Файл закрытого ключа" -#: wc-moldovaagroindbank.php:240 +#: wc-moldovaagroindbank.php:256 msgid "Certificate / private key passphrase" msgstr "Пароль сертификата / закрытого ключа" -#: wc-moldovaagroindbank.php:242 +#: wc-moldovaagroindbank.php:258 msgid "Leave empty if certificate / private key is not encrypted." msgstr "Оставьте пустым, если сертификат / закрытый ключ не зашифрованы." -#: wc-moldovaagroindbank.php:244 +#: wc-moldovaagroindbank.php:260 msgid "Optional" msgstr "Необязательно" -#: wc-moldovaagroindbank.php:249 +#: wc-moldovaagroindbank.php:265 msgid "Payment Notification" msgstr "Уведомление об оплате" -#: wc-moldovaagroindbank.php:251 +#: wc-moldovaagroindbank.php:267 msgid "Provide this URL to the bank to enable online payment notifications." msgstr "" "Предоставьте этот URL-адрес банку для получения онлайн уведомлений о " "платежах." -#: wc-moldovaagroindbank.php:252 +#: wc-moldovaagroindbank.php:268 msgid "Callback URL" msgstr "URL обратного вызова (Callback URL)" -#: wc-moldovaagroindbank.php:349 +#: wc-moldovaagroindbank.php:365 msgid "Unsupported store currency" msgstr "Валюта магазина не поддерживается" -#: wc-moldovaagroindbank.php:351 +#: wc-moldovaagroindbank.php:367 msgid "Supported currencies" msgstr "Поддерживаемые валюты" -#: wc-moldovaagroindbank.php:358 +#: wc-moldovaagroindbank.php:374 msgid "" "See plugin documentation for installation " "instructions." @@ -235,11 +244,11 @@ msgstr "" "Перейдите на страницу документации плагина для инструкций по установке." -#: wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:375 msgid "Not configured" msgstr "Не настроено" -#: wc-moldovaagroindbank.php:396 +#: wc-moldovaagroindbank.php:412 msgid "" "%1$s is not properly configured. Verify plugin Connection " "Settings." @@ -247,7 +256,7 @@ msgstr "" "%1$s настроен неправильно. Проверьте Настройки подключения плагина." -#: wc-moldovaagroindbank.php:401 +#: wc-moldovaagroindbank.php:417 msgid "" "See %1$s settings page for log details and setup " "instructions." @@ -255,167 +264,167 @@ msgstr "" "Перейдите на страницу настроек %1$s для просмотра " "сведений журнала и инструкций по установке." -#: wc-moldovaagroindbank.php:489 +#: wc-moldovaagroindbank.php:509 msgid "Certificate valid until %1$s" msgstr "Сертификат действителен до %1$s" -#: wc-moldovaagroindbank.php:496 +#: wc-moldovaagroindbank.php:516 msgid "Invalid certificate" msgstr "Невалидный сертификат" -#: wc-moldovaagroindbank.php:499 +#: wc-moldovaagroindbank.php:519 msgid "Could not validate certificate" msgstr "Ошибка проверки сертификата" -#: wc-moldovaagroindbank.php:516 +#: wc-moldovaagroindbank.php:539 msgid "Invalid private key or wrong private key passphrase" msgstr "Невалидный закрытый ключ или неправильный пароль закрытого ключа" -#: wc-moldovaagroindbank.php:528 +#: wc-moldovaagroindbank.php:551 msgid "Private key does not correspond to client certificate" msgstr "Закрытый ключ не соответствует сертификату клиента" -#: wc-moldovaagroindbank.php:533 +#: wc-moldovaagroindbank.php:556 msgid "Could not validate private key" msgstr "Ошибка проверки закрытого ключа" -#: wc-moldovaagroindbank.php:540 +#: wc-moldovaagroindbank.php:563 msgid "Invalid value" msgstr "Недопустимое значение" -#: wc-moldovaagroindbank.php:543 +#: wc-moldovaagroindbank.php:566 msgid "File not found" msgstr "Файл не найден" -#: wc-moldovaagroindbank.php:546 +#: wc-moldovaagroindbank.php:569 msgid "File not readable" msgstr "Ошибка чтения файла" -#: wc-moldovaagroindbank.php:549 +#: wc-moldovaagroindbank.php:572 msgid "Could not validate file" msgstr "Ошибка проверки файла" -#: wc-moldovaagroindbank.php:569 +#: wc-moldovaagroindbank.php:592 msgid "Invalid certificate or wrong passphrase" msgstr "Невалидный сертификат или неправильный пароль" -#: wc-moldovaagroindbank.php:591 +#: wc-moldovaagroindbank.php:614 msgid "Unable to create temporary file: %1$s" msgstr "Ошибка создания временного файла: %1$s" -#: wc-moldovaagroindbank.php:596 +#: wc-moldovaagroindbank.php:619 msgid "Unable to save data to temporary file: %1$s" msgstr "Ошибка записи данных во временный файл: %1$s" -#: wc-moldovaagroindbank.php:677 +#: wc-moldovaagroindbank.php:700 msgid "Payment initiated via %1$s: %2$s" msgstr "Платеж инициирован через %1$s: %2$s" -#: wc-moldovaagroindbank.php:691 +#: wc-moldovaagroindbank.php:714 msgid "Payment initiation failed via %1$s: %2$s" msgstr "Ошибка инициирования платежа через %1$s: %2$s" -#: wc-moldovaagroindbank.php:696 +#: wc-moldovaagroindbank.php:719 msgid "Order #%1$s payment initiation failed via %2$s." msgstr "Ошибка инициирования оплаты заказа #%1$s через %2$s." -#: wc-moldovaagroindbank.php:732 wc-moldovaagroindbank.php:858 +#: wc-moldovaagroindbank.php:755 wc-moldovaagroindbank.php:881 msgid "Payment completed via %1$s: %2$s" msgstr "Платеж проведен через %1$s: %2$s" -#: wc-moldovaagroindbank.php:744 +#: wc-moldovaagroindbank.php:767 msgid "Payment completion failed via %1$s: %2$s" msgstr "Ошибка проведения платежа через %1$s: %2$s" -#: wc-moldovaagroindbank.php:764 +#: wc-moldovaagroindbank.php:787 msgid "%1$s Transaction ID not found for order #%2$s." msgstr "" "Идентификатор транзакции (%1$s Transaction ID) не найден для заказа #%2$s." -#: wc-moldovaagroindbank.php:774 +#: wc-moldovaagroindbank.php:797 msgid "Transaction status from %1$s for order #%2$s: %3$s" msgstr "Статус платежа через %1$s для заказа #%2$s: %3$s" -#: wc-moldovaagroindbank.php:782 +#: wc-moldovaagroindbank.php:805 msgid "Could not retrieve transaction status from %1$s for order #%2$s." msgstr "Ошибка запроса статуса платежа через %1$s для заказа #%2$s." -#: wc-moldovaagroindbank.php:810 +#: wc-moldovaagroindbank.php:833 msgid "This %1$s Callback URL works and should not be called directly." msgstr "" "Этот URL обратного вызова %1$s (Callback URL) работает и не должен " "вызываться напрямую." -#: wc-moldovaagroindbank.php:821 +#: wc-moldovaagroindbank.php:844 msgid "Payment verification failed: Transaction ID not received from %1$s." msgstr "" "Ошибка проверки платежа: идентификатор транзакции (Transaction ID) не " "получен от %1$s." -#: wc-moldovaagroindbank.php:833 +#: wc-moldovaagroindbank.php:856 msgid "Order not found by Transaction ID: %1$s received from %2$s." msgstr "" "Заказ не найден по идентификатору транзакции (Transaction ID): %1$s " "полученному от %2$s." -#: wc-moldovaagroindbank.php:859 +#: wc-moldovaagroindbank.php:882 msgid "Payment authorized via %1$s: %2$s" msgstr "Платеж авторизован через %1$s: %2$s" -#: wc-moldovaagroindbank.php:870 +#: wc-moldovaagroindbank.php:893 msgid "Order #%1$s paid successfully via %2$s." msgstr "Заказ #%1$s успешно оплачен через %2$s." -#: wc-moldovaagroindbank.php:879 +#: wc-moldovaagroindbank.php:902 msgid "Payment failed via %1$s: %2$s" msgstr "Ошибка платежа через %1$s: %2$s" -#: wc-moldovaagroindbank.php:884 +#: wc-moldovaagroindbank.php:907 msgid "Order #%1$s payment failed via %2$s." msgstr "Ошибка оплаты заказа #%1$s через %2$s." -#: wc-moldovaagroindbank.php:921 +#: wc-moldovaagroindbank.php:944 msgid "Refund of %1$s %2$s via %3$s approved: %4$s" msgstr "Возврат %1$s %2$s через %3$s подтвержден: %4$s" -#: wc-moldovaagroindbank.php:930 +#: wc-moldovaagroindbank.php:953 msgid "Refund of %1$s %2$s via %3$s failed: %4$s" msgstr "Ошибка возврата %1$s %2$s через %3$s: %4$s" -#: wc-moldovaagroindbank.php:958 +#: wc-moldovaagroindbank.php:981 msgid "Close business day via %1$s succeeded: %2$s" msgstr "Завершение бизнес-дня через %1$s прошло успешно: %2$s" -#: wc-moldovaagroindbank.php:965 +#: wc-moldovaagroindbank.php:988 msgid "%1$s is not properly configured." msgstr "%1$s настроен неправильно." -#: wc-moldovaagroindbank.php:968 +#: wc-moldovaagroindbank.php:991 msgid "Close business day via %1$s failed: %2$s" msgstr "Ошибка завершения бизнес-дня через %1$s: %2$s" -#: wc-moldovaagroindbank.php:1132 +#: wc-moldovaagroindbank.php:1153 msgid "Settings" msgstr "Настройки" -#: wc-moldovaagroindbank.php:1147 +#: wc-moldovaagroindbank.php:1168 msgid "Complete %1$s transaction" msgstr "Провести платеж через %1$s" -#: wc-moldovaagroindbank.php:1150 +#: wc-moldovaagroindbank.php:1171 msgid "Verify %1$s transaction" msgstr "Проверить платеж через %1$s" -#: wc-moldovaagroindbank.php:1178 +#: wc-moldovaagroindbank.php:1199 msgid "Scheduled action %1$s is already registered." msgstr "Запланированное действие %1$s уже зарегистрировано." -#: wc-moldovaagroindbank.php:1191 +#: wc-moldovaagroindbank.php:1212 msgid "Registered scheduled action %1$s in timezone %2$s with ID %3$s." msgstr "" "Зарегистрировано запланированное действие %1$s в часовом поясе %2$s с ID " "%3$s." -#: wc-moldovaagroindbank.php:1198 +#: wc-moldovaagroindbank.php:1219 msgid "Unregistered scheduled action %1$s." msgstr "Запланированное действие %1$s отменено." diff --git a/languages/wc-moldovaagroindbank.pot b/languages/wc-moldovaagroindbank.pot index 374ff97..e5da527 100644 --- a/languages/wc-moldovaagroindbank.pot +++ b/languages/wc-moldovaagroindbank.pot @@ -1,359 +1,364 @@ -# Copyright (C) 2023 Alexander Minza +# Copyright (C) 2024 Alexander Minza # This file is distributed under the GPLv3 or later. #, fuzzy msgid "" msgstr "" -"Project-Id-Version: WooCommerce maib Moldova Agroindbank Payment Gateway 1.3.2\n" +"Project-Id-Version: WooCommerce maib Moldova Agroindbank Payment Gateway 1.4.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wc-moldovaagroindbank\n" -"POT-Creation-Date: 2023-10-19 19:42+0300\n" +"POT-Creation-Date: 2024-03-26 15:15+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.4\n" +"X-Generator: Poedit 3.4.2\n" #. Description of the plugin +#: wc-moldovaagroindbank.php msgid "Accept Visa and Mastercard directly on your store with the maib Moldova Agroindbank payment gateway for WooCommerce." msgstr "" -#: wc-moldovaagroindbank.php:138 +#: wc-moldovaagroindbank.php:55 +msgid "maib Moldova Agroindbank payment gateway requires WooCommerce to be installed and active." +msgstr "" + +#: wc-moldovaagroindbank.php:154 msgid "Enable/Disable" msgstr "" -#: wc-moldovaagroindbank.php:140 +#: wc-moldovaagroindbank.php:156 msgid "Enable this gateway" msgstr "" -#: wc-moldovaagroindbank.php:144 +#: wc-moldovaagroindbank.php:160 msgid "Title" msgstr "" -#: wc-moldovaagroindbank.php:146 +#: wc-moldovaagroindbank.php:162 msgid "Payment method title that the customer will see during checkout." msgstr "" -#: wc-moldovaagroindbank.php:151 +#: wc-moldovaagroindbank.php:167 msgid "Description" msgstr "" -#: wc-moldovaagroindbank.php:153 +#: wc-moldovaagroindbank.php:169 msgid "Payment method description that the customer will see during checkout." msgstr "" -#: wc-moldovaagroindbank.php:158 +#: wc-moldovaagroindbank.php:174 msgid "Logo" msgstr "" -#: wc-moldovaagroindbank.php:161 +#: wc-moldovaagroindbank.php:177 msgid "Payment method logo image that the customer will see during checkout." msgstr "" -#: wc-moldovaagroindbank.php:165 +#: wc-moldovaagroindbank.php:181 msgid "Bank logo" msgstr "" -#: wc-moldovaagroindbank.php:166 +#: wc-moldovaagroindbank.php:182 msgid "Payment systems logos" msgstr "" -#: wc-moldovaagroindbank.php:167 +#: wc-moldovaagroindbank.php:183 msgid "No logo" msgstr "" -#: wc-moldovaagroindbank.php:172 +#: wc-moldovaagroindbank.php:188 msgid "Test mode" msgstr "" -#: wc-moldovaagroindbank.php:174 +#: wc-moldovaagroindbank.php:190 msgid "Enabled" msgstr "" -#: wc-moldovaagroindbank.php:175 +#: wc-moldovaagroindbank.php:191 msgid "Use Test or Live bank gateway to process the payments. Disable when ready to accept live payments." msgstr "" -#: wc-moldovaagroindbank.php:180 +#: wc-moldovaagroindbank.php:196 msgid "Debug mode" msgstr "" -#: wc-moldovaagroindbank.php:182 +#: wc-moldovaagroindbank.php:198 msgid "Enable logging" msgstr "" -#: wc-moldovaagroindbank.php:184 +#: wc-moldovaagroindbank.php:200 msgid "View logs" msgstr "" -#: wc-moldovaagroindbank.php:185 +#: wc-moldovaagroindbank.php:201 msgid "Save debug messages to the WooCommerce System Status logs. Note: this may log personal information. Use this for debugging purposes only and delete the logs when finished." msgstr "" -#: wc-moldovaagroindbank.php:189 +#: wc-moldovaagroindbank.php:205 msgid "Transaction type" msgstr "" -#: wc-moldovaagroindbank.php:192 +#: wc-moldovaagroindbank.php:208 msgid "Select how transactions should be processed. Charge submits all transactions for settlement, Authorization simply authorizes the order total for capture later." msgstr "" -#: wc-moldovaagroindbank.php:196 +#: wc-moldovaagroindbank.php:212 msgid "Charge" msgstr "" -#: wc-moldovaagroindbank.php:197 +#: wc-moldovaagroindbank.php:213 msgid "Authorization" msgstr "" -#: wc-moldovaagroindbank.php:201 +#: wc-moldovaagroindbank.php:217 msgid "Order description" msgstr "" -#: wc-moldovaagroindbank.php:203 +#: wc-moldovaagroindbank.php:219 msgid "Format: %1$s - Order ID, %2$s - Order items summary" msgstr "" -#: wc-moldovaagroindbank.php:204 +#: wc-moldovaagroindbank.php:220 msgid "Order description that the customer will see on the bank payment page." msgstr "" -#: wc-moldovaagroindbank.php:209 wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:225 wc-moldovaagroindbank.php:375 msgid "Connection Settings" msgstr "" -#: wc-moldovaagroindbank.php:211 +#: wc-moldovaagroindbank.php:227 msgid "Use Basic settings to upload the certificate file received from the bank or configure manually using Advanced settings below." msgstr "" -#: wc-moldovaagroindbank.php:212 +#: wc-moldovaagroindbank.php:228 msgid "Basic settings»" msgstr "" -#: wc-moldovaagroindbank.php:213 +#: wc-moldovaagroindbank.php:229 msgid "or" msgstr "" -#: wc-moldovaagroindbank.php:214 +#: wc-moldovaagroindbank.php:230 msgid "Advanced settings»" msgstr "" -#: wc-moldovaagroindbank.php:218 +#: wc-moldovaagroindbank.php:234 msgid "Client certificate (PFX)" msgstr "" -#: wc-moldovaagroindbank.php:220 +#: wc-moldovaagroindbank.php:236 msgid "Uploaded PFX certificate will be processed and converted to PEM format. Advanced settings will be overwritten and configured automatically." msgstr "" -#: wc-moldovaagroindbank.php:228 wc-moldovaagroindbank.php:364 +#: wc-moldovaagroindbank.php:244 wc-moldovaagroindbank.php:380 msgid "Client certificate file" msgstr "" -#: wc-moldovaagroindbank.php:234 wc-moldovaagroindbank.php:370 +#: wc-moldovaagroindbank.php:250 wc-moldovaagroindbank.php:386 msgid "Private key file" msgstr "" -#: wc-moldovaagroindbank.php:240 +#: wc-moldovaagroindbank.php:256 msgid "Certificate / private key passphrase" msgstr "" -#: wc-moldovaagroindbank.php:242 +#: wc-moldovaagroindbank.php:258 msgid "Leave empty if certificate / private key is not encrypted." msgstr "" -#: wc-moldovaagroindbank.php:244 +#: wc-moldovaagroindbank.php:260 msgid "Optional" msgstr "" -#: wc-moldovaagroindbank.php:249 +#: wc-moldovaagroindbank.php:265 msgid "Payment Notification" msgstr "" -#: wc-moldovaagroindbank.php:251 +#: wc-moldovaagroindbank.php:267 msgid "Provide this URL to the bank to enable online payment notifications." msgstr "" -#: wc-moldovaagroindbank.php:252 +#: wc-moldovaagroindbank.php:268 msgid "Callback URL" msgstr "" -#: wc-moldovaagroindbank.php:349 +#: wc-moldovaagroindbank.php:365 msgid "Unsupported store currency" msgstr "" -#: wc-moldovaagroindbank.php:351 +#: wc-moldovaagroindbank.php:367 msgid "Supported currencies" msgstr "" -#: wc-moldovaagroindbank.php:358 +#: wc-moldovaagroindbank.php:374 msgid "See plugin documentation for installation instructions." msgstr "" -#: wc-moldovaagroindbank.php:359 +#: wc-moldovaagroindbank.php:375 msgid "Not configured" msgstr "" -#: wc-moldovaagroindbank.php:396 +#: wc-moldovaagroindbank.php:412 msgid "%1$s is not properly configured. Verify plugin Connection Settings." msgstr "" -#: wc-moldovaagroindbank.php:401 +#: wc-moldovaagroindbank.php:417 msgid "See %1$s settings page for log details and setup instructions." msgstr "" -#: wc-moldovaagroindbank.php:489 +#: wc-moldovaagroindbank.php:509 msgid "Certificate valid until %1$s" msgstr "" -#: wc-moldovaagroindbank.php:496 +#: wc-moldovaagroindbank.php:516 msgid "Invalid certificate" msgstr "" -#: wc-moldovaagroindbank.php:499 +#: wc-moldovaagroindbank.php:519 msgid "Could not validate certificate" msgstr "" -#: wc-moldovaagroindbank.php:516 +#: wc-moldovaagroindbank.php:539 msgid "Invalid private key or wrong private key passphrase" msgstr "" -#: wc-moldovaagroindbank.php:528 +#: wc-moldovaagroindbank.php:551 msgid "Private key does not correspond to client certificate" msgstr "" -#: wc-moldovaagroindbank.php:533 +#: wc-moldovaagroindbank.php:556 msgid "Could not validate private key" msgstr "" -#: wc-moldovaagroindbank.php:540 +#: wc-moldovaagroindbank.php:563 msgid "Invalid value" msgstr "" -#: wc-moldovaagroindbank.php:543 +#: wc-moldovaagroindbank.php:566 msgid "File not found" msgstr "" -#: wc-moldovaagroindbank.php:546 +#: wc-moldovaagroindbank.php:569 msgid "File not readable" msgstr "" -#: wc-moldovaagroindbank.php:549 +#: wc-moldovaagroindbank.php:572 msgid "Could not validate file" msgstr "" -#: wc-moldovaagroindbank.php:569 +#: wc-moldovaagroindbank.php:592 msgid "Invalid certificate or wrong passphrase" msgstr "" -#: wc-moldovaagroindbank.php:591 +#: wc-moldovaagroindbank.php:614 msgid "Unable to create temporary file: %1$s" msgstr "" -#: wc-moldovaagroindbank.php:596 +#: wc-moldovaagroindbank.php:619 msgid "Unable to save data to temporary file: %1$s" msgstr "" -#: wc-moldovaagroindbank.php:677 +#: wc-moldovaagroindbank.php:700 msgid "Payment initiated via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:691 +#: wc-moldovaagroindbank.php:714 msgid "Payment initiation failed via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:696 +#: wc-moldovaagroindbank.php:719 msgid "Order #%1$s payment initiation failed via %2$s." msgstr "" -#: wc-moldovaagroindbank.php:732 wc-moldovaagroindbank.php:858 +#: wc-moldovaagroindbank.php:755 wc-moldovaagroindbank.php:881 msgid "Payment completed via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:744 +#: wc-moldovaagroindbank.php:767 msgid "Payment completion failed via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:764 +#: wc-moldovaagroindbank.php:787 msgid "%1$s Transaction ID not found for order #%2$s." msgstr "" -#: wc-moldovaagroindbank.php:774 +#: wc-moldovaagroindbank.php:797 msgid "Transaction status from %1$s for order #%2$s: %3$s" msgstr "" -#: wc-moldovaagroindbank.php:782 +#: wc-moldovaagroindbank.php:805 msgid "Could not retrieve transaction status from %1$s for order #%2$s." msgstr "" -#: wc-moldovaagroindbank.php:810 +#: wc-moldovaagroindbank.php:833 msgid "This %1$s Callback URL works and should not be called directly." msgstr "" -#: wc-moldovaagroindbank.php:821 +#: wc-moldovaagroindbank.php:844 msgid "Payment verification failed: Transaction ID not received from %1$s." msgstr "" -#: wc-moldovaagroindbank.php:833 +#: wc-moldovaagroindbank.php:856 msgid "Order not found by Transaction ID: %1$s received from %2$s." msgstr "" -#: wc-moldovaagroindbank.php:859 +#: wc-moldovaagroindbank.php:882 msgid "Payment authorized via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:870 +#: wc-moldovaagroindbank.php:893 msgid "Order #%1$s paid successfully via %2$s." msgstr "" -#: wc-moldovaagroindbank.php:879 +#: wc-moldovaagroindbank.php:902 msgid "Payment failed via %1$s: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:884 +#: wc-moldovaagroindbank.php:907 msgid "Order #%1$s payment failed via %2$s." msgstr "" -#: wc-moldovaagroindbank.php:921 +#: wc-moldovaagroindbank.php:944 msgid "Refund of %1$s %2$s via %3$s approved: %4$s" msgstr "" -#: wc-moldovaagroindbank.php:930 +#: wc-moldovaagroindbank.php:953 msgid "Refund of %1$s %2$s via %3$s failed: %4$s" msgstr "" -#: wc-moldovaagroindbank.php:958 +#: wc-moldovaagroindbank.php:981 msgid "Close business day via %1$s succeeded: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:965 +#: wc-moldovaagroindbank.php:988 msgid "%1$s is not properly configured." msgstr "" -#: wc-moldovaagroindbank.php:968 +#: wc-moldovaagroindbank.php:991 msgid "Close business day via %1$s failed: %2$s" msgstr "" -#: wc-moldovaagroindbank.php:1132 +#: wc-moldovaagroindbank.php:1153 msgid "Settings" msgstr "" -#: wc-moldovaagroindbank.php:1147 +#: wc-moldovaagroindbank.php:1168 msgid "Complete %1$s transaction" msgstr "" -#: wc-moldovaagroindbank.php:1150 +#: wc-moldovaagroindbank.php:1171 msgid "Verify %1$s transaction" msgstr "" -#: wc-moldovaagroindbank.php:1178 +#: wc-moldovaagroindbank.php:1199 msgid "Scheduled action %1$s is already registered." msgstr "" -#: wc-moldovaagroindbank.php:1191 +#: wc-moldovaagroindbank.php:1212 msgid "Registered scheduled action %1$s in timezone %2$s with ID %3$s." msgstr "" -#: wc-moldovaagroindbank.php:1198 +#: wc-moldovaagroindbank.php:1219 msgid "Unregistered scheduled action %1$s." msgstr "" diff --git a/readme.txt b/readme.txt index afc3aa3..65c7f39 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: alexminza Donate link: https://www.revolut.me/alexminza Tags: WooCommerce, Moldova, Agroindbank, maib, bank, payment, gateway, visa, mastercard, credit card Requires at least: 4.8 -Tested up to: 6.3.2 +Tested up to: 6.5.3 Stable tag: trunk Requires PHP: 7.2 License: GPLv3 or later @@ -21,6 +21,7 @@ Accept Visa and Mastercard directly on your store with the maib Moldova Agroindb * Reverse transactions – partial or complete refunds * Admin order actions – complete authorized transaction * Close business day scheduled action +* Supports WooCommerce [block-based checkout experience](https://woo.com/checkout-blocks/) * Free to use – [Open-source GPL-3.0 license on GitHub](https://github.com/alexminza/wc-moldovaagroindbank) = Getting Started = @@ -89,6 +90,9 @@ You can also contribute to the plugin by translating it. Simply visit [translate See [wc-moldovaagroindbank project releases on GitHub](https://github.com/alexminza/wc-moldovaagroindbank/releases) for details. += 1.4.0 = +Added support for WooCommerce [Cart and Checkout Blocks](https://woo.com/document/cart-checkout-blocks-status/). + = 1.3.2 = Added support for WooCommerce [High-Performance Order Storage (HPOS)](https://woocommerce.com/document/high-performance-order-storage/). @@ -162,15 +166,8 @@ Initial release == Upgrade Notice == -= 1.3.2 = -Added support for WooCommerce [High-Performance Order Storage (HPOS)](https://woocommerce.com/document/high-performance-order-storage/) - -= 1.3.1 = -Updated [MAIB Payment PHP SDK](https://github.com/maibank/maibapi) to fix Windows platform compatibility += 1.4.0 = +Added support for WooCommerce [Cart and Checkout Blocks](https://woo.com/document/cart-checkout-blocks-status/). -= 1.3.0 = -* Migrated to the official MAIB Payment PHP SDK -* Minimum supported PHP version changed to 7.2 - -= 1.2.4 = -Updated maib test payment gateway URL and visual identity += 1.3.2 = +Added support for WooCommerce [High-Performance Order Storage (HPOS)](https://woocommerce.com/document/high-performance-order-storage/). diff --git a/wc-moldovaagroindbank-wbc.php b/wc-moldovaagroindbank-wbc.php new file mode 100644 index 0000000..0ee6893 --- /dev/null +++ b/wc-moldovaagroindbank-wbc.php @@ -0,0 +1,87 @@ +settings = get_option("woocommerce_{$this->name}_settings", []); + + $gateways = WC()->payment_gateways->payment_gateways(); + $this->gateway = $gateways[$this->name]; + } + + /** + * Returns if this payment method should be active. If false, the scripts will not be enqueued. + * + * @return boolean + */ + public function is_active() + { + return $this->gateway->is_available(); + } + + /** + * Returns an array of scripts/handles to be registered for this payment method. + * + * @return array + */ + public function get_payment_method_script_handles() + { + $script_id = 'wc-moldovaagroindbank-block-frontend'; + + wp_register_script( + $script_id, + plugin_dir_url(__FILE__) . 'assets/js/blocks.js', + [ + 'wc-blocks-registry', + 'wc-settings', + 'wp-element', + 'wp-html-entities', + 'wp-i18n', + ], + null, + true + ); + + if (function_exists('wp_set_script_translations')) { + wp_set_script_translations($script_id, 'wc-moldovaagroindbank', dirname(plugin_basename(__FILE__)) . '/languages'); + } + + return [$script_id]; + } + + /** + * Returns an array of key=>value pairs of data made available to the payment methods script. + * + * @return array + */ + public function get_payment_method_data() + { + return [ + 'id' => $this->gateway->id, + 'title' => $this->gateway->title, + 'description' => $this->gateway->description, + 'icon' => $this->gateway->icon, + 'supports' => array_filter($this->gateway->supports, [$this->gateway, 'supports']) + ]; + } +} diff --git a/wc-moldovaagroindbank.php b/wc-moldovaagroindbank.php index 2a360f8..37d7fa6 100644 --- a/wc-moldovaagroindbank.php +++ b/wc-moldovaagroindbank.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce maib Moldova Agroindbank Payment Gateway * Description: Accept Visa and Mastercard directly on your store with the maib Moldova Agroindbank payment gateway for WooCommerce. * Plugin URI: https://github.com/alexminza/wc-moldovaagroindbank - * Version: 1.3.2 + * Version: 1.4.0 * Author: Alexander Minza * Author URI: https://profiles.wordpress.org/alexminza * Developer: Alexander Minza @@ -14,9 +14,10 @@ * License URI: https://www.gnu.org/licenses/gpl-3.0.html * Requires PHP: 7.2 * Requires at least: 4.8 - * Tested up to: 6.3.2 + * Tested up to: 6.5.3 * WC requires at least: 3.3 - * WC tested up to: 8.2.1 + * WC tested up to: 8.9.1 + * Requires Plugins: woocommerce */ //Looking to contribute code to this plugin? Go ahead and fork the repository over at GitHub https://github.com/alexminza/wc-moldovaagroindbank @@ -36,14 +37,25 @@ use GuzzleHttp\MessageFormatter; use Maib\MaibApi\MaibClient; -add_action('plugins_loaded', 'woocommerce_moldovaagroindbank_init', 0); +add_action('plugins_loaded', 'woocommerce_moldovaagroindbank_plugins_loaded', 0); -function woocommerce_moldovaagroindbank_init() { - if(!class_exists('WC_Payment_Gateway')) +function woocommerce_moldovaagroindbank_plugins_loaded() { + load_plugin_textdomain('wc-moldovaagroindbank', false, dirname(plugin_basename(__FILE__)) . '/languages'); + + //https://docs.woocommerce.com/document/query-whether-woocommerce-is-activated/ + if(!class_exists('WooCommerce')) { + add_action('admin_notices', 'woocommerce_moldovaagroindbank_missing_wc_notice'); return; + } - load_plugin_textdomain('wc-moldovaagroindbank', false, dirname(plugin_basename(__FILE__)) . '/languages'); + woocommerce_moldovaagroindbank_init(); +} + +function woocommerce_moldovaagroindbank_missing_wc_notice() { + echo sprintf('

%1$s

', __('maib Moldova Agroindbank payment gateway requires WooCommerce to be installed and active.', 'wc-moldovaagroindbank')); +} +function woocommerce_moldovaagroindbank_init() { class WC_MoldovaAgroindbank extends WC_Payment_Gateway { #region Constants const MOD_ID = 'moldovaagroindbank'; @@ -98,17 +110,20 @@ public function __construct() { $this->supports = array('products', 'refunds'); #region Initialize user set variables - $this->enabled = $this->get_option('enabled', 'yes'); + $this->enabled = $this->get_option('enabled', 'no'); $this->title = $this->get_option('title', $this->method_title); $this->description = $this->get_option('description'); $this->logo_type = $this->get_option('logo_type', self::LOGO_TYPE_BANK); $this->icon = apply_filters('woocommerce_moldovaagroindbank_icon', self::get_logo_icon($this->logo_type)); - $this->testmode = 'yes' === $this->get_option('testmode', 'no'); - $this->debug = 'yes' === $this->get_option('debug', 'no'); + $this->testmode = wc_string_to_bool($this->get_option('testmode', 'no')); + $this->debug = wc_string_to_bool($this->get_option('debug', 'no')); $this->logger = new WC_Logger(null, $this->debug ? WC_Log_Levels::DEBUG : WC_Log_Levels::INFO); + if($this->testmode) + $this->description = $this->get_test_message($this->description); + $this->transaction_type = $this->get_option('transaction_type', self::TRANSACTION_TYPE_CHARGE); $this->order_template = $this->get_option('order_template', self::ORDER_TEMPLATE); @@ -128,9 +143,9 @@ public function __construct() { #endregion if(is_admin()) - add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); + add_action("woocommerce_update_options_payment_gateways_{$this->id}", array($this, 'process_admin_options')); - add_action('woocommerce_api_wc_' . $this->id, array($this, 'check_response')); + add_action("woocommerce_api_" . strtolower(get_class()), array($this, 'check_response')); } public function init_form_fields() { @@ -262,10 +277,10 @@ protected static function get_logo_icon($logo_type) { switch($logo_type) { case self::LOGO_TYPE_BANK: - return $plugin_dir . 'assets/img/maib.png'; + return "{$plugin_dir}assets/img/maib.png"; break; case self::LOGO_TYPE_SYSTEMS: - return $plugin_dir . 'assets/img/paymentsystems.png'; + return "{$plugin_dir}assets/img/paymentsystems.png"; break; case self::LOGO_TYPE_NONE: return ''; @@ -481,7 +496,11 @@ protected function validate_certificate($certFile) { if(false !== $cert) { $certInfo = openssl_x509_parse($cert); - openssl_x509_free($cert); + + //https://php.watch/versions/8.0/OpenSSL-resource + //https://stackoverflow.com/questions/69559775/php-openssl-free-key-deprecated + if(\PHP_VERSION_ID < 80000) + openssl_x509_free($cert); if(false !== $certInfo) { $valid_until = $certInfo['validTo_time_t']; @@ -511,7 +530,10 @@ protected function validate_private_key($certFile, $keyFile, $keyPassphrase) { $privateKey = openssl_pkey_get_private($keyData, $keyPassphrase); if(false !== $privateKey) { - openssl_pkey_free($privateKey); + //https://php.watch/versions/8.0/OpenSSL-resource + //https://stackoverflow.com/questions/69559775/php-openssl-free-key-deprecated + if(\PHP_VERSION_ID < 80000) + openssl_pkey_free($privateKey); } else { $this->log_openssl_errors(); return __('Invalid private key or wrong private key passphrase', self::MOD_TEXT_DOMAIN); @@ -676,7 +698,7 @@ public function process_payment($order_id) { #endregion $message = sprintf(__('Payment initiated via %1$s: %2$s', self::MOD_TEXT_DOMAIN), $this->method_title, self::print_http_query($register_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::INFO); $order->add_order_note($message); @@ -690,7 +712,7 @@ public function process_payment($order_id) { } $message = sprintf(__('Payment initiation failed via %1$s: %2$s', self::MOD_TEXT_DOMAIN), $this->method_title, self::print_http_query($register_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $order->add_order_note($message); $this->log($message, WC_Log_Levels::ERROR); @@ -731,7 +753,7 @@ public function complete_transaction($order) { $result = $complete_result[self::MAIB_RESULT]; if($result === self::MAIB_RESULT_OK) { $message = sprintf(__('Payment completed via %1$s: %2$s', self::MOD_TEXT_DOMAIN), $this->method_title, self::print_http_query($complete_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::INFO); $order->add_order_note($message); @@ -743,7 +765,7 @@ public function complete_transaction($order) { } $message = sprintf(__('Payment completion failed via %1$s: %2$s', self::MOD_TEXT_DOMAIN), $this->method_title, self::print_http_query($complete_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $order->add_order_note($message); $this->log($message, WC_Log_Levels::ERROR); @@ -763,7 +785,7 @@ public function verify_transaction($order) { if(self::string_empty($trans_id)) { $message = sprintf(__('%1$s Transaction ID not found for order #%2$s.', self::MOD_TEXT_DOMAIN), $this->method_title, $order_id); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::ERROR); $order->add_order_note($message); @@ -773,7 +795,7 @@ public function verify_transaction($order) { $transaction_result = $this->get_transaction_result($trans_id); if(!empty($transaction_result)) { $message = sprintf(__('Transaction status from %1$s for order #%2$s: %3$s', self::MOD_TEXT_DOMAIN), $this->method_title, $order_id, self::print_http_query($transaction_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::INFO); $order->add_order_note($message); @@ -781,7 +803,7 @@ public function verify_transaction($order) { } $message = sprintf(__('Could not retrieve transaction status from %1$s for order #%2$s.', self::MOD_TEXT_DOMAIN), $this->method_title, $order_id); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $order->add_order_note($message); $this->log($message, WC_Log_Levels::ERROR); @@ -860,7 +882,7 @@ public function check_response() { : __('Payment authorized via %1$s: %2$s', self::MOD_TEXT_DOMAIN); $message = sprintf($message_action, $this->method_title, self::print_http_query($transaction_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::INFO); $order->add_order_note($message); @@ -878,7 +900,7 @@ public function check_response() { } $message = sprintf(__('Payment failed via %1$s: %2$s', self::MOD_TEXT_DOMAIN), $this->method_title, self::print_http_query($transaction_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $order->add_order_note($message); $this->log($message, WC_Log_Levels::ERROR); @@ -920,7 +942,7 @@ public function process_refund($order_id, $amount = null, $reason = '') { $result = $revert_result[self::MAIB_RESULT]; if($result === self::MAIB_RESULT_REVERSED || $result === self::MAIB_RESULT_OK) { $message = sprintf(__('Refund of %1$s %2$s via %3$s approved: %4$s', self::MOD_TEXT_DOMAIN), $amount, $order_currency, $this->method_title, self::print_http_query($revert_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $this->log($message, WC_Log_Levels::INFO); $order->add_order_note($message); @@ -929,7 +951,7 @@ public function process_refund($order_id, $amount = null, $reason = '') { } $message = sprintf(__('Refund of %1$s %2$s via %3$s failed: %4$s', self::MOD_TEXT_DOMAIN), $amount, $order_currency, $this->method_title, self::print_http_query($revert_result)); - $message = $this->get_order_message($message); + $message = $this->get_test_message($message); $order->add_order_note($message); $this->log($message, WC_Log_Levels::ERROR); @@ -974,13 +996,6 @@ public function close_day() { #endregion #region Order - protected function get_order_message($message) { - if($this->testmode) - $message = 'TEST: ' . $message; - - return $message; - } - protected static function get_order_net_total($order) { //https://github.com/woocommerce/woocommerce/issues/17795 //https://github.com/woocommerce/woocommerce/pull/18196 @@ -1041,6 +1056,13 @@ protected static function get_order_items_summary($order) { #endregion #region Utility + protected function get_test_message($message) { + if($this->testmode) + $message = "TEST: $message"; + + return $message; + } + protected static function price_format($price) { $decimals = 2; return number_format($price, $decimals, '.', ''); @@ -1067,10 +1089,8 @@ protected static function get_client_ip() { } protected static function get_callback_url() { - //https://woocommerce.com/document/wc_api-the-woocommerce-api-callback/ - //return get_home_url(null, 'wc-api/' . get_class($this)); - - return add_query_arg('wc-api', get_class(), home_url('/')); + //https://developer.woo.com/docs/woocommerce-plugin-api-callbacks/ + return WC()->api_request_url(strtolower(get_class())); } protected static function get_logs_url() { @@ -1078,7 +1098,7 @@ protected static function get_logs_url() { array( 'page' => 'wc-status', 'tab' => 'logs', - //'log_file' => '' + 'source' => self::MOD_ID ), admin_url('admin.php') ); @@ -1096,7 +1116,7 @@ public static function get_settings_url() { } protected function log($message, $level = WC_Log_Levels::DEBUG) { - //https://woocommerce.wordpress.com/2017/01/26/improved-logging-in-woocommerce-2-7/ + //https://developer.woo.com/docs/logging-in-woocommerce/ //https://stackoverflow.com/questions/1423157/print-php-call-stack $log_context = array('source' => self::MOD_ID); $this->logger->log($level, $message, $log_context); @@ -1109,7 +1129,7 @@ protected static function static_log($message, $level = WC_Log_Levels::DEBUG) { } protected static function print_var($var) { - //https://docs.woocommerce.com/wc-apidocs/function-wc_print_r.html + //https://woocommerce.github.io/code-reference/namespaces/default.html#function_wc_print_r return wc_print_r($var, true); } @@ -1123,7 +1143,7 @@ protected static function print_http_query($var) { } protected static function string_empty($string) { - return strlen($string) === 0; + return is_null($string) || strlen($string) === 0; } #endregion @@ -1168,7 +1188,7 @@ public static function action_close_day() { $plugin = new self(); $result = $plugin->close_day(); - //https://github.com/Prospress/action-scheduler/issues/215 + //https://github.com/woocommerce/action-scheduler/issues/215 $action_id = self::find_scheduled_action(ActionScheduler_Store::STATUS_RUNNING); $logger = ActionScheduler::logger(); $logger->log($action_id, $result); @@ -1212,17 +1232,9 @@ public static function add_gateway($methods) { $methods[] = self::class; return $methods; } - - public static function is_wc_active() { - //https://docs.woocommerce.com/document/query-whether-woocommerce-is-activated/ - return class_exists('WooCommerce'); - } #endregion } - if(!WC_MoldovaAgroindbank::is_wc_active()) - return; - //Add gateway to WooCommerce add_filter('woocommerce_payment_gateways', array(WC_MoldovaAgroindbank::class, 'add_gateway')); @@ -1241,24 +1253,52 @@ public static function is_wc_active() { } #region Register activation hooks -function woocommerce_moldovaagroindbank_activation() { - woocommerce_moldovaagroindbank_init(); +function woocommerce_moldovaagroindbank_activation($activate = true) { + if(!class_exists(WC_MoldovaAgroindbank::class)) { + woocommerce_moldovaagroindbank_plugins_loaded(); + } - if(!class_exists('WC_MoldovaAgroindbank')) - die('WooCommerce is required for this plugin to work'); + if(class_exists(WC_MoldovaAgroindbank::class)) { + if($activate) { + WC_MoldovaAgroindbank::register_scheduled_actions(); + } else { + WC_MoldovaAgroindbank::unregister_scheduled_actions(); + } + } +} - WC_MoldovaAgroindbank::register_scheduled_actions(); +function woocommerce_moldovaagroindbank_deactivation() { + woocommerce_moldovaagroindbank_activation(false); } register_activation_hook(__FILE__, 'woocommerce_moldovaagroindbank_activation'); -register_deactivation_hook(__FILE__, array(WC_MoldovaAgroindbank::class, 'unregister_scheduled_actions')); +register_deactivation_hook(__FILE__, 'woocommerce_moldovaagroindbank_deactivation'); #endregion -#region WooCommerce HPOS compatibility -//https://github.com/woocommerce/woocommerce/wiki/High-Performance-Order-Storage-Upgrade-Recipe-Book#declaring-extension-incompatibility +#region Declare WooCommerce compatibility add_action('before_woocommerce_init', function() { if(class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) { + //WooCommerce HPOS compatibility + //https://github.com/woocommerce/woocommerce/wiki/High-Performance-Order-Storage-Upgrade-Recipe-Book#declaring-extension-incompatibility \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true); + + //WooCommerce Cart Checkout Blocks compatibility + //https://github.com/woocommerce/woocommerce/pull/36426 + \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('cart_checkout_blocks', __FILE__, true); + } +}); +#endregion + +#region Register WooCommerce Blocks payment method type +add_action('woocommerce_blocks_loaded', function() { + if(class_exists(\Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType::class)) { + require_once plugin_dir_path(__FILE__) . 'wc-moldovaagroindbank-wbc.php'; + + add_action('woocommerce_blocks_payment_method_type_registration', + function(\Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry $payment_method_registry) { + $payment_method_registry->register(new WC_MoldovaAgroindbank_WBC()); + } + ); } }); #endregion