Plugin Directory

Changeset 3697413


Ignore:
Timestamp:
09/15/2026 04:52:19 PM (5 weeks ago)
Author:
abdalsalaam
Message:

Updating trunk for 5.9.12

Location:
woo-postnl/trunk
Files:
5 added
8 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • woo-postnl/trunk/assets/js/admin-settings.js

    r3584070 r3697413  
    1818                        jQuery( '#woocommerce_postnl_enable_pickup_points' ).on( 'change', this.toggle_default_checkout_tab );
    1919                        this.toggle_default_checkout_tab();
     20                        this.init_new_api_key_check();
     21                },
     22
     23                // Memoised check results, keyed by environment + key + customer details, so
     24                // re-blurring the same values does not spend another barcode.
     25                newApiKeyCheckCache: {},
     26
     27                // The in-flight check request, aborted when a fresh blur supersedes it.
     28                newApiKeyCheckXhr: null,
     29
     30                /**
     31                 * Check the "API Key" field against PostNL when the merchant leaves it, so
     32                 * the status row is right while they are still typing rather than only after
     33                 * a save. Empty and same-as-old keys are decided here without a call.
     34                 */
     35                init_new_api_key_check: function() {
     36                        if ( typeof postnlApiKeyCheck === 'undefined' ) {
     37                                return;
     38                        }
     39
     40                        var self = this;
     41                        jQuery( '#woocommerce_postnl_api_keys_new, #woocommerce_postnl_api_keys_sandbox_new' ).on( 'blur', function() {
     42                                self.check_new_api_key( jQuery( this ) );
     43                        } );
     44                },
     45
     46                check_new_api_key: function( $field ) {
     47                        var isSandbox = $field.attr( 'id' ).indexOf( 'sandbox' ) !== -1;
     48                        var env       = isSandbox ? 'sandbox' : 'production';
     49                        var $row      = jQuery( '.postnl-new-key-status-row[data-postnl-env="' + env + '"]' );
     50                        var key       = jQuery.trim( $field.val() );
     51                        var oldField  = isSandbox ? '#woocommerce_postnl_api_keys_sandbox' : '#woocommerce_postnl_api_keys';
     52                        var oldKey    = jQuery.trim( jQuery( oldField ).val() || '' );
     53                        // The value the field was rendered with, i.e. the saved key. Blurring
     54                        // it unchanged must not fire a check — the row already shows its state.
     55                        var savedKey  = jQuery.trim( $field.prop( 'defaultValue' ) || '' );
     56
     57                        // Nothing distinct or unsaved to check: leave the row as rendered.
     58                        if ( '' === key || key === oldKey || key === savedKey ) {
     59                                return;
     60                        }
     61
     62                        var code     = jQuery( '#woocommerce_postnl_customer_code' ).val() || '';
     63                        var num      = jQuery( '#woocommerce_postnl_customer_num' ).val() || '';
     64                        var cacheKey = [ env, key, code, num ].join( '|' );
     65
     66                        if ( this.newApiKeyCheckCache[ cacheKey ] ) {
     67                                this.render_new_api_key_status( $row, this.newApiKeyCheckCache[ cacheKey ] );
     68                                return;
     69                        }
     70
     71                        if ( this.newApiKeyCheckXhr ) {
     72                                this.newApiKeyCheckXhr.abort();
     73                        }
     74
     75                        var self = this;
     76                        this.newApiKeyCheckXhr = jQuery.post(
     77                                postnlApiKeyCheck.ajaxUrl,
     78                                {
     79                                        action: postnlApiKeyCheck.action,
     80                                        nonce: postnlApiKeyCheck.nonce,
     81                                        environment: env,
     82                                        api_key: key,
     83                                        customer_code: code,
     84                                        customer_num: num
     85                                }
     86                        ).done( function( response ) {
     87                                if ( response && response.success && response.data ) {
     88                                        self.newApiKeyCheckCache[ cacheKey ] = response.data;
     89                                        self.render_new_api_key_status( $row, response.data );
     90                                }
     91                        } );
     92                },
     93
     94                render_new_api_key_status: function( $row, data ) {
     95                        $row.find( '.postnl-new-key-status-label' ).css( 'color', data.color ).text( data.label );
     96                        $row.find( '.postnl-new-key-status-summary' ).text( data.summary );
     97
     98                        var $desc = $row.find( '.postnl-new-key-status-desc' );
     99                        if ( data.description ) {
     100                                $desc.html( data.description ).show();
     101                        } else {
     102                                $desc.empty().hide();
     103                        }
    20104                },
    21105
    … …  
    49133                display_api_key_field: function() {
    50134                        var value = jQuery( '#woocommerce_postnl_environment_mode' ).val();
     135                        var productionRows = jQuery( '#woocommerce_postnl_api_keys' ).closest( 'tr' )
     136                                .add( jQuery( '#woocommerce_postnl_api_keys_new' ).closest( 'tr' ) )
     137                                .add( jQuery( '.postnl-new-key-status-row[data-postnl-env="production"]' ) );
     138                        var sandboxRows = jQuery( '#woocommerce_postnl_api_keys_sandbox' ).closest( 'tr' )
     139                                .add( jQuery( '#woocommerce_postnl_api_keys_sandbox_new' ).closest( 'tr' ) )
     140                                .add( jQuery( '.postnl-new-key-status-row[data-postnl-env="sandbox"]' ) );
     141
    51142                        if ( 'production' === value ) {
    52                                 jQuery('#woocommerce_postnl_api_keys').closest('tr').show();
    53                                 jQuery('#woocommerce_postnl_api_keys_sandbox').closest('tr').hide();
     143                                productionRows.show();
     144                                sandboxRows.hide();
    54145                        } else {
    55                                 jQuery('#woocommerce_postnl_api_keys').closest('tr').hide();
    56                                 jQuery('#woocommerce_postnl_api_keys_sandbox').closest('tr').show();
     146                                productionRows.hide();
     147                                sandboxRows.show();
    57148                        }
    58149                },
  • woo-postnl/trunk/languages/postnl-for-woocommerce-nl_NL.po

    r3673827 r3697413  
    11msgid ""
    22msgstr ""
    3 "Project-Id-Version: PostNL for WooCommerce 5.9.11\n"
     3"Project-Id-Version: PostNL for WooCommerce 5.9.12\n"
    44"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/postnl-for-woocommerce\n"
    55"Last-Translator: \n"
    … …  
    101101#: src/Frontend/Checkout_Fields.php:102
    102102#: src/Frontend/Checkout_Fields.php:103
    103 #: src/Shipping_Method/Settings.php:247
     103#: src/Shipping_Method/Settings.php:276
    104104msgid "House Number Extension"
    105105msgstr "Huisnummer toevoeging"
    … …  
    129129
    130130#: src/Frontend/Delivery_Day.php:115
    131 #: src/Shipping_Method/Settings.php:341
     131#: src/Shipping_Method/Settings.php:370
    132132#: build/postnl-container-frontend.js:1
    133133#: client/checkout/postnl-container/block.js:282
    … …  
    177177
    178178#: src/Helper/Mapping.php:32
    179 #: src/Shipping_Method/Settings.php:372
     179#: src/Shipping_Method/Settings.php:401
    180180msgid "Morning Delivery"
    181181msgstr "Ochtend Bezorging"
    … …  
    186186
    187187#: src/Helper/Mapping.php:34
    188 #: src/Shipping_Method/Settings.php:390
     188#: src/Shipping_Method/Settings.php:419
    189189msgid "Evening Delivery"
    190190msgstr "Avondbezorging"
    … …  
    195195
    196196#: src/Helper/Mapping.php:42
    197 #: src/Shipping_Method/Settings.php:642
     197#: src/Shipping_Method/Settings.php:671
    198198#: src/Utils.php:622
    199199msgid "Standard Shipment Belgium"
    … …  
    221221msgstr "België binnenland"
    222222
    223 #: src/Main.php:396
     223#: src/Main.php:401
    224224msgid "PostNL plugin requires WooCommerce to be installed and activated!"
    225225msgstr "De PostNL plugin vereist het installeren en activeren van WooCommerce!"
    226226
    227 #: src/Main.php:409
     227#: src/Main.php:414
    228228msgid "PostNL plugin requires store country to be Netherlands (NL) or Belgium (BE)!"
    229229msgstr "De PostNL plugin vereist een winkellocatie in Nederland of België!"
    230230
    231 #: src/Main.php:487
     231#: src/Main.php:492
    232232msgid "Postnl Checkout Blocks"
    233233msgstr ""
    234234
    235 #: src/Main.php:506
     235#: src/Main.php:511
    236236msgid "Leave a review"
    237237msgstr "Laat een beoordeling achter"
    238238
    239 #: src/Main.php:526
     239#: src/Main.php:531
    240240msgid "Settings"
    241241msgstr ""
    … …  
    418418
    419419#: src/Order/Bulk.php:534
    420 #: src/Shipping_Method/Settings.php:611
     420#: src/Shipping_Method/Settings.php:640
    421421msgid "Shipping options domestic"
    422422msgstr "Verzendopties binnenland"
    423423
    424424#: src/Order/Bulk.php:552
    425 #: src/Shipping_Method/Settings.php:654
     425#: src/Shipping_Method/Settings.php:683
    426426msgid "Shipping options EU"
    427427msgstr "Verzendopties EU"
    … …  
    684684msgstr "Klantnummer is leeg!"
    685685
    686 #: src/Rest_API/Base.php:273
    687 #: src/Rest_API/Base.php:282
    688 #: src/Rest_API/Base.php:290
     686#: src/Rest_API/Base.php:278
     687#: src/Rest_API/Base.php:287
     688#: src/Rest_API/Base.php:295
    689689msgid "Unknown error!"
    690690msgstr "Onbekende fout!"
    … …  
    883883
    884884#: src/Shipping_Method/Fill_In_With_PostNL_Settings.php:67
    885 #: src/Shipping_Method/Settings.php:115
    886 #: src/Shipping_Method/Settings.php:187
    887 #: src/Shipping_Method/Settings.php:307
    888 #: src/Shipping_Method/Settings.php:343
    889 #: src/Shipping_Method/Settings.php:374
    890 #: src/Shipping_Method/Settings.php:392
    891 #: src/Shipping_Method/Settings.php:476
    892 #: src/Shipping_Method/Settings.php:484
     885#: src/Shipping_Method/Settings.php:144
     886#: src/Shipping_Method/Settings.php:216
     887#: src/Shipping_Method/Settings.php:336
     888#: src/Shipping_Method/Settings.php:372
     889#: src/Shipping_Method/Settings.php:403
     890#: src/Shipping_Method/Settings.php:421
     891#: src/Shipping_Method/Settings.php:505
     892#: src/Shipping_Method/Settings.php:513
    893893msgid "Enable"
    894894msgstr "Activeer"
    … …  
    10441044
    10451045#. translators: %1$s & %2$s is replaced with <a> tag.
    1046 #: src/Shipping_Method/PostNL.php:39
     1046#: src/Shipping_Method/PostNL.php:40
    10471047#, php-format
    10481048msgid "Below you will find all functions for controlling, preparing and processing your shipment with PostNL. Prerequisite is a valid PostNL business customer contract. If you are not yet a PostNL business customer, you can request a quote %1$shere%2$s."
    … …  
    10501050
    10511051#. Translators: %s is the currency symbol.
    1052 #: src/Shipping_Method/PostNL.php:117
     1052#: src/Shipping_Method/PostNL.php:218
    10531053#, php-format
    10541054msgid "Free shipping from %s"
    10551055msgstr "Gratis verzenden vanaf %s"
    10561056
    1057 #: src/Shipping_Method/PostNL.php:119
     1057#: src/Shipping_Method/PostNL.php:220
    10581058msgid "Keep empty if you don’t want to use Free shipping"
    10591059msgstr "Laat leeg in als je geen gebruik wil maken van Gratis verzenden"
    10601060
    1061 #: src/Shipping_Method/PostNL.php:186
     1061#: src/Shipping_Method/PostNL.php:297
    10621062msgid "Country"
    10631063msgstr "Land"
    10641064
    1065 #: src/Shipping_Method/PostNL.php:189
     1065#: src/Shipping_Method/PostNL.php:300
    10661066msgid "Merchant Code"
    10671067msgstr "Verkoperscode"
    10681068
    1069 #: src/Shipping_Method/PostNL.php:192
     1069#: src/Shipping_Method/PostNL.php:303
    10701070msgid "Action"
    10711071msgstr "Actie"
    10721072
    1073 #: src/Shipping_Method/PostNL.php:203
    1074 #: src/Shipping_Method/PostNL.php:243
     1073#: src/Shipping_Method/PostNL.php:314
     1074#: src/Shipping_Method/PostNL.php:354
    10751075msgid "Select Country"
    10761076msgstr "Selecteer land"
    10771077
    1078 #: src/Shipping_Method/PostNL.php:215
    1079 #: src/Shipping_Method/PostNL.php:255
     1078#: src/Shipping_Method/PostNL.php:326
     1079#: src/Shipping_Method/PostNL.php:366
    10801080msgid "Enter merchant code"
    10811081msgstr "Voer de verkoperscode in"
    10821082
    1083 #: src/Shipping_Method/PostNL.php:220
    1084 #: src/Shipping_Method/PostNL.php:260
     1083#: src/Shipping_Method/PostNL.php:331
     1084#: src/Shipping_Method/PostNL.php:371
    10851085msgid "Remove"
    10861086msgstr "Verwijderen"
    10871087
    1088 #: src/Shipping_Method/PostNL.php:229
     1088#: src/Shipping_Method/PostNL.php:340
    10891089msgid "Add Merchant Code"
    10901090msgstr "Verkoperscode toevoegen"
    10911091
    1092 #: src/Shipping_Method/PostNL.php:291
     1092#: src/Shipping_Method/PostNL.php:402
    10931093msgid "Duplicate countries found and have been removed. Only the last entry for each country will be saved."
    10941094msgstr ""
    10951095
    1096 #: src/Shipping_Method/PostNL.php:310
     1096#: src/Shipping_Method/PostNL.php:421
    10971097msgid "Some merchant codes were not saved because of missing country or code."
    10981098msgstr ""
    10991099
    1100 #: src/Shipping_Method/Settings.php:63
     1100#: src/Shipping_Method/Settings.php:64
    11011101msgid "Manual"
    11021102msgstr "Handleiding"
    11031103
    11041104#. translators: %1$s & %2$s is replaced with <a> tag.
    1105 #: src/Shipping_Method/Settings.php:66
     1105#: src/Shipping_Method/Settings.php:67
    11061106#, php-format
    11071107msgid "Consult the %1$smanual%2$s for help installing the plug-in."
    11081108msgstr "Raadpleeg de %1$shandleiding%2$s voor hulp bij het installeren van de plug-in."
    11091109
    1110 #: src/Shipping_Method/Settings.php:70
     1110#: src/Shipping_Method/Settings.php:71
    11111111msgid "Account Settings"
    11121112msgstr "Account Instellingen"
    11131113
    11141114#. translators: %1$s & %2$s is replaced with <a> tag.
    1115 #: src/Shipping_Method/Settings.php:73
     1115#: src/Shipping_Method/Settings.php:74
    11161116#, php-format
    11171117msgid "Please configure your shipping parameters and your access towards the PostNL APIs by means of authentication. You can find the details of your PostNL account in Mijn %1$sPostNL%2$s under \"My Account > API beheren\"."
    11181118msgstr "Vul hier je klant gegevens in om de plug-in te koppelen aan jouw PostNL account. Jouw klantgegevens kan je vinden in de Mijn %1$sPostNL%2$s omgeving onder “Mijn Account > API beheren”."
    11191119
    1120 #: src/Shipping_Method/Settings.php:76
     1120#: src/Shipping_Method/Settings.php:77
    11211121msgid "Environment Mode"
    11221122msgstr "Modus omgeving"
    11231123
    1124 #: src/Shipping_Method/Settings.php:78
     1124#: src/Shipping_Method/Settings.php:79
    11251125msgid "Choose the environment mode."
    11261126msgstr "Kies de modus van de omgeving."
    11271127
    1128 #: src/Shipping_Method/Settings.php:81
     1128#: src/Shipping_Method/Settings.php:82
    11291129msgid "Production"
    11301130msgstr "Productie"
    11311131
    1132 #: src/Shipping_Method/Settings.php:82
     1132#: src/Shipping_Method/Settings.php:83
    11331133msgid "Sandbox"
    11341134msgstr "Sandbox"
    11351135
    1136 #: src/Shipping_Method/Settings.php:89
    1137 msgid "Production API Key"
    1138 msgstr "Productie API Key"
    1139 
    1140 #. translators: %1$s & %2$s is replaced with <a> tag.
    1141 #: src/Shipping_Method/Settings.php:92
    1142 #, php-format
    1143 msgid "Insert your PostNL production API-key. You can find your API-key on Mijn %1$sPostNL%2$s under \"My Account\"."
    1144 msgstr "Voer jouw PostNL productie API-key in. Jouw productie en sandbox API-key is te vinden op Mijn %1$sPostNL%2$s onder “My Account”."
    1145 
    1146 #: src/Shipping_Method/Settings.php:98
     1136#: src/Shipping_Method/Settings.php:124
    11471137msgid "Sandbox API Key"
    11481138msgstr "Sandbox API Key"
    11491139
    1150 #. translators: %1$s & %2$s is replaced with <a> tag.
    1151 #: src/Shipping_Method/Settings.php:101
    1152 #, php-format
    1153 msgid "Insert your PostNL staging API-key. You can find your API-key on Mijn %1$sPostNL%2$s under \"My Account\"."
    1154 msgstr "Voer jouw PostNL sandbox API-key in. Jouw productie en sandbox API-key is te vinden op Mijn %1$sPostNL%2$s onder “My Account”."
    1155 
    1156 #: src/Shipping_Method/Settings.php:107
     1140#: src/Shipping_Method/Settings.php:136
    11571141msgid "Logging"
    11581142msgstr "Logging"
    11591143
    11601144#. translators: %1$s is anchor opener tag and %2$s is anchor closer tag.
    1161 #: src/Shipping_Method/Settings.php:111
     1145#: src/Shipping_Method/Settings.php:140
    11621146#, php-format
    11631147msgid "A log file containing the communication to the PostNL server will be maintained if this option is checked. This can be used in case of technical issues and can be found %1$shere%2$s."
    11641148msgstr "Als deze functie is ingeschakeld wordt er een log-bestand opgebouwd die communictie gegevens bevat naar de server van PostNL. Deze gegevens van toegevoegde waarde zijn in geval van technische issues en kunnen %1$shier%2$s gevonden worden."
    11651149
    1166 #: src/Shipping_Method/Settings.php:121
     1150#: src/Shipping_Method/Settings.php:150
    11671151msgid "Customer Number"
    11681152msgstr "Klantnummer"
    11691153
    1170 #: src/Shipping_Method/Settings.php:123
     1154#: src/Shipping_Method/Settings.php:152
    11711155msgid "e.g. \"11223344\""
    11721156msgstr "bijv. “11223344”"
    11731157
    1174 #: src/Shipping_Method/Settings.php:129
     1158#: src/Shipping_Method/Settings.php:158
    11751159msgid "Customer Code"
    11761160msgstr "Klantcode"
    11771161
    1178 #: src/Shipping_Method/Settings.php:131
     1162#: src/Shipping_Method/Settings.php:160
    11791163msgid "e.g. \"DEVC\""
    11801164msgstr "bijv. “DEVC”"
    11811165
    1182 #: src/Shipping_Method/Settings.php:138
     1166#: src/Shipping_Method/Settings.php:167
    11831167msgid "Company Name"
    11841168msgstr "Bedrijfsnaam"
    11851169
    1186 #: src/Shipping_Method/Settings.php:140
     1170#: src/Shipping_Method/Settings.php:169
    11871171msgid "Enter company name - this name will be noted as the sender on the label"
    11881172msgstr "Vul bedrijfsnaam in - deze naam wordt genoteerd als afzender op het label"
    11891173
    1190 #: src/Shipping_Method/Settings.php:159
     1174#: src/Shipping_Method/Settings.php:188
    11911175msgid "Return Settings"
    11921176msgstr "Retour Instellingen"
    11931177
    1194 #: src/Shipping_Method/Settings.php:164
     1178#: src/Shipping_Method/Settings.php:193
    11951179msgid "Standard return option"
    11961180msgstr "Standaard retour optie"
    11971181
    1198 #: src/Shipping_Method/Settings.php:166
     1182#: src/Shipping_Method/Settings.php:195
    11991183msgid "- None: return labels are not automatically created"
    12001184msgstr "- Geen: retour-labels worden niet automatisch aangemaakt"
    12011185
    1202 #: src/Shipping_Method/Settings.php:167
     1186#: src/Shipping_Method/Settings.php:196
    12031187msgid "- Label in the box: a separate return label is created at the same time as the label for the outward shipment and can be included in the box."
    12041188msgstr "- Label in de doos: een los retourlabel wordt tegelijk met het label voor de heenzending aangemaakt en kan in de doos worden meegestuurd."
    12051189
    1206 #: src/Shipping_Method/Settings.php:170
     1190#: src/Shipping_Method/Settings.php:199
    12071191msgid "None"
    12081192msgstr "Geen"
    12091193
    1210 #: src/Shipping_Method/Settings.php:171
     1194#: src/Shipping_Method/Settings.php:200
    12111195msgid "Label in the box"
    12121196msgstr "Label in de doos"
    12131197
    1214 #: src/Shipping_Method/Settings.php:185
     1198#: src/Shipping_Method/Settings.php:214
    12151199msgid "Directly activate return function for all labels"
    12161200msgstr "Retourfunctie direct activeren voor alle labels"
    12171201
    1218 #: src/Shipping_Method/Settings.php:190
     1202#: src/Shipping_Method/Settings.php:219
    12191203msgid "Yes, activate return function directly for all orders"
    12201204msgstr "Ja, retourfunctie direct activeren voor alle orders"
    12211205
    1222 #: src/Shipping_Method/Settings.php:191
     1206#: src/Shipping_Method/Settings.php:220
    12231207msgid "No, activate return function per individual order"
    12241208msgstr "Nee, retourfunctie per individuele order activeren"
    12251209
    1226 #: src/Shipping_Method/Settings.php:196
     1210#: src/Shipping_Method/Settings.php:225
    12271211msgid "Activate Smart Return"
    12281212msgstr "Smart Returns activeren"
    12291213
    1230 #: src/Shipping_Method/Settings.php:199
    1231 #: src/Shipping_Method/Settings.php:205
     1214#: src/Shipping_Method/Settings.php:228
     1215#: src/Shipping_Method/Settings.php:234
    12321216msgid "Activate"
    12331217msgstr "Activeren"
    12341218
    1235 #: src/Shipping_Method/Settings.php:203
     1219#: src/Shipping_Method/Settings.php:232
    12361220msgid "Return to home address"
    12371221msgstr "Retour naar huisadres"
    12381222
    1239 #: src/Shipping_Method/Settings.php:206
     1223#: src/Shipping_Method/Settings.php:235
    12401224msgid "Activate this setting to use a home address for return shipments"
    12411225msgstr ""
    12421226
    1243 #: src/Shipping_Method/Settings.php:210
     1227#: src/Shipping_Method/Settings.php:239
    12441228msgid "Replynumber"
    12451229msgstr "Antwoordnummer"
    12461230
    1247 #: src/Shipping_Method/Settings.php:212
     1231#: src/Shipping_Method/Settings.php:241
    12481232msgid "Enter replynumber."
    12491233msgstr "Vul de cijfers van het antwoordnummer in."
    12501234
    1251 #: src/Shipping_Method/Settings.php:219
     1235#: src/Shipping_Method/Settings.php:248
    12521236msgid "Freepost Zipcode"
    12531237msgstr "Postcode antwoordnummer"
    12541238
    1255 #: src/Shipping_Method/Settings.php:221
     1239#: src/Shipping_Method/Settings.php:250
    12561240msgid "Enter Freepost Zipcode."
    12571241msgstr "Vul de Postcode antwoordnummer."
    12581242
    1259 #: src/Shipping_Method/Settings.php:226
     1243#: src/Shipping_Method/Settings.php:255
    12601244msgid "Freepost City"
    12611245msgstr "Stad antwoordnummer"
    12621246
    1263 #: src/Shipping_Method/Settings.php:228
     1247#: src/Shipping_Method/Settings.php:257
    12641248msgid "Enter Freepost City."
    12651249msgstr "Vul de Stad antwoordnummer."
    12661250
    1267 #: src/Shipping_Method/Settings.php:233
     1251#: src/Shipping_Method/Settings.php:262
    12681252msgid "Street Address"
    12691253msgstr "Straat"
    12701254
    1271 #: src/Shipping_Method/Settings.php:235
     1255#: src/Shipping_Method/Settings.php:264
    12721256msgid "Enter Return Street Address."
    12731257msgstr "Voer hier de straatnaam in van het retouradres."
    12741258
    1275 #: src/Shipping_Method/Settings.php:240
     1259#: src/Shipping_Method/Settings.php:269
    12761260msgid "House Number"
    12771261msgstr "Huisnummer"
    12781262
    1279 #: src/Shipping_Method/Settings.php:242
     1263#: src/Shipping_Method/Settings.php:271
    12801264msgid "Enter return house number."
    12811265msgstr "Voer hier het huisnummer in van het retouradres."
    12821266
    1283 #: src/Shipping_Method/Settings.php:249
     1267#: src/Shipping_Method/Settings.php:278
    12841268msgid "Enter return house number extension."
    12851269msgstr "Vul hier een huisnummertoevoeging in voor het retouradres."
    12861270
    1287 #: src/Shipping_Method/Settings.php:254
     1271#: src/Shipping_Method/Settings.php:283
    12881272msgid "Zipcode"
    12891273msgstr "Postcode"
    12901274
    1291 #: src/Shipping_Method/Settings.php:256
     1275#: src/Shipping_Method/Settings.php:285
    12921276msgid "Enter Return Zipcode."
    12931277msgstr "Voer hier de postcode in van het retouradres."
    12941278
    1295 #: src/Shipping_Method/Settings.php:261
     1279#: src/Shipping_Method/Settings.php:290
    12961280msgid "City"
    12971281msgstr "Plaats"
    12981282
    1299 #: src/Shipping_Method/Settings.php:263
     1283#: src/Shipping_Method/Settings.php:292
    13001284msgid "Enter Return City."
    13011285msgstr "Voer hier de plaatsnaam in van het retouradres."
    13021286
    1303 #: src/Shipping_Method/Settings.php:268
     1287#: src/Shipping_Method/Settings.php:297
    13041288msgid "Return Customer Code"
    13051289msgstr "Klantcode Retouren"
    13061290
    1307 #: src/Shipping_Method/Settings.php:270
     1291#: src/Shipping_Method/Settings.php:299
    13081292msgid "Be aware that the Return Customer Code differs from the regular Customer Code. You can find your Return customer code in Mijn PostNL."
    13091293msgstr "Let op, de klantcode voor retourzendingen is niet hetzelfde als de klantcode voor heenzendingen. De retour klantcode vind je in jouw Mijn PostNL omgeving."
    13101294
    1311 #: src/Shipping_Method/Settings.php:276
     1295#: src/Shipping_Method/Settings.php:305
    13121296msgid "Checkout Settings"
    13131297msgstr "Checkout Instellingen"
    13141298
    1315 #: src/Shipping_Method/Settings.php:278
     1299#: src/Shipping_Method/Settings.php:307
    13161300msgid "Please configure your checkout preferences."
    13171301msgstr "Stel hier jouw checkout voorkeuren in."
    13181302
    1319 #: src/Shipping_Method/Settings.php:281
     1303#: src/Shipping_Method/Settings.php:310
    13201304msgid "Shipping Methods"
    13211305msgstr "Verzendmethoden"
    13221306
    1323 #: src/Shipping_Method/Settings.php:283
     1307#: src/Shipping_Method/Settings.php:312
    13241308msgid "Select Shipping Methods can be associated with PostNL."
    13251309msgstr "Selecteer de verzendmethode die gebruikt worden voor verzending met PostNL."
    13261310
    1327 #: src/Shipping_Method/Settings.php:289
     1311#: src/Shipping_Method/Settings.php:318
    13281312msgid "Extra fee for the letterboxparcel (24 hours)"
    13291313msgstr "Toeslag voor het brievenbuspakje (24 uur)"
    13301314
    1331 #: src/Shipping_Method/Settings.php:291
     1315#: src/Shipping_Method/Settings.php:320
    13321316msgid "Extra fee added when Letterboxparcel Standard (24 hours) has been selected."
    13331317msgstr "Toeslag die wordt toegevoegd wanneer Brievenbuspakje standaard (24 uur) is geselecteerd."
    13341318
    1335 #: src/Shipping_Method/Settings.php:305
     1319#: src/Shipping_Method/Settings.php:334
    13361320msgid "PostNL Pick-up Points"
    13371321msgstr "Ophalen bij PostNL-punt"
    13381322
    1339 #: src/Shipping_Method/Settings.php:308
     1323#: src/Shipping_Method/Settings.php:337
    13401324msgid "Show PostNL pick-up points in the checkout so that your customers can choose to get their orders delivered at a PostNL pick-up point."
    13411325msgstr "Toon de PostNL-punten in de checkout zodat jouw klanten kunnen kiezen om hun bestelling op te halen bij een PostNL-punt."
    13421326
    1343 #: src/Shipping_Method/Settings.php:315
     1327#: src/Shipping_Method/Settings.php:344
    13441328msgid "Extra fee pick-up delivery"
    13451329msgstr "Toeslag ophalen bij PostNL"
    13461330
    1347 #: src/Shipping_Method/Settings.php:317
     1331#: src/Shipping_Method/Settings.php:346
    13481332msgid "Extra fee added when the customer selects a PostNL pick-up point."
    13491333msgstr "Toeslag wanneer er voor ophalen bij PostNL is gekozen."
    13501334
    1351 #: src/Shipping_Method/Settings.php:344
     1335#: src/Shipping_Method/Settings.php:373
    13521336msgid "Show delivery days in the checkout so that your customers can choose which day to receive their order."
    13531337msgstr "Laat jouw klanten kiezen wanneer zij hun bestelling ontvangen door de bezorgdagen in de checkout te tonen."
    13541338
    1355 #: src/Shipping_Method/Settings.php:351
     1339#: src/Shipping_Method/Settings.php:380
    13561340msgid "Extra fee home delivery"
    13571341msgstr "Toeslag thuisbezorging"
    13581342
    1359 #: src/Shipping_Method/Settings.php:353
     1343#: src/Shipping_Method/Settings.php:382
    13601344msgid "Extra fee added when the customer selects home delivery."
    13611345msgstr "Toeslag voor verzendingen naar een huisadres."
    13621346
    1363 #: src/Shipping_Method/Settings.php:297
     1347#: src/Shipping_Method/Settings.php:326
    13641348msgid "Letterbox fee"
    13651349msgstr "Alternatieve verzendkosten Brievenbuspakje"
    13661350
    1367 #: src/Shipping_Method/Settings.php:299
     1351#: src/Shipping_Method/Settings.php:328
    13681352msgid "Overrides the shipping cost when all items are eligible for letterbox delivery. Leave empty to use the standard shipping cost. The fee is set to €0 when free shipping applies."
    13691353msgstr "Vervangt de verzendkosten wanneer alle artikelen in aanmerking komen voor bezorging als brievenbuspakje. Laat leeg om de standaard verzendkosten te gebruiken. De toeslag wordt op €0 gezet wanneer gratis verzending van toepassing is."
    13701354
    1371 #: src/Shipping_Method/Settings.php:359
     1355#: src/Shipping_Method/Settings.php:388
    13721356msgid "Number of Delivery Days"
    13731357msgstr "Aantal bezorgdagen"
    13741358
    1375 #: src/Shipping_Method/Settings.php:361
     1359#: src/Shipping_Method/Settings.php:390
    13761360msgid "Number of delivery days displayed in the frontend. Maximum will be 12."
    13771361msgstr "Aantal getoonde bezorgdagen in de checkout. Maximaal 12 dagen."
    13781362
    1379 #: src/Shipping_Method/Settings.php:375
     1363#: src/Shipping_Method/Settings.php:404
    13801364msgid "Enable morning delivery in the checkout so your customers can choose to receive their orders in the morning."
    13811365msgstr "Activeer avondbezorging in de checkout zodat jouw klanten kunnen kiezen om ’s avonds de bestelling te ontvangen."
    13821366
    1383 #: src/Shipping_Method/Settings.php:382
     1367#: src/Shipping_Method/Settings.php:411
    13841368msgid "Morning Delivery Fee"
    13851369msgstr "Toeslag ochtend bezorging"
    13861370
    1387 #: src/Shipping_Method/Settings.php:384
     1371#: src/Shipping_Method/Settings.php:413
    13881372msgid "Fee for receiving orders in the morning."
    13891373msgstr "De toeslag die jouw klanten betalen om ’s avonds de bestelling te ontvangen."
    13901374
    1391 #: src/Shipping_Method/Settings.php:393
     1375#: src/Shipping_Method/Settings.php:422
    13921376msgid "Enable evening delivery in the checkout so your customers can choose to receive their orders in the evening."
    13931377msgstr "Activeer avondbezorging in de checkout zodat jouw klanten kunnen kiezen om ’s avonds de bestelling te ontvangen."
    13941378
    1395 #: src/Shipping_Method/Settings.php:400
     1379#: src/Shipping_Method/Settings.php:429
    13961380msgid "Evening Delivery Fee"
    13971381msgstr "Toeslag avondbezorging"
    13981382
    1399 #: src/Shipping_Method/Settings.php:402
     1383#: src/Shipping_Method/Settings.php:431
    14001384msgid "Fee for receiving orders in the evening."
    14011385msgstr "De toeslag die jouw klanten betalen om ’s avonds de bestelling te ontvangen."
    14021386
    1403 #: src/Shipping_Method/Settings.php:408
     1387#: src/Shipping_Method/Settings.php:437
    14041388msgid "Default Delivery Options Tab"
    14051389msgstr "Standaard tabblad in bezorgoptiemenu"
    14061390
    1407 #: src/Shipping_Method/Settings.php:410
     1391#: src/Shipping_Method/Settings.php:439
    14081392msgid "Choose which tab is shown first in the delivery options menu at checkout."
    14091393msgstr "Selecteer het tabblad wat als eerste getoond wordt in het bezorgoptiemenu in de check-out."
    14101394
    1411 #: src/Shipping_Method/Settings.php:414
     1395#: src/Shipping_Method/Settings.php:443
    14121396msgid "Home Delivery"
    14131397msgstr "Thuisbezorging/Bezorgdagen"
    14141398
    1415 #: src/Shipping_Method/Settings.php:415
     1399#: src/Shipping_Method/Settings.php:444
    14161400msgid "Pickup Points"
    14171401msgstr "Afhaalpunten"
    14181402
    1419 #: src/Shipping_Method/Settings.php:421
     1403#: src/Shipping_Method/Settings.php:450
    14201404msgid "Transit Time"
    14211405msgstr "Overkomstduur"
    14221406
    1423 #: src/Shipping_Method/Settings.php:423
     1407#: src/Shipping_Method/Settings.php:452
    14241408msgid "The number of days it takes for the order to be delivered after the order has been placed."
    14251409msgstr "Het aantal dagen dat nodig is om de bestelling te bezorgen nadat de bestelling is geplaatst."
    14261410
    1427 #: src/Shipping_Method/Settings.php:429
     1411#: src/Shipping_Method/Settings.php:458
    14281412msgid "Cut Off Time"
    14291413msgstr "Cut off tijd"
    14301414
    1431 #: src/Shipping_Method/Settings.php:431
     1415#: src/Shipping_Method/Settings.php:460
    14321416msgid "If an order is ordered after this time, one day will be added to the transit time."
    14331417msgstr "Als een bestelling na de cut off tijd wordt geplaatst, dan wordt er een dag bij de overkomstduur opgeteld."
    14341418
    1435 #: src/Shipping_Method/Settings.php:437
     1419#: src/Shipping_Method/Settings.php:466
    14361420msgid "Drop off Days"
    14371421msgstr "Verzenddagen"
    14381422
    1439 #: src/Shipping_Method/Settings.php:439
     1423#: src/Shipping_Method/Settings.php:468
    14401424#: src/Utils.php:33
    14411425msgid "Monday"
    14421426msgstr "Maandag"
    14431427
    1444 #: src/Shipping_Method/Settings.php:440
     1428#: src/Shipping_Method/Settings.php:469
    14451429msgid "Select which days orders will be shipped."
    14461430msgstr "Selecteer op welke dagen bestellingen worden verstuurd."
    14471431
    1448 #: src/Shipping_Method/Settings.php:446
     1432#: src/Shipping_Method/Settings.php:475
    14491433#: src/Utils.php:34
    14501434msgid "Tuesday"
    14511435msgstr "Dinsdag"
    14521436
    1453 #: src/Shipping_Method/Settings.php:451
     1437#: src/Shipping_Method/Settings.php:480
    14541438#: src/Utils.php:35
    14551439msgid "Wednesday"
    14561440msgstr "Woensdag"
    14571441
    1458 #: src/Shipping_Method/Settings.php:456
     1442#: src/Shipping_Method/Settings.php:485
    14591443#: src/Utils.php:36
    14601444msgid "Thursday"
    14611445msgstr "Donderdag"
    14621446
    1463 #: src/Shipping_Method/Settings.php:461
     1447#: src/Shipping_Method/Settings.php:490
    14641448#: src/Utils.php:37
    14651449msgid "Friday"
    14661450msgstr "Vrijdag"
    14671451
    1468 #: src/Shipping_Method/Settings.php:466
     1452#: src/Shipping_Method/Settings.php:495
    14691453#: src/Utils.php:38
    14701454msgid "Saturday"
    14711455msgstr "Zaterdag"
    14721456
    1473 #: src/Shipping_Method/Settings.php:471
     1457#: src/Shipping_Method/Settings.php:500
    14741458#: src/Utils.php:39
    14751459msgid "Sunday"
    14761460msgstr "Zondag"
    14771461
    1478 #: src/Shipping_Method/Settings.php:474
     1462#: src/Shipping_Method/Settings.php:503
    14791463msgid "Validate Dutch addresses"
    14801464msgstr "Valideer Nederlandse adressen"
    14811465
    1482 #: src/Shipping_Method/Settings.php:477
     1466#: src/Shipping_Method/Settings.php:506
    14831467msgid "Based on zipcode and housenumber combination the address is checked."
    14841468msgstr "Op basis van de combinatie postcode en huisnummer wordt het adres gecontroleerd."
    14851469
    1486 #: src/Shipping_Method/Settings.php:482
     1470#: src/Shipping_Method/Settings.php:511
    14871471msgid "Use PostNL address-field"
    14881472msgstr "Gebruik PostNL adresvelden"
    14891473
    1490 #: src/Shipping_Method/Settings.php:485
     1474#: src/Shipping_Method/Settings.php:514
    14911475msgid "For zipcode, housenumber, housenumber extension and street separate address fields are displayed when this settings is enabled. This only applies for Dutch addresses."
    14921476msgstr "Voor postcode, huisnummer, huisnummer toevoeging en straat voor losse velden getoond als deze instelling geactiveerd is. Dit geldt alleen voor Nederlandse adressen."
    14931477
    1494 #: src/Shipping_Method/Settings.php:492
     1478#: src/Shipping_Method/Settings.php:521
    14951479msgid "Shipping Outside Europe Settings"
    14961480msgstr "Versturen buiten Europa"
    14971481
    1498 #: src/Shipping_Method/Settings.php:494
     1482#: src/Shipping_Method/Settings.php:523
    14991483msgid "Please insert your Parcels non-EU credentials."
    15001484msgstr "Vul hier je Pakketten non-EU klantcodegegevens in."
    15011485
    1502 #: src/Shipping_Method/Settings.php:497
     1486#: src/Shipping_Method/Settings.php:526
    15031487msgid "Parcels non-EU Barcode Type"
    15041488msgstr "Pakketten non-EU Barcode Type"
    15051489
    1506 #: src/Shipping_Method/Settings.php:502
     1490#: src/Shipping_Method/Settings.php:531
    15071491msgid "CD"
    15081492msgstr "CD"
    15091493
    1510 #: src/Shipping_Method/Settings.php:506
     1494#: src/Shipping_Method/Settings.php:535
    15111495msgid "Parcels non-EU Customer Code"
    15121496msgstr "Pakketten non-EU Klantcode"
    15131497
    1514 #: src/Shipping_Method/Settings.php:511
     1498#: src/Shipping_Method/Settings.php:540
    15151499msgid "1234"
    15161500msgstr "1234"
    15171501
    1518 #: src/Shipping_Method/Settings.php:515
     1502#: src/Shipping_Method/Settings.php:544
    15191503msgid "Default HS Tariff Code"
    15201504msgstr "Standaard GS tarief code"
    15211505
    1522 #: src/Shipping_Method/Settings.php:517
     1506#: src/Shipping_Method/Settings.php:546
    15231507msgid "The HS tariff code is used by customs to classify goods. The HS tariff code can be found on the website of the Dutch Chamber of Commerce."
    15241508msgstr "De GS tarief code wordt gebruikt door de douane om goederen te classificeren. De GS tarief code van goederen is te vinden op de website van de Nederlandse Kamer van Koophandel."
    15251509
    1526 #: src/Shipping_Method/Settings.php:523
     1510#: src/Shipping_Method/Settings.php:552
    15271511msgid "Default Country of Origin"
    15281512msgstr "Standaard land van herkomst"
    15291513
    1530 #: src/Shipping_Method/Settings.php:525
     1514#: src/Shipping_Method/Settings.php:554
    15311515msgid "Default country of origin is used by customs."
    15321516msgstr "De douane bekijkt het land van herkomst."
    15331517
    1534 #: src/Shipping_Method/Settings.php:532
     1518#: src/Shipping_Method/Settings.php:561
    15351519msgid "Merchant Customs Code"
    15361520msgstr "Handelsdouanecode"
    15371521
    1538 #: src/Shipping_Method/Settings.php:534
     1522#: src/Shipping_Method/Settings.php:563
    15391523msgid "Add merchant codes for specific non-EU countries."
    15401524msgstr "Voeg handelscodes toe voor specifieke landen buiten de EU."
    15411525
    1542 #: src/Shipping_Method/Settings.php:541
     1526#: src/Shipping_Method/Settings.php:570
    15431527msgid "Printer &amp; Email Settings"
    15441528msgstr "Printer &amp; Email Instellingen"
    15451529
    1546 #: src/Shipping_Method/Settings.php:543
     1530#: src/Shipping_Method/Settings.php:572
    15471531msgid "Please configure your printer and email preferences."
    15481532msgstr "Stel hier jouw printer en email voorkeuren in."
    15491533
    1550 #: src/Shipping_Method/Settings.php:546
     1534#: src/Shipping_Method/Settings.php:575
    15511535msgid "Printer Type"
    15521536msgstr ""
    15531537
    1554 #: src/Shipping_Method/Settings.php:548
     1538#: src/Shipping_Method/Settings.php:577
    15551539msgid "It is not recommended to send .pdf files/labels directly to a Zebra printer If you want to send it directly to your Zebra printer, please use .gif files or the native (generic) zpl printer type"
    15561540msgstr "Het is af te raden om PDF-bestanden af te drukken met een Zebra-printer. Gebruik voor een Zebra-printer labels in GIF-formaat of in ZPL-formaat"
    15571541
    1558 #: src/Shipping_Method/Settings.php:559
     1542#: src/Shipping_Method/Settings.php:588
    15591543msgid "DPI"
    15601544msgstr ""
    15611545
    1562 #: src/Shipping_Method/Settings.php:569
     1546#: src/Shipping_Method/Settings.php:598
    15631547msgid "Label Format"
    15641548msgstr "Labelformaat"
    15651549
    1566 #: src/Shipping_Method/Settings.php:571
     1550#: src/Shipping_Method/Settings.php:600
    15671551msgid "Use A6 format in case you use a labelprinter. Use A4 format for other regular printers."
    15681552msgstr "Stel A6 formaat in indien je gebruik maakt van een label printen. Gebruik het A4 formaat voor gebruikelijke printers."
    15691553
    1570 #: src/Shipping_Method/Settings.php:581
     1554#: src/Shipping_Method/Settings.php:610
    15711555msgid "Shipping confirmation e-mail address"
    15721556msgstr "E-mailadres verzendbewijzen"
    15731557
    1574 #: src/Shipping_Method/Settings.php:583
     1558#: src/Shipping_Method/Settings.php:612
    15751559msgid "This e-mail address will be used by PostNL for shipping confirmations. If left empty, no sender e-mail will be included."
    15761560msgstr "Dit e-mailadres zal worden gebruikt voor de verzendbewijzen voor de verzender. Indien hier niets ingevuld wordt zal de verzender geen digitaal bewijs van verzending ontvangen."
    15771561
    1578 #: src/Shipping_Method/Settings.php:587
     1562#: src/Shipping_Method/Settings.php:616
    15791563msgid "WooCommerce Email"
    15801564msgstr "WooCommerce Email"
    15811565
    1582 #: src/Shipping_Method/Settings.php:589
    1583 #: src/Shipping_Method/Settings.php:590
     1566#: src/Shipping_Method/Settings.php:618
     1567#: src/Shipping_Method/Settings.php:619
    15841568msgid "When PostNL label is created send email to customer."
    15851569msgstr "Verstuur email naar klant zodra PostNL label gecreëerd is."
    15861570
    1587 #: src/Shipping_Method/Settings.php:596
     1571#: src/Shipping_Method/Settings.php:625
    15881572msgid "WooCommerce Email Text"
    15891573msgstr "WooCommerce Email Tekst"
    15901574
    1591 #: src/Shipping_Method/Settings.php:598
     1575#: src/Shipping_Method/Settings.php:627
    15921576msgid "Text added for tracking note email."
    15931577msgstr "Tekst die wordt toegevoegd aan e-mailnotificaties."
    15941578
    1595 #: src/Shipping_Method/Settings.php:600
    1596 #: src/Shipping_Method/Settings.php:601
     1579#: src/Shipping_Method/Settings.php:629
     1580#: src/Shipping_Method/Settings.php:630
    15971581msgid "This is your track and track link {tracking-link}"
    15981582msgstr "Dit is je track & trace link {tracking-link}"
    15991583
    1600 #: src/Shipping_Method/Settings.php:605
    1601 #: src/Shipping_Method/Settings.php:738
     1584#: src/Shipping_Method/Settings.php:634
     1585#: src/Shipping_Method/Settings.php:782
    16021586msgid "Default shipping Options Settings"
    16031587msgstr "Standaard verzendopties instellingen"
    16041588
    1605 #: src/Shipping_Method/Settings.php:607
    1606 #: src/Shipping_Method/Settings.php:740
     1589#: src/Shipping_Method/Settings.php:636
     1590#: src/Shipping_Method/Settings.php:784
    16071591msgid "Please select Default shipping Options."
    16081592msgstr "Selecteer hier standaard verzendopties."
    16091593
    1610 #: src/Shipping_Method/Settings.php:613
     1594#: src/Shipping_Method/Settings.php:642
    16111595msgid "Select a default shipping option for domestic orders that are shipped with PostNL."
    16121596msgstr "Selecteer een standaard verzendoptie voor alle zendingen die binnen Nederland worden verstuurd met PostNL."
    16131597
    1614 #: src/Shipping_Method/Settings.php:617
     1598#: src/Shipping_Method/Settings.php:646
    16151599#: src/Utils.php:615
    16161600msgid "Standard shipment"
    16171601msgstr "Standaardzending"
    16181602
    1619 #: src/Shipping_Method/Settings.php:618
    1620 #: src/Shipping_Method/Settings.php:695
     1603#: src/Shipping_Method/Settings.php:647
     1604#: src/Shipping_Method/Settings.php:724
    16211605#: src/Utils.php:616
    16221606msgid "ID Check (18+)"
    16231607msgstr "ID Check (18+)"
    16241608
    1625 #: src/Shipping_Method/Settings.php:619
    1626 #: src/Shipping_Method/Settings.php:697
     1609#: src/Shipping_Method/Settings.php:648
     1610#: src/Shipping_Method/Settings.php:726
    16271611msgid "ID Check (18+) + Insured Shipping"
    16281612msgstr "ID Check (18+) + Verzekerd verzenden"
    16291613
    1630 #: src/Shipping_Method/Settings.php:621
     1614#: src/Shipping_Method/Settings.php:650
    16311615#: src/Utils.php:617
    16321616msgid "Return if no answer"
    16331617msgstr "Retour bij geen gehoor"
    16341618
    1635 #: src/Shipping_Method/Settings.php:622
     1619#: src/Shipping_Method/Settings.php:651
    16361620#: src/Utils.php:618
    16371621msgid "Signature on Delivery"
    16381622msgstr "Handtekening voor ontvangst"
    16391623
    1640 #: src/Shipping_Method/Settings.php:623
     1624#: src/Shipping_Method/Settings.php:652
    16411625#: src/Utils.php:619
    16421626msgid "Only Home Address"
    … …  
    16471631msgstr "Brievenbuspakje"
    16481632
    1649 #: src/Shipping_Method/Settings.php:626
     1633#: src/Shipping_Method/Settings.php:655
    16501634msgid "Signature on Delivery + Insured Shipping"
    16511635msgstr "Handtekening voor ontvangst + Verzekerd verzenden"
    16521636
    1653 #: src/Shipping_Method/Settings.php:627
     1637#: src/Shipping_Method/Settings.php:656
    16541638msgid "Signature on Delivery + Return if no answer"
    16551639msgstr "Handtekening voor ontvangst + Retour bij geen gehoor"
    16561640
    1657 #: src/Shipping_Method/Settings.php:628
     1641#: src/Shipping_Method/Settings.php:657
    16581642msgid "Insured Shipping + Return if no answer + Signature on Delivery"
    16591643msgstr "Verzekerd Verzenden + Retour bij geen gehoor + Handtekening voor ontvangst"
    16601644
    1661 #: src/Shipping_Method/Settings.php:629
     1645#: src/Shipping_Method/Settings.php:658
    16621646msgid "Only Home Address + Return if no answer"
    16631647msgstr "Alleen Huisadres + Retour bij geen gehoor"
    16641648
    1665 #: src/Shipping_Method/Settings.php:630
     1649#: src/Shipping_Method/Settings.php:659
    16661650msgid "Only Home Address + Return if no answer + Signature on Delivery"
    16671651msgstr "Alleen Huisadres + Retour bij geen gehoor + Handtekening voor ontvangst"
    16681652
    1669 #: src/Shipping_Method/Settings.php:631
     1653#: src/Shipping_Method/Settings.php:660
    16701654msgid "Only Home Address + Signature on Delivery"
    16711655msgstr "Alleen huisadres + Handtekening voor ontvangst"
    16721656
    1673 #: src/Shipping_Method/Settings.php:632
     1657#: src/Shipping_Method/Settings.php:661
    16741658msgid "Delivery Code at Door + Insured Shipping"
    16751659msgstr "Bezorgcode aan de deur + Verzekerd verzenden"
    16761660
    1677 #: src/Shipping_Method/Settings.php:636
     1661#: src/Shipping_Method/Settings.php:665
    16781662msgid "Shipping options Belgium"
    16791663msgstr "Standaard verzendopties België"
    16801664
    1681 #: src/Shipping_Method/Settings.php:638
     1665#: src/Shipping_Method/Settings.php:667
    16821666msgid "Select a default shipping option for the orders shipped to Belgium with PostNL."
    16831667msgstr "Selecteer een standaard verzendoptie voor alle zendingen die naar België worden verstuurd met PostNL."
    16841668
    1685 #: src/Shipping_Method/Settings.php:643
     1669#: src/Shipping_Method/Settings.php:672
    16861670msgid "Standard Shipment Belgium + Only Home Address"
    16871671msgstr "Standaardzending België + Alleen Huisadres"
    16881672
    1689 #: src/Shipping_Method/Settings.php:644
     1673#: src/Shipping_Method/Settings.php:673
    16901674msgid "Standard Shipment Belgium + Signature on Delivery"
    16911675msgstr "Standaardzending België + Handtekening voor ontvangst"
    16921676
    1693 #: src/Shipping_Method/Settings.php:645
     1677#: src/Shipping_Method/Settings.php:674
    16941678msgid "Standard Shipment Belgium + Insured Shipping"
    16951679msgstr "Standaardzending België + Verzekerd Verzenden"
    16961680
    1697 #: src/Shipping_Method/Settings.php:646
    1698 #: src/Shipping_Method/Settings.php:663
    1699 #: src/Shipping_Method/Settings.php:680
     1681#: src/Shipping_Method/Settings.php:675
     1682#: src/Shipping_Method/Settings.php:692
     1683#: src/Shipping_Method/Settings.php:709
    17001684#: src/Utils.php:623
    17011685msgid "Boxable Packet"
    17021686msgstr "Brievenbuspakje Internationaal"
    17031687
    1704 #: src/Shipping_Method/Settings.php:647
    1705 #: src/Shipping_Method/Settings.php:664
    1706 #: src/Shipping_Method/Settings.php:681
     1688#: src/Shipping_Method/Settings.php:676
     1689#: src/Shipping_Method/Settings.php:693
     1690#: src/Shipping_Method/Settings.php:710
    17071691msgid "Boxable Packet + Track & Trace"
    17081692msgstr "Brievenbuspakje Internationaal + Track & Trace"
    17091693
    1710 #: src/Shipping_Method/Settings.php:648
    1711 #: src/Shipping_Method/Settings.php:665
    1712 #: src/Shipping_Method/Settings.php:682
     1694#: src/Shipping_Method/Settings.php:677
     1695#: src/Shipping_Method/Settings.php:694
     1696#: src/Shipping_Method/Settings.php:711
    17131697msgid "Packets"
    17141698msgstr "Pakje"
    17151699
    1716 #: src/Shipping_Method/Settings.php:649
    1717 #: src/Shipping_Method/Settings.php:666
    1718 #: src/Shipping_Method/Settings.php:683
     1700#: src/Shipping_Method/Settings.php:678
     1701#: src/Shipping_Method/Settings.php:695
     1702#: src/Shipping_Method/Settings.php:712
    17191703msgid "Packets + Track & Trace"
    17201704msgstr "Pakje + Track & Trace"
    17211705
    1722 #: src/Shipping_Method/Settings.php:650
    1723 #: src/Shipping_Method/Settings.php:667
    1724 #: src/Shipping_Method/Settings.php:684
     1706#: src/Shipping_Method/Settings.php:679
     1707#: src/Shipping_Method/Settings.php:696
     1708#: src/Shipping_Method/Settings.php:713
    17251709msgid "Packets + Track & Trace + Insured"
    17261710msgstr "Pakje + Track & Trace + Verzekerd Verzenden"
    17271711
    1728 #: src/Shipping_Method/Settings.php:656
     1712#: src/Shipping_Method/Settings.php:685
    17291713msgid "Select a default shipping option for the orders shipped within European Union zone."
    17301714msgstr "Selecteer een standaard verzendoptie voor alle zendingen die naar EU-landen worden verstuurd met PostNL."
    17311715
    1732 #: src/Shipping_Method/Settings.php:660
     1716#: src/Shipping_Method/Settings.php:689
    17331717msgid "EU Parcel + Track & Trace"
    17341718msgstr "EU Pakket + Track & Trace"
    17351719
    1736 #: src/Shipping_Method/Settings.php:661
     1720#: src/Shipping_Method/Settings.php:690
    17371721msgid "EU Parcel + Track & Trace + Insured"
    17381722msgstr "EU Pakket + Track & Trace + Verzekerd Verzenden"
    17391723
    1740 #: src/Shipping_Method/Settings.php:662
     1724#: src/Shipping_Method/Settings.php:691
    17411725msgid "EU Parcel + Track & Trace + Insured Plus"
    17421726msgstr "EU Pakket + Track & Trace + Verzekerd Verzenden Plus"
    17431727
    1744 #: src/Shipping_Method/Settings.php:671
    1745 #: src/Shipping_Method/Settings.php:746
     1728#: src/Shipping_Method/Settings.php:700
     1729#: src/Shipping_Method/Settings.php:790
    17461730msgid "Default Shipping International"
    17471731msgstr "Standaard verzendopties non-EU"
    17481732
    1749 #: src/Shipping_Method/Settings.php:673
     1733#: src/Shipping_Method/Settings.php:702
    17501734msgid "Shipping options non-EU (outside the EU borders)."
    17511735msgstr "Selecteer een standaard verzendoptie voor alle zendingen die worden verstuurd met PostNL."
    17521736
    1753 #: src/Shipping_Method/Settings.php:677
     1737#: src/Shipping_Method/Settings.php:706
    17541738msgid "Parcel non-EU + Track & Trace"
    17551739msgstr "Non-EU Pakket + Track & Trace"
    17561740
    1757 #: src/Shipping_Method/Settings.php:678
     1741#: src/Shipping_Method/Settings.php:707
    17581742msgid "Parcel non-EU + Track & Trace + Insured"
    17591743msgstr "Non-EU Pakket + Track & Trace + Verzekerd Verzenden"
    17601744
    1761 #: src/Shipping_Method/Settings.php:679
    1762 #: src/Shipping_Method/Settings.php:752
     1745#: src/Shipping_Method/Settings.php:708
     1746#: src/Shipping_Method/Settings.php:796
    17631747msgid "Parcel non-EU + Track & Trace + Insured Plus"
    17641748msgstr "Non-EU Pakket + Track & Trace + Verzekerd Verzenden Plus"
    17651749
    1766 #: src/Shipping_Method/Settings.php:688
     1750#: src/Shipping_Method/Settings.php:717
    17671751msgid "Default Shipping Pickup"
    17681752msgstr "Standaard verzendmethode afhalen"
    17691753
    1770 #: src/Shipping_Method/Settings.php:690
     1754#: src/Shipping_Method/Settings.php:719
    17711755msgid "Shipping options Pickup."
    17721756msgstr "Selecteer een standaard verzendoptie voor afhalen bij PostNL."
    17731757
    1774 #: src/Shipping_Method/Settings.php:694
     1758#: src/Shipping_Method/Settings.php:723
    17751759msgid "Standard Shipping"
    17761760msgstr "Standaardzending"
    17771761
    1778 #: src/Shipping_Method/Settings.php:696
     1762#: src/Shipping_Method/Settings.php:725
    17791763#: src/Utils.php:625
    17801764msgid "Insured Shipping"
    17811765msgstr "Verzekerd verzenden"
    17821766
    1783 #: src/Shipping_Method/Settings.php:701
     1767#: src/Shipping_Method/Settings.php:730
    17841768msgid "Default automatic letterboxparcel product"
    17851769msgstr "Standaard verzendoptie voor automatische brievenbuspakjes"
    17861770
    17871771#: src/Order/Base.php:317
    1788 #: src/Shipping_Method/Settings.php:624
    1789 #: src/Shipping_Method/Settings.php:707
     1772#: src/Shipping_Method/Settings.php:653
     1773#: src/Shipping_Method/Settings.php:736
    17901774msgid "Letterboxparcel Standard (24 hours)"
    17911775msgstr "Brievenbuspakje standaard (24 uur)"
    17921776
    17931777#: src/Order/Base.php:329
    1794 #: src/Shipping_Method/Settings.php:625
    1795 #: src/Shipping_Method/Settings.php:708
     1778#: src/Shipping_Method/Settings.php:654
     1779#: src/Shipping_Method/Settings.php:737
    17961780msgid "Letterboxparcel 48 hours"
    17971781msgstr "Brievenbuspakje 48 uur"
    17981782
    1799 #: src/Shipping_Method/Settings.php:709
     1783#: src/Shipping_Method/Settings.php:738
    18001784msgid "Let customer decide"
    18011785msgstr "Keuze aan ontvanger"
    18021786
    1803 #: src/Shipping_Method/Settings.php:713
     1787#: src/Shipping_Method/Settings.php:742
    18041788msgid "Automatically change order status to Completed"
    18051789msgstr "Automatische statuswijziging naar Voltooid"
    18061790
    1807 #: src/Shipping_Method/Settings.php:715
    1808 #: src/Shipping_Method/Settings.php:716
     1791#: src/Shipping_Method/Settings.php:744
     1792#: src/Shipping_Method/Settings.php:745
    18091793msgid "Automatically change order status to Completed once an order has been pre-alerted and printed"
    18101794msgstr "Wijzig de status automatisch naar Afgerond nadat een order is aangemaakt en geprint"
    18111795
    1812 #: src/Shipping_Method/Settings.php:748
     1796#: src/Shipping_Method/Settings.php:792
    18131797msgid "Select a default shipping option for the orders shipped internationally (outside the EU borders)."
    18141798msgstr ""
    … …  
    19591943msgstr ""
    19601944
     1945#: src/Shipping_Method/Settings.php:94
     1946msgid "Old API Key"
     1947msgstr "Oude API Key"
     1948
     1949#: src/Shipping_Method/Settings.php:115
     1950msgid "Old Sandbox API Key"
     1951msgstr "Oude Sandbox API Key"
     1952
     1953#: src/Rest_API/Barcode/Key_Validator.php:195
     1954msgid "The newly entered API key is invalid. Please check the key and enter it again."
     1955msgstr "Ingevulde nieuwe API key ongeldig. Controleer de key en vul deze opnieuw in."
     1956
     1957#: src/Admin/Api_Key_Banner.php:168
     1958msgid "Important: In the latest update of the plug-in, an additional API key field has been added to the account configuration of the PostNL plug-in. This field must be filled in with the new API key that can be obtained via the Self Service module on the PostNL Business Portal. This API key is required to gain access to the new APIs that will be rolled out in a future update of the plug-in. It is very important that this key is entered before the relevant update is performed; otherwise, no connection can be made to the new PostNL APIs, and it will not be possible to create labels or use checkout features such as delivery days and pickup points."
     1959msgstr "Let op: er is in de laatste update van de plug-in een extra API key veld toegevoegd aan de accountconfiguratie van de PostNL plug-in. In dit veld moet de nieuwe API key ingevuld worden die je via de Self Service module in Mijn PostNL Zakelijk kunt verkrijgen. Deze API key is nodig om toegang te krijgen tot de nieuwe API's die zullen worden uitgerold in een toekomstige update van de plug-in. Het is van groot belang dat deze key ingevuld wordt omdat er anders geen verbinding gemaakt kan worden met de nieuwe PostNL API's en er dus geen labels aangemaakt kunnen worden of gebruik gemaakt kan worden van de check-out functies zoals bezorgdagen en afhaalpunten."
     1960
     1961#: src/Admin/Api_Key_Banner.php:147
     1962msgid "Remind me later"
     1963msgstr "Herinner me later"
     1964
     1965#: src/Admin/Api_Key_Banner.php:150
     1966msgid "Dismiss"
     1967msgstr "Verbergen"
     1968
     1969#: src/Admin/Api_Key_Banner.php:141
     1970msgid "PostNL:"
     1971msgstr ""
     1972
     1973#: src/Admin/Api_Key_Banner.php:144
     1974msgid "Get your API key"
     1975msgstr "Vraag API-key aan"
     1976
     1977#: src/Admin/Api_Key_Banner.php:174
     1978msgid "Important: PostNL is migrating to the new Future-proof API v4. Don't you have an API key yet, or do you have an API key issued before September 14, 2026? Request a new API key below. Enter your PostNL API key in the account configuration of the PostNL plug-in. This key is required to connect to the PostNL APIs. Without it you cannot create labels or use checkout features such as delivery days and pickup points."
     1979msgstr "PostNL stapt over op de nieuwe Future-proof API v4. Heb je nog geen API key of een API key van vóór 14 september 2026? Vraag dan hieronder een nieuwe API-key aan. Voer je PostNL API key in bij de accountconfiguratie van de PostNL-plug-in. Deze API key is vereist om verbinding te maken met de PostNL-API's. Zonder deze API key kun je geen verzendlabels aanmaken en geen gebruikmaken van checkout-functies zoals bezorgdagen en afhaalpunten."
     1980
    19611981#: src/Order/Base.php:995
    19621982msgid "PostNL returned a label without a barcode. Please try generating the label again."
    … …  
    20082028msgstr ""
    20092029
     2030#: src/Shipping_Method/PostNL.php:166
     2031msgid "API key status"
     2032msgstr "API key-status"
     2033
     2034#: src/Shipping_Method/Settings.php:96
     2035msgid "The key you were using before. It is locked because new keys go in the field below."
     2036msgstr ""
     2037
     2038#: src/Shipping_Method/Settings.php:103
     2039msgid "API Key"
     2040msgstr ""
     2041
     2042#: src/Shipping_Method/Settings.php:105
     2043msgid "Enter your PostNL API key here. You can get it from the Self Service module on the PostNL Business Portal."
     2044msgstr ""
     2045
     2046#: src/Shipping_Method/Settings.php:117
     2047msgid "The sandbox key you were using before. It is locked because new keys go in the field below."
     2048msgstr ""
     2049
     2050#: src/Shipping_Method/Settings.php:126
     2051msgid "Enter your PostNL sandbox API key here. You can get it from the Self Service module on the PostNL Business Portal."
     2052msgstr ""
     2053
     2054#: src/Shipping_Method/Settings.php:1128
     2055msgid "Self Service module on the PostNL Business Portal"
     2056msgstr ""
     2057
     2058#: src/Shipping_Method/Settings.php:1194
     2059msgid "Valid"
     2060msgstr ""
     2061
     2062#: src/Shipping_Method/Settings.php:1196
     2063msgid "Your API key is working and will be used for the new PostNL APIs."
     2064msgstr ""
     2065
     2066#: src/Shipping_Method/Settings.php:1203
     2067msgid "Same as old key"
     2068msgstr ""
     2069
     2070#: src/Shipping_Method/Settings.php:1205
     2071msgid "This is the key you already had, not a new one."
     2072msgstr ""
     2073
     2074#. translators: %s is a link to the PostNL Business Portal Self Service module.
     2075#: src/Shipping_Method/Settings.php:1207
     2076msgid "You need a separate key. Request one from the %s, then paste it into the field above."
     2077msgstr ""
     2078
     2079#: src/Shipping_Method/Settings.php:1295
     2080msgid "Not valid"
     2081msgstr ""
     2082
     2083#: src/Shipping_Method/Settings.php:1219
     2084msgid "Not set"
     2085msgstr ""
     2086
     2087#: src/Shipping_Method/Settings.php:1221
     2088msgid "You have not entered your API key yet."
     2089msgstr ""
     2090
     2091#. translators: %s is a link to the PostNL Business Portal Self Service module.
     2092#: src/Shipping_Method/Settings.php:1299
     2093msgid "Check that you copied the whole key with no extra spaces, then save again. If it keeps failing, request a new key from the %s."
     2094msgstr ""
     2095
    20102096#: templates/emails/plain/smart-return-email.php:30
    20112097#: templates/emails/smart-return-email.php:39
    … …  
    20162102msgid "PostNL Smart Return barcode"
    20172103msgstr ""
     2104
     2105#: src/Admin/Api_Key_Check.php:55
     2106msgid "You are not allowed to do this."
     2107msgstr ""
     2108
     2109#: src/Admin/Api_Key_Check.php:91
     2110msgid "Too many checks in a short time. Please wait a moment and try again."
     2111msgstr ""
     2112
     2113#: src/Rest_API/Barcode/Key_Validator.php:185
     2114msgid "Fill in your Customer Code and Customer Number first, then check the key again."
     2115msgstr ""
     2116
     2117#: src/Rest_API/Barcode/Key_Validator.php:188
     2118msgid "PostNL could not process the check. This usually means the Customer Code or Customer Number does not match this key."
     2119msgstr ""
     2120
     2121#: src/Rest_API/Barcode/Key_Validator.php:191
     2122msgid "We could not reach PostNL to check the key. Please try again in a few minutes."
     2123msgstr ""
     2124
     2125#: src/Shipping_Method/Settings.php:1185
     2126msgid "Works, not saved yet"
     2127msgstr ""
     2128
     2129#: src/Shipping_Method/Settings.php:1187
     2130msgid "This key works. Save changes to start using it."
     2131msgstr ""
     2132
     2133#. translators: %s is a link to the PostNL Business Portal Self Service module.
     2134#: src/Shipping_Method/Settings.php:1224
     2135msgid "Request your new key from the %s and enter it above to switch over from your old key."
     2136msgstr ""
     2137
     2138#. translators: %s is a link to the PostNL Business Portal Self Service module.
     2139#: src/Shipping_Method/Settings.php:1226
     2140msgid "Request your key from the %s and enter it above — the plug-in needs it to connect to PostNL."
     2141msgstr ""
     2142
     2143#: src/Shipping_Method/Settings.php:1264
     2144msgid " The plug-in is still using your old key."
     2145msgstr ""
     2146
     2147#: src/Shipping_Method/Settings.php:1265
     2148msgid " The plug-in has no working key to connect with yet."
     2149msgstr ""
     2150
     2151#: src/Shipping_Method/Settings.php:1270
     2152#: src/Shipping_Method/Settings.php:1286
     2153msgid "Could not check"
     2154msgstr ""
     2155
     2156#: src/Shipping_Method/Settings.php:1272
     2157msgid "PostNL could not process the check."
     2158msgstr ""
     2159
     2160#: src/Shipping_Method/Settings.php:1273
     2161msgid "This usually means the Customer Code or Customer Number does not match this key. Check them and save again."
     2162msgstr ""
     2163
     2164#: src/Shipping_Method/Settings.php:1278
     2165msgid "Not checked"
     2166msgstr ""
     2167
     2168#: src/Shipping_Method/Settings.php:1280
     2169msgid "We have not checked this key yet."
     2170msgstr ""
     2171
     2172#: src/Shipping_Method/Settings.php:1281
     2173msgid "Fill in your Customer Code and Customer Number, then save again."
     2174msgstr ""
     2175
     2176#: src/Shipping_Method/Settings.php:1288
     2177msgid "We could not reach PostNL to check this key."
     2178msgstr ""
     2179
     2180#: src/Shipping_Method/Settings.php:1289
     2181msgid "This is usually temporary. Save again in a few minutes."
     2182msgstr ""
     2183
     2184#: src/Shipping_Method/Settings.php:1297
     2185msgid "PostNL rejected this key."
     2186msgstr ""
  • woo-postnl/trunk/languages/postnl-for-woocommerce.pot

    r3673827 r3697413  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: PostNL for WooCommerce 5.9.11\n"
     5"Project-Id-Version: PostNL for WooCommerce 5.9.12\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/postnl-for-woocommerce\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-08-31T09:57:49+00:00\n"
     12"POT-Creation-Date: 2026-09-15T16:51:55+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
    … …  
    3838#: postnl-for-woocommerce.php
    3939msgid "https://postnl.post/"
     40msgstr ""
     41
     42#: src/Admin/Api_Key_Banner.php:141
     43msgid "PostNL:"
     44msgstr ""
     45
     46#: src/Admin/Api_Key_Banner.php:144
     47msgid "Get your API key"
     48msgstr ""
     49
     50#: src/Admin/Api_Key_Banner.php:147
     51msgid "Remind me later"
     52msgstr ""
     53
     54#: src/Admin/Api_Key_Banner.php:150
     55msgid "Dismiss"
     56msgstr ""
     57
     58#: src/Admin/Api_Key_Banner.php:168
     59msgid "Important: In the latest update of the plug-in, an additional API key field has been added to the account configuration of the PostNL plug-in. This field must be filled in with the new API key that can be obtained via the Self Service module on the PostNL Business Portal. This API key is required to gain access to the new APIs that will be rolled out in a future update of the plug-in. It is very important that this key is entered before the relevant update is performed; otherwise, no connection can be made to the new PostNL APIs, and it will not be possible to create labels or use checkout features such as delivery days and pickup points."
     60msgstr ""
     61
     62#: src/Admin/Api_Key_Banner.php:174
     63msgid "Important: PostNL is migrating to the new Future-proof API v4. Don't you have an API key yet, or do you have an API key issued before September 14, 2026? Request a new API key below. Enter your PostNL API key in the account configuration of the PostNL plug-in. This key is required to connect to the PostNL APIs. Without it you cannot create labels or use checkout features such as delivery days and pickup points."
     64msgstr ""
     65
     66#: src/Admin/Api_Key_Check.php:55
     67msgid "You are not allowed to do this."
     68msgstr ""
     69
     70#: src/Admin/Api_Key_Check.php:91
     71msgid "Too many checks in a short time. Please wait a moment and try again."
    4072msgstr ""
    4173
    … …  
    101133#: src/Frontend/Checkout_Fields.php:102
    102134#: src/Frontend/Checkout_Fields.php:103
    103 #: src/Shipping_Method/Settings.php:247
     135#: src/Shipping_Method/Settings.php:276
    104136msgid "House Number Extension"
    105137msgstr ""
    … …  
    129161
    130162#: src/Frontend/Delivery_Day.php:115
    131 #: src/Shipping_Method/Settings.php:341
     163#: src/Shipping_Method/Settings.php:370
    132164#: build/postnl-container-frontend.js:1
    133165#: client/checkout/postnl-container/block.js:282
    … …  
    175207
    176208#: src/Helper/Mapping.php:32
    177 #: src/Shipping_Method/Settings.php:372
     209#: src/Shipping_Method/Settings.php:401
    178210msgid "Morning Delivery"
    179211msgstr ""
    … …  
    184216
    185217#: src/Helper/Mapping.php:34
    186 #: src/Shipping_Method/Settings.php:390
     218#: src/Shipping_Method/Settings.php:419
    187219msgid "Evening Delivery"
    188220msgstr ""
    … …  
    193225
    194226#: src/Helper/Mapping.php:42
    195 #: src/Shipping_Method/Settings.php:642
     227#: src/Shipping_Method/Settings.php:671
    196228#: src/Utils.php:622
    197229msgid "Standard Shipment Belgium"
    … …  
    219251msgstr ""
    220252
    221 #: src/Main.php:396
     253#: src/Main.php:401
    222254msgid "PostNL plugin requires WooCommerce to be installed and activated!"
    223255msgstr ""
    224256
    225 #: src/Main.php:409
     257#: src/Main.php:414
    226258msgid "PostNL plugin requires store country to be Netherlands (NL) or Belgium (BE)!"
    227259msgstr ""
    228260
    229 #: src/Main.php:487
     261#: src/Main.php:492
    230262msgid "Postnl Checkout Blocks"
    231263msgstr ""
    232264
    233 #: src/Main.php:506
     265#: src/Main.php:511
    234266msgid "Leave a review"
    235267msgstr ""
    236268
    237 #: src/Main.php:526
     269#: src/Main.php:531
    238270msgid "Settings"
    239271msgstr ""
    … …  
    264296
    265297#: src/Order/Base.php:317
    266 #: src/Shipping_Method/Settings.php:624
    267 #: src/Shipping_Method/Settings.php:707
     298#: src/Shipping_Method/Settings.php:653
     299#: src/Shipping_Method/Settings.php:736
    268300msgid "Letterboxparcel Standard (24 hours)"
    269301msgstr ""
    270302
    271303#: src/Order/Base.php:329
    272 #: src/Shipping_Method/Settings.php:625
    273 #: src/Shipping_Method/Settings.php:708
     304#: src/Shipping_Method/Settings.php:654
     305#: src/Shipping_Method/Settings.php:737
    274306msgid "Letterboxparcel 48 hours"
    275307msgstr ""
    … …  
    428460
    429461#: src/Order/Bulk.php:534
    430 #: src/Shipping_Method/Settings.php:611
     462#: src/Shipping_Method/Settings.php:640
    431463msgid "Shipping options domestic"
    432464msgstr ""
    433465
    434466#: src/Order/Bulk.php:552
    435 #: src/Shipping_Method/Settings.php:654
     467#: src/Shipping_Method/Settings.php:683
    436468msgid "Shipping options EU"
    437469msgstr ""
    … …  
    685717msgstr ""
    686718
    687 #: src/Rest_API/Base.php:273
    688 #: src/Rest_API/Base.php:282
    689 #: src/Rest_API/Base.php:290
     719#: src/Rest_API/Barcode/Key_Validator.php:185
     720msgid "Fill in your Customer Code and Customer Number first, then check the key again."
     721msgstr ""
     722
     723#: src/Rest_API/Barcode/Key_Validator.php:188
     724msgid "PostNL could not process the check. This usually means the Customer Code or Customer Number does not match this key."
     725msgstr ""
     726
     727#: src/Rest_API/Barcode/Key_Validator.php:191
     728msgid "We could not reach PostNL to check the key. Please try again in a few minutes."
     729msgstr ""
     730
     731#: src/Rest_API/Barcode/Key_Validator.php:195
     732msgid "The newly entered API key is invalid. Please check the key and enter it again."
     733msgstr ""
     734
     735#: src/Rest_API/Base.php:278
     736#: src/Rest_API/Base.php:287
     737#: src/Rest_API/Base.php:295
    690738msgid "Unknown error!"
    691739msgstr ""
    … …  
    930978
    931979#: src/Shipping_Method/Fill_In_With_PostNL_Settings.php:67
    932 #: src/Shipping_Method/Settings.php:115
    933 #: src/Shipping_Method/Settings.php:187
    934 #: src/Shipping_Method/Settings.php:307
    935 #: src/Shipping_Method/Settings.php:343
    936 #: src/Shipping_Method/Settings.php:374
    937 #: src/Shipping_Method/Settings.php:392
    938 #: src/Shipping_Method/Settings.php:476
    939 #: src/Shipping_Method/Settings.php:484
     980#: src/Shipping_Method/Settings.php:144
     981#: src/Shipping_Method/Settings.php:216
     982#: src/Shipping_Method/Settings.php:336
     983#: src/Shipping_Method/Settings.php:372
     984#: src/Shipping_Method/Settings.php:403
     985#: src/Shipping_Method/Settings.php:421
     986#: src/Shipping_Method/Settings.php:505
     987#: src/Shipping_Method/Settings.php:513
    940988msgid "Enable"
    941989msgstr ""
    … …  
    10911139
    10921140#. translators: %1$s & %2$s is replaced with <a> tag.
    1093 #: src/Shipping_Method/PostNL.php:39
     1141#: src/Shipping_Method/PostNL.php:40
    10941142msgid "Below you will find all functions for controlling, preparing and processing your shipment with PostNL. Prerequisite is a valid PostNL business customer contract. If you are not yet a PostNL business customer, you can request a quote %1$shere%2$s."
    10951143msgstr ""
    10961144
     1145#: src/Shipping_Method/PostNL.php:166
     1146msgid "API key status"
     1147msgstr ""
     1148
    10971149#. Translators: %s is the currency symbol.
    1098 #: src/Shipping_Method/PostNL.php:117
     1150#: src/Shipping_Method/PostNL.php:218
    10991151msgid "Free shipping from %s"
    11001152msgstr ""
    11011153
    1102 #: src/Shipping_Method/PostNL.php:119
     1154#: src/Shipping_Method/PostNL.php:220
    11031155msgid "Keep empty if you don’t want to use Free shipping"
    11041156msgstr ""
    11051157
    1106 #: src/Shipping_Method/PostNL.php:186
     1158#: src/Shipping_Method/PostNL.php:297
    11071159msgid "Country"
    11081160msgstr ""
    11091161
    1110 #: src/Shipping_Method/PostNL.php:189
     1162#: src/Shipping_Method/PostNL.php:300
    11111163msgid "Merchant Code"
    11121164msgstr ""
    11131165
    1114 #: src/Shipping_Method/PostNL.php:192
     1166#: src/Shipping_Method/PostNL.php:303
    11151167msgid "Action"
    11161168msgstr ""
    11171169
    1118 #: src/Shipping_Method/PostNL.php:203
    1119 #: src/Shipping_Method/PostNL.php:243
     1170#: src/Shipping_Method/PostNL.php:314
     1171#: src/Shipping_Method/PostNL.php:354
    11201172msgid "Select Country"
    11211173msgstr ""
    11221174
    1123 #: src/Shipping_Method/PostNL.php:215
    1124 #: src/Shipping_Method/PostNL.php:255
     1175#: src/Shipping_Method/PostNL.php:326
     1176#: src/Shipping_Method/PostNL.php:366
    11251177msgid "Enter merchant code"
    11261178msgstr ""
    11271179
    1128 #: src/Shipping_Method/PostNL.php:220
    1129 #: src/Shipping_Method/PostNL.php:260
     1180#: src/Shipping_Method/PostNL.php:331
     1181#: src/Shipping_Method/PostNL.php:371
    11301182msgid "Remove"
    11311183msgstr ""
    11321184
    1133 #: src/Shipping_Method/PostNL.php:229
     1185#: src/Shipping_Method/PostNL.php:340
    11341186msgid "Add Merchant Code"
    11351187msgstr ""
    11361188
    1137 #: src/Shipping_Method/PostNL.php:291
     1189#: src/Shipping_Method/PostNL.php:402
    11381190msgid "Duplicate countries found and have been removed. Only the last entry for each country will be saved."
    11391191msgstr ""
    11401192
    1141 #: src/Shipping_Method/PostNL.php:310
     1193#: src/Shipping_Method/PostNL.php:421
    11421194msgid "Some merchant codes were not saved because of missing country or code."
    11431195msgstr ""
    11441196
    1145 #: src/Shipping_Method/Settings.php:63
     1197#: src/Shipping_Method/Settings.php:64
    11461198msgid "Manual"
    11471199msgstr ""
    11481200
    11491201#. translators: %1$s & %2$s is replaced with <a> tag.
    1150 #: src/Shipping_Method/Settings.php:66
     1202#: src/Shipping_Method/Settings.php:67
    11511203msgid "Consult the %1$smanual%2$s for help installing the plug-in."
    11521204msgstr ""
    11531205
    1154 #: src/Shipping_Method/Settings.php:70
     1206#: src/Shipping_Method/Settings.php:71
    11551207msgid "Account Settings"
    11561208msgstr ""
    11571209
    11581210#. translators: %1$s & %2$s is replaced with <a> tag.
    1159 #: src/Shipping_Method/Settings.php:73
     1211#: src/Shipping_Method/Settings.php:74
    11601212msgid "Please configure your shipping parameters and your access towards the PostNL APIs by means of authentication. You can find the details of your PostNL account in Mijn %1$sPostNL%2$s under \"My Account > API beheren\"."
    11611213msgstr ""
    11621214
    1163 #: src/Shipping_Method/Settings.php:76
     1215#: src/Shipping_Method/Settings.php:77
    11641216msgid "Environment Mode"
    11651217msgstr ""
    11661218
    1167 #: src/Shipping_Method/Settings.php:78
     1219#: src/Shipping_Method/Settings.php:79
    11681220msgid "Choose the environment mode."
    11691221msgstr ""
    11701222
    1171 #: src/Shipping_Method/Settings.php:81
     1223#: src/Shipping_Method/Settings.php:82
    11721224msgid "Production"
    11731225msgstr ""
    11741226
    1175 #: src/Shipping_Method/Settings.php:82
     1227#: src/Shipping_Method/Settings.php:83
    11761228msgid "Sandbox"
    11771229msgstr ""
    11781230
    1179 #: src/Shipping_Method/Settings.php:89
    1180 msgid "Production API Key"
    1181 msgstr ""
    1182 
    1183 #. translators: %1$s & %2$s is replaced with <a> tag.
    1184 #: src/Shipping_Method/Settings.php:92
    1185 msgid "Insert your PostNL production API-key. You can find your API-key on Mijn %1$sPostNL%2$s under \"My Account\"."
    1186 msgstr ""
    1187 
    1188 #: src/Shipping_Method/Settings.php:98
     1231#: src/Shipping_Method/Settings.php:94
     1232msgid "Old API Key"
     1233msgstr ""
     1234
     1235#: src/Shipping_Method/Settings.php:96
     1236msgid "The key you were using before. It is locked because new keys go in the field below."
     1237msgstr ""
     1238
     1239#: src/Shipping_Method/Settings.php:103
     1240msgid "API Key"
     1241msgstr ""
     1242
     1243#: src/Shipping_Method/Settings.php:105
     1244msgid "Enter your PostNL API key here. You can get it from the Self Service module on the PostNL Business Portal."
     1245msgstr ""
     1246
     1247#: src/Shipping_Method/Settings.php:115
     1248msgid "Old Sandbox API Key"
     1249msgstr ""
     1250
     1251#: src/Shipping_Method/Settings.php:117
     1252msgid "The sandbox key you were using before. It is locked because new keys go in the field below."
     1253msgstr ""
     1254
     1255#: src/Shipping_Method/Settings.php:124
    11891256msgid "Sandbox API Key"
    11901257msgstr ""
    11911258
    1192 #. translators: %1$s & %2$s is replaced with <a> tag.
    1193 #: src/Shipping_Method/Settings.php:101
    1194 msgid "Insert your PostNL staging API-key. You can find your API-key on Mijn %1$sPostNL%2$s under \"My Account\"."
    1195 msgstr ""
    1196 
    1197 #: src/Shipping_Method/Settings.php:107
     1259#: src/Shipping_Method/Settings.php:126
     1260msgid "Enter your PostNL sandbox API key here. You can get it from the Self Service module on the PostNL Business Portal."
     1261msgstr ""
     1262
     1263#: src/Shipping_Method/Settings.php:136
    11981264msgid "Logging"
    11991265msgstr ""
    12001266
    12011267#. translators: %1$s is anchor opener tag and %2$s is anchor closer tag.
    1202 #: src/Shipping_Method/Settings.php:111
     1268#: src/Shipping_Method/Settings.php:140
    12031269msgid "A log file containing the communication to the PostNL server will be maintained if this option is checked. This can be used in case of technical issues and can be found %1$shere%2$s."
    12041270msgstr ""
    12051271
    1206 #: src/Shipping_Method/Settings.php:121
     1272#: src/Shipping_Method/Settings.php:150
    12071273msgid "Customer Number"
    12081274msgstr ""
    12091275
    1210 #: src/Shipping_Method/Settings.php:123
     1276#: src/Shipping_Method/Settings.php:152
    12111277msgid "e.g. \"11223344\""
    12121278msgstr ""
    12131279
    1214 #: src/Shipping_Method/Settings.php:129
     1280#: src/Shipping_Method/Settings.php:158
    12151281msgid "Customer Code"
    12161282msgstr ""
    12171283
    1218 #: src/Shipping_Method/Settings.php:131
     1284#: src/Shipping_Method/Settings.php:160
    12191285msgid "e.g. \"DEVC\""
    12201286msgstr ""
    12211287
    1222 #: src/Shipping_Method/Settings.php:138
     1288#: src/Shipping_Method/Settings.php:167
    12231289msgid "Company Name"
    12241290msgstr ""
    12251291
    1226 #: src/Shipping_Method/Settings.php:140
     1292#: src/Shipping_Method/Settings.php:169
    12271293msgid "Enter company name - this name will be noted as the sender on the label"
    12281294msgstr ""
    12291295
    1230 #: src/Shipping_Method/Settings.php:159
     1296#: src/Shipping_Method/Settings.php:188
    12311297msgid "Return Settings"
    12321298msgstr ""
    12331299
    1234 #: src/Shipping_Method/Settings.php:164
     1300#: src/Shipping_Method/Settings.php:193
    12351301msgid "Standard return option"
    12361302msgstr ""
    12371303
    1238 #: src/Shipping_Method/Settings.php:166
     1304#: src/Shipping_Method/Settings.php:195
    12391305msgid "- None: return labels are not automatically created"
    12401306msgstr ""
    12411307
    1242 #: src/Shipping_Method/Settings.php:167
     1308#: src/Shipping_Method/Settings.php:196
    12431309msgid "- Label in the box: a separate return label is created at the same time as the label for the outward shipment and can be included in the box."
    12441310msgstr ""
    12451311
    1246 #: src/Shipping_Method/Settings.php:170
     1312#: src/Shipping_Method/Settings.php:199
    12471313msgid "None"
    12481314msgstr ""
    12491315
    1250 #: src/Shipping_Method/Settings.php:171
     1316#: src/Shipping_Method/Settings.php:200
    12511317msgid "Label in the box"
    12521318msgstr ""
    12531319
    1254 #: src/Shipping_Method/Settings.php:185
     1320#: src/Shipping_Method/Settings.php:214
    12551321msgid "Directly activate return function for all labels"
    12561322msgstr ""
    12571323
    1258 #: src/Shipping_Method/Settings.php:190
     1324#: src/Shipping_Method/Settings.php:219
    12591325msgid "Yes, activate return function directly for all orders"
    12601326msgstr ""
    12611327
    1262 #: src/Shipping_Method/Settings.php:191
     1328#: src/Shipping_Method/Settings.php:220
    12631329msgid "No, activate return function per individual order"
    12641330msgstr ""
    12651331
    1266 #: src/Shipping_Method/Settings.php:196
     1332#: src/Shipping_Method/Settings.php:225
    12671333msgid "Activate Smart Return"
    12681334msgstr ""
    12691335
    1270 #: src/Shipping_Method/Settings.php:199
    1271 #: src/Shipping_Method/Settings.php:205
     1336#: src/Shipping_Method/Settings.php:228
     1337#: src/Shipping_Method/Settings.php:234
    12721338msgid "Activate"
    12731339msgstr ""
    12741340
    1275 #: src/Shipping_Method/Settings.php:203
     1341#: src/Shipping_Method/Settings.php:232
    12761342msgid "Return to home address"
    12771343msgstr ""
    12781344
    1279 #: src/Shipping_Method/Settings.php:206
     1345#: src/Shipping_Method/Settings.php:235
    12801346msgid "Activate this setting to use a home address for return shipments"
    12811347msgstr ""
    12821348
    1283 #: src/Shipping_Method/Settings.php:210
     1349#: src/Shipping_Method/Settings.php:239
    12841350msgid "Replynumber"
    12851351msgstr ""
    12861352
    1287 #: src/Shipping_Method/Settings.php:212
     1353#: src/Shipping_Method/Settings.php:241
    12881354msgid "Enter replynumber."
    12891355msgstr ""
    12901356
    1291 #: src/Shipping_Method/Settings.php:219
     1357#: src/Shipping_Method/Settings.php:248
    12921358msgid "Freepost Zipcode"
    12931359msgstr ""
    12941360
    1295 #: src/Shipping_Method/Settings.php:221
     1361#: src/Shipping_Method/Settings.php:250
    12961362msgid "Enter Freepost Zipcode."
    12971363msgstr ""
    12981364
    1299 #: src/Shipping_Method/Settings.php:226
     1365#: src/Shipping_Method/Settings.php:255
    13001366msgid "Freepost City"
    13011367msgstr ""
    13021368
    1303 #: src/Shipping_Method/Settings.php:228
     1369#: src/Shipping_Method/Settings.php:257
    13041370msgid "Enter Freepost City."
    13051371msgstr ""
    13061372
    1307 #: src/Shipping_Method/Settings.php:233
     1373#: src/Shipping_Method/Settings.php:262
    13081374msgid "Street Address"
    13091375msgstr ""
    13101376
    1311 #: src/Shipping_Method/Settings.php:235
     1377#: src/Shipping_Method/Settings.php:264
    13121378msgid "Enter Return Street Address."
    13131379msgstr ""
    13141380
    1315 #: src/Shipping_Method/Settings.php:240
     1381#: src/Shipping_Method/Settings.php:269
    13161382msgid "House Number"
    13171383msgstr ""
    13181384
    1319 #: src/Shipping_Method/Settings.php:242
     1385#: src/Shipping_Method/Settings.php:271
    13201386msgid "Enter return house number."
    13211387msgstr ""
    13221388
    1323 #: src/Shipping_Method/Settings.php:249
     1389#: src/Shipping_Method/Settings.php:278
    13241390msgid "Enter return house number extension."
    13251391msgstr ""
    13261392
    1327 #: src/Shipping_Method/Settings.php:254
     1393#: src/Shipping_Method/Settings.php:283
    13281394msgid "Zipcode"
    13291395msgstr ""
    13301396
    1331 #: src/Shipping_Method/Settings.php:256
     1397#: src/Shipping_Method/Settings.php:285
    13321398msgid "Enter Return Zipcode."
    13331399msgstr ""
    13341400
    1335 #: src/Shipping_Method/Settings.php:261
     1401#: src/Shipping_Method/Settings.php:290
    13361402msgid "City"
    13371403msgstr ""
    13381404
    1339 #: src/Shipping_Method/Settings.php:263
     1405#: src/Shipping_Method/Settings.php:292
    13401406msgid "Enter Return City."
    13411407msgstr ""
    13421408
    1343 #: src/Shipping_Method/Settings.php:268
     1409#: src/Shipping_Method/Settings.php:297
    13441410msgid "Return Customer Code"
    13451411msgstr ""
    13461412
    1347 #: src/Shipping_Method/Settings.php:270
     1413#: src/Shipping_Method/Settings.php:299
    13481414msgid "Be aware that the Return Customer Code differs from the regular Customer Code. You can find your Return customer code in Mijn PostNL."
    13491415msgstr ""
    13501416
    1351 #: src/Shipping_Method/Settings.php:276
     1417#: src/Shipping_Method/Settings.php:305
    13521418msgid "Checkout Settings"
    13531419msgstr ""
    13541420
    1355 #: src/Shipping_Method/Settings.php:278
     1421#: src/Shipping_Method/Settings.php:307
    13561422msgid "Please configure your checkout preferences."
    13571423msgstr ""
    13581424
    1359 #: src/Shipping_Method/Settings.php:281
     1425#: src/Shipping_Method/Settings.php:310
    13601426msgid "Shipping Methods"
    13611427msgstr ""
    13621428
    1363 #: src/Shipping_Method/Settings.php:283
     1429#: src/Shipping_Method/Settings.php:312
    13641430msgid "Select Shipping Methods can be associated with PostNL."
    13651431msgstr ""
    13661432
    1367 #: src/Shipping_Method/Settings.php:289
     1433#: src/Shipping_Method/Settings.php:318
    13681434msgid "Extra fee for the letterboxparcel (24 hours)"
    13691435msgstr ""
    13701436
    1371 #: src/Shipping_Method/Settings.php:291
     1437#: src/Shipping_Method/Settings.php:320
    13721438msgid "Extra fee added when Letterboxparcel Standard (24 hours) has been selected."
    13731439msgstr ""
    13741440
    1375 #: src/Shipping_Method/Settings.php:297
     1441#: src/Shipping_Method/Settings.php:326
    13761442msgid "Letterbox fee"
    13771443msgstr ""
    13781444
    1379 #: src/Shipping_Method/Settings.php:299
     1445#: src/Shipping_Method/Settings.php:328
    13801446msgid "Overrides the shipping cost when all items are eligible for letterbox delivery. Leave empty to use the standard shipping cost. The fee is set to €0 when free shipping applies."
    13811447msgstr ""
    13821448
    1383 #: src/Shipping_Method/Settings.php:305
     1449#: src/Shipping_Method/Settings.php:334
    13841450msgid "PostNL Pick-up Points"
    13851451msgstr ""
    13861452
    1387 #: src/Shipping_Method/Settings.php:308
     1453#: src/Shipping_Method/Settings.php:337
    13881454msgid "Show PostNL pick-up points in the checkout so that your customers can choose to get their orders delivered at a PostNL pick-up point."
    13891455msgstr ""
    13901456
    1391 #: src/Shipping_Method/Settings.php:315
     1457#: src/Shipping_Method/Settings.php:344
    13921458msgid "Extra fee pick-up delivery"
    13931459msgstr ""
    13941460
    1395 #: src/Shipping_Method/Settings.php:317
     1461#: src/Shipping_Method/Settings.php:346
    13961462msgid "Extra fee added when the customer selects a PostNL pick-up point."
    13971463msgstr ""
    13981464
    1399 #: src/Shipping_Method/Settings.php:344
     1465#: src/Shipping_Method/Settings.php:373
    14001466msgid "Show delivery days in the checkout so that your customers can choose which day to receive their order."
    14011467msgstr ""
    14021468
    1403 #: src/Shipping_Method/Settings.php:351
     1469#: src/Shipping_Method/Settings.php:380
    14041470msgid "Extra fee home delivery"
    14051471msgstr ""
    14061472
    1407 #: src/Shipping_Method/Settings.php:353
     1473#: src/Shipping_Method/Settings.php:382
    14081474msgid "Extra fee added when the customer selects home delivery."
    14091475msgstr ""
    14101476
    1411 #: src/Shipping_Method/Settings.php:359
     1477#: src/Shipping_Method/Settings.php:388
    14121478msgid "Number of Delivery Days"
    14131479msgstr ""
    14141480
    1415 #: src/Shipping_Method/Settings.php:361
     1481#: src/Shipping_Method/Settings.php:390
    14161482msgid "Number of delivery days displayed in the frontend. Maximum will be 12."
    14171483msgstr ""
    14181484
    1419 #: src/Shipping_Method/Settings.php:375
     1485#: src/Shipping_Method/Settings.php:404
    14201486msgid "Enable morning delivery in the checkout so your customers can choose to receive their orders in the morning."
    14211487msgstr ""
    14221488
    1423 #: src/Shipping_Method/Settings.php:382
     1489#: src/Shipping_Method/Settings.php:411
    14241490msgid "Morning Delivery Fee"
    14251491msgstr ""
    14261492
    1427 #: src/Shipping_Method/Settings.php:384
     1493#: src/Shipping_Method/Settings.php:413
    14281494msgid "Fee for receiving orders in the morning."
    14291495msgstr ""
    14301496
    1431 #: src/Shipping_Method/Settings.php:393
     1497#: src/Shipping_Method/Settings.php:422
    14321498msgid "Enable evening delivery in the checkout so your customers can choose to receive their orders in the evening."
    14331499msgstr ""
    14341500
    1435 #: src/Shipping_Method/Settings.php:400
     1501#: src/Shipping_Method/Settings.php:429
    14361502msgid "Evening Delivery Fee"
    14371503msgstr ""
    14381504
    1439 #: src/Shipping_Method/Settings.php:402
     1505#: src/Shipping_Method/Settings.php:431
    14401506msgid "Fee for receiving orders in the evening."
    14411507msgstr ""
    14421508
    1443 #: src/Shipping_Method/Settings.php:408
     1509#: src/Shipping_Method/Settings.php:437
    14441510msgid "Default Delivery Options Tab"
    14451511msgstr ""
    14461512
    1447 #: src/Shipping_Method/Settings.php:410
     1513#: src/Shipping_Method/Settings.php:439
    14481514msgid "Choose which tab is shown first in the delivery options menu at checkout."
    14491515msgstr ""
    14501516
    1451 #: src/Shipping_Method/Settings.php:414
     1517#: src/Shipping_Method/Settings.php:443
    14521518msgid "Home Delivery"
    14531519msgstr ""
    14541520
    1455 #: src/Shipping_Method/Settings.php:415
     1521#: src/Shipping_Method/Settings.php:444
    14561522msgid "Pickup Points"
    14571523msgstr ""
    14581524
    1459 #: src/Shipping_Method/Settings.php:421
     1525#: src/Shipping_Method/Settings.php:450
    14601526msgid "Transit Time"
    14611527msgstr ""
    14621528
    1463 #: src/Shipping_Method/Settings.php:423
     1529#: src/Shipping_Method/Settings.php:452
    14641530msgid "The number of days it takes for the order to be delivered after the order has been placed."
    14651531msgstr ""
    14661532
    1467 #: src/Shipping_Method/Settings.php:429
     1533#: src/Shipping_Method/Settings.php:458
    14681534msgid "Cut Off Time"
    14691535msgstr ""
    14701536
    1471 #: src/Shipping_Method/Settings.php:431
     1537#: src/Shipping_Method/Settings.php:460
    14721538msgid "If an order is ordered after this time, one day will be added to the transit time."
    14731539msgstr ""
    14741540
    1475 #: src/Shipping_Method/Settings.php:437
     1541#: src/Shipping_Method/Settings.php:466
    14761542msgid "Drop off Days"
    14771543msgstr ""
    14781544
    1479 #: src/Shipping_Method/Settings.php:439
     1545#: src/Shipping_Method/Settings.php:468
    14801546#: src/Utils.php:33
    14811547msgid "Monday"
    14821548msgstr ""
    14831549
    1484 #: src/Shipping_Method/Settings.php:440
     1550#: src/Shipping_Method/Settings.php:469
    14851551msgid "Select which days orders will be shipped."
    14861552msgstr ""
    14871553
    1488 #: src/Shipping_Method/Settings.php:446
     1554#: src/Shipping_Method/Settings.php:475
    14891555#: src/Utils.php:34
    14901556msgid "Tuesday"
    14911557msgstr ""
    14921558
    1493 #: src/Shipping_Method/Settings.php:451
     1559#: src/Shipping_Method/Settings.php:480
    14941560#: src/Utils.php:35
    14951561msgid "Wednesday"
    14961562msgstr ""
    14971563
    1498 #: src/Shipping_Method/Settings.php:456
     1564#: src/Shipping_Method/Settings.php:485
    14991565#: src/Utils.php:36
    15001566msgid "Thursday"
    15011567msgstr ""
    15021568
    1503 #: src/Shipping_Method/Settings.php:461
     1569#: src/Shipping_Method/Settings.php:490
    15041570#: src/Utils.php:37
    15051571msgid "Friday"
    15061572msgstr ""
    15071573
    1508 #: src/Shipping_Method/Settings.php:466
     1574#: src/Shipping_Method/Settings.php:495
    15091575#: src/Utils.php:38
    15101576msgid "Saturday"
    15111577msgstr ""
    15121578
    1513 #: src/Shipping_Method/Settings.php:471
     1579#: src/Shipping_Method/Settings.php:500
    15141580#: src/Utils.php:39
    15151581msgid "Sunday"
    15161582msgstr ""
    15171583
    1518 #: src/Shipping_Method/Settings.php:474
     1584#: src/Shipping_Method/Settings.php:503
    15191585msgid "Validate Dutch addresses"
    15201586msgstr ""
    15211587
    1522 #: src/Shipping_Method/Settings.php:477
     1588#: src/Shipping_Method/Settings.php:506
    15231589msgid "Based on zipcode and housenumber combination the address is checked."
    15241590msgstr ""
    15251591
    1526 #: src/Shipping_Method/Settings.php:482
     1592#: src/Shipping_Method/Settings.php:511
    15271593msgid "Use PostNL address-field"
    15281594msgstr ""
    15291595
    1530 #: src/Shipping_Method/Settings.php:485
     1596#: src/Shipping_Method/Settings.php:514
    15311597msgid "For zipcode, housenumber, housenumber extension and street separate address fields are displayed when this settings is enabled. This only applies for Dutch addresses."
    15321598msgstr ""
    15331599
    1534 #: src/Shipping_Method/Settings.php:492
     1600#: src/Shipping_Method/Settings.php:521
    15351601msgid "Shipping Outside Europe Settings"
    15361602msgstr ""
    15371603
    1538 #: src/Shipping_Method/Settings.php:494
     1604#: src/Shipping_Method/Settings.php:523
    15391605msgid "Please insert your Parcels non-EU credentials."
    15401606msgstr ""
    15411607
    1542 #: src/Shipping_Method/Settings.php:497
     1608#: src/Shipping_Method/Settings.php:526
    15431609msgid "Parcels non-EU Barcode Type"
    15441610msgstr ""
    15451611
    1546 #: src/Shipping_Method/Settings.php:502
     1612#: src/Shipping_Method/Settings.php:531
    15471613msgid "CD"
    15481614msgstr ""
    15491615
    1550 #: src/Shipping_Method/Settings.php:506
     1616#: src/Shipping_Method/Settings.php:535
    15511617msgid "Parcels non-EU Customer Code"
    15521618msgstr ""
    15531619
    1554 #: src/Shipping_Method/Settings.php:511
     1620#: src/Shipping_Method/Settings.php:540
    15551621msgid "1234"
    15561622msgstr ""
    15571623
    1558 #: src/Shipping_Method/Settings.php:515
     1624#: src/Shipping_Method/Settings.php:544
    15591625msgid "Default HS Tariff Code"
    15601626msgstr ""
    15611627
    1562 #: src/Shipping_Method/Settings.php:517
     1628#: src/Shipping_Method/Settings.php:546
    15631629msgid "The HS tariff code is used by customs to classify goods. The HS tariff code can be found on the website of the Dutch Chamber of Commerce."
    15641630msgstr ""
    15651631
    1566 #: src/Shipping_Method/Settings.php:523
     1632#: src/Shipping_Method/Settings.php:552
    15671633msgid "Default Country of Origin"
    15681634msgstr ""
    15691635
    1570 #: src/Shipping_Method/Settings.php:525
     1636#: src/Shipping_Method/Settings.php:554
    15711637msgid "Default country of origin is used by customs."
    15721638msgstr ""
    15731639
    1574 #: src/Shipping_Method/Settings.php:532
     1640#: src/Shipping_Method/Settings.php:561
    15751641msgid "Merchant Customs Code"
    15761642msgstr ""
    15771643
    1578 #: src/Shipping_Method/Settings.php:534
     1644#: src/Shipping_Method/Settings.php:563
    15791645msgid "Add merchant codes for specific non-EU countries."
    15801646msgstr ""
    15811647
    1582 #: src/Shipping_Method/Settings.php:541
     1648#: src/Shipping_Method/Settings.php:570
    15831649msgid "Printer &amp; Email Settings"
    15841650msgstr ""
    15851651
    1586 #: src/Shipping_Method/Settings.php:543
     1652#: src/Shipping_Method/Settings.php:572
    15871653msgid "Please configure your printer and email preferences."
    15881654msgstr ""
    15891655
    1590 #: src/Shipping_Method/Settings.php:546
     1656#: src/Shipping_Method/Settings.php:575
    15911657msgid "Printer Type"
    15921658msgstr ""
    15931659
    1594 #: src/Shipping_Method/Settings.php:548
     1660#: src/Shipping_Method/Settings.php:577
    15951661msgid "It is not recommended to send .pdf files/labels directly to a Zebra printer If you want to send it directly to your Zebra printer, please use .gif files or the native (generic) zpl printer type"
    15961662msgstr ""
    15971663
    1598 #: src/Shipping_Method/Settings.php:559
     1664#: src/Shipping_Method/Settings.php:588
    15991665msgid "DPI"
    16001666msgstr ""
    16011667
    1602 #: src/Shipping_Method/Settings.php:569
     1668#: src/Shipping_Method/Settings.php:598
    16031669msgid "Label Format"
    16041670msgstr ""
    16051671
    1606 #: src/Shipping_Method/Settings.php:571
     1672#: src/Shipping_Method/Settings.php:600
    16071673msgid "Use A6 format in case you use a labelprinter. Use A4 format for other regular printers."
    16081674msgstr ""
    16091675
    1610 #: src/Shipping_Method/Settings.php:581
     1676#: src/Shipping_Method/Settings.php:610
    16111677msgid "Shipping confirmation e-mail address"
    16121678msgstr ""
    16131679
    1614 #: src/Shipping_Method/Settings.php:583
     1680#: src/Shipping_Method/Settings.php:612
    16151681msgid "This e-mail address will be used by PostNL for shipping confirmations. If left empty, no sender e-mail will be included."
    16161682msgstr ""
    16171683
    1618 #: src/Shipping_Method/Settings.php:587
     1684#: src/Shipping_Method/Settings.php:616
    16191685msgid "WooCommerce Email"
    16201686msgstr ""
    16211687
    1622 #: src/Shipping_Method/Settings.php:589
    1623 #: src/Shipping_Method/Settings.php:590
     1688#: src/Shipping_Method/Settings.php:618
     1689#: src/Shipping_Method/Settings.php:619
    16241690msgid "When PostNL label is created send email to customer."
    16251691msgstr ""
    16261692
    1627 #: src/Shipping_Method/Settings.php:596
     1693#: src/Shipping_Method/Settings.php:625
    16281694msgid "WooCommerce Email Text"
    16291695msgstr ""
    16301696
    1631 #: src/Shipping_Method/Settings.php:598
     1697#: src/Shipping_Method/Settings.php:627
    16321698msgid "Text added for tracking note email."
    16331699msgstr ""
    16341700
    1635 #: src/Shipping_Method/Settings.php:600
    1636 #: src/Shipping_Method/Settings.php:601
     1701#: src/Shipping_Method/Settings.php:629
     1702#: src/Shipping_Method/Settings.php:630
    16371703msgid "This is your track and track link {tracking-link}"
    16381704msgstr ""
    16391705
    1640 #: src/Shipping_Method/Settings.php:605
    1641 #: src/Shipping_Method/Settings.php:738
     1706#: src/Shipping_Method/Settings.php:634
     1707#: src/Shipping_Method/Settings.php:782
    16421708msgid "Default shipping Options Settings"
    16431709msgstr ""
    16441710
    1645 #: src/Shipping_Method/Settings.php:607
    1646 #: src/Shipping_Method/Settings.php:740
     1711#: src/Shipping_Method/Settings.php:636
     1712#: src/Shipping_Method/Settings.php:784
    16471713msgid "Please select Default shipping Options."
    16481714msgstr ""
    16491715
    1650 #: src/Shipping_Method/Settings.php:613
     1716#: src/Shipping_Method/Settings.php:642
    16511717msgid "Select a default shipping option for domestic orders that are shipped with PostNL."
    16521718msgstr ""
    16531719
    1654 #: src/Shipping_Method/Settings.php:617
     1720#: src/Shipping_Method/Settings.php:646
    16551721#: src/Utils.php:615
    16561722msgid "Standard shipment"
    16571723msgstr ""
    16581724
    1659 #: src/Shipping_Method/Settings.php:618
    1660 #: src/Shipping_Method/Settings.php:695
     1725#: src/Shipping_Method/Settings.php:647
     1726#: src/Shipping_Method/Settings.php:724
    16611727#: src/Utils.php:616
    16621728msgid "ID Check (18+)"
    16631729msgstr ""
    16641730
    1665 #: src/Shipping_Method/Settings.php:619
    1666 #: src/Shipping_Method/Settings.php:697
     1731#: src/Shipping_Method/Settings.php:648
     1732#: src/Shipping_Method/Settings.php:726
    16671733msgid "ID Check (18+) + Insured Shipping"
    16681734msgstr ""
    16691735
    1670 #: src/Shipping_Method/Settings.php:621
     1736#: src/Shipping_Method/Settings.php:650
    16711737#: src/Utils.php:617
    16721738msgid "Return if no answer"
    16731739msgstr ""
    16741740
    1675 #: src/Shipping_Method/Settings.php:622
     1741#: src/Shipping_Method/Settings.php:651
    16761742#: src/Utils.php:618
    16771743msgid "Signature on Delivery"
    16781744msgstr ""
    16791745
    1680 #: src/Shipping_Method/Settings.php:623
     1746#: src/Shipping_Method/Settings.php:652
    16811747#: src/Utils.php:619
    16821748msgid "Only Home Address"
    16831749msgstr ""
    16841750
    1685 #: src/Shipping_Method/Settings.php:626
     1751#: src/Shipping_Method/Settings.php:655
    16861752msgid "Signature on Delivery + Insured Shipping"
    16871753msgstr ""
    16881754
    1689 #: src/Shipping_Method/Settings.php:627
     1755#: src/Shipping_Method/Settings.php:656
    16901756msgid "Signature on Delivery + Return if no answer"
    16911757msgstr ""
    16921758
    1693 #: src/Shipping_Method/Settings.php:628
     1759#: src/Shipping_Method/Settings.php:657
    16941760msgid "Insured Shipping + Return if no answer + Signature on Delivery"
    16951761msgstr ""
    16961762
    1697 #: src/Shipping_Method/Settings.php:629
     1763#: src/Shipping_Method/Settings.php:658
    16981764msgid "Only Home Address + Return if no answer"
    16991765msgstr ""
    17001766
    1701 #: src/Shipping_Method/Settings.php:630
     1767#: src/Shipping_Method/Settings.php:659
    17021768msgid "Only Home Address + Return if no answer + Signature on Delivery"
    17031769msgstr ""
    17041770
    1705 #: src/Shipping_Method/Settings.php:631
     1771#: src/Shipping_Method/Settings.php:660
    17061772msgid "Only Home Address + Signature on Delivery"
    17071773msgstr ""
    17081774
    1709 #: src/Shipping_Method/Settings.php:632
     1775#: src/Shipping_Method/Settings.php:661
    17101776msgid "Delivery Code at Door + Insured Shipping"
    17111777msgstr ""
    17121778
    1713 #: src/Shipping_Method/Settings.php:636
     1779#: src/Shipping_Method/Settings.php:665
    17141780msgid "Shipping options Belgium"
    17151781msgstr ""
    17161782
    1717 #: src/Shipping_Method/Settings.php:638
     1783#: src/Shipping_Method/Settings.php:667
    17181784msgid "Select a default shipping option for the orders shipped to Belgium with PostNL."
    17191785msgstr ""
    17201786
    1721 #: src/Shipping_Method/Settings.php:643
     1787#: src/Shipping_Method/Settings.php:672
    17221788msgid "Standard Shipment Belgium + Only Home Address"
    17231789msgstr ""
    17241790
    1725 #: src/Shipping_Method/Settings.php:644
     1791#: src/Shipping_Method/Settings.php:673
    17261792msgid "Standard Shipment Belgium + Signature on Delivery"
    17271793msgstr ""
    17281794
    1729 #: src/Shipping_Method/Settings.php:645
     1795#: src/Shipping_Method/Settings.php:674
    17301796msgid "Standard Shipment Belgium + Insured Shipping"
    17311797msgstr ""
    17321798
    1733 #: src/Shipping_Method/Settings.php:646
    1734 #: src/Shipping_Method/Settings.php:663
    1735 #: src/Shipping_Method/Settings.php:680
     1799#: src/Shipping_Method/Settings.php:675
     1800#: src/Shipping_Method/Settings.php:692
     1801#: src/Shipping_Method/Settings.php:709
    17361802#: src/Utils.php:623
    17371803msgid "Boxable Packet"
    17381804msgstr ""
    17391805
    1740 #: src/Shipping_Method/Settings.php:647
    1741 #: src/Shipping_Method/Settings.php:664
    1742 #: src/Shipping_Method/Settings.php:681
     1806#: src/Shipping_Method/Settings.php:676
     1807#: src/Shipping_Method/Settings.php:693
     1808#: src/Shipping_Method/Settings.php:710
    17431809msgid "Boxable Packet + Track & Trace"
    17441810msgstr ""
    17451811
    1746 #: src/Shipping_Method/Settings.php:648
    1747 #: src/Shipping_Method/Settings.php:665
    1748 #: src/Shipping_Method/Settings.php:682
     1812#: src/Shipping_Method/Settings.php:677
     1813#: src/Shipping_Method/Settings.php:694
     1814#: src/Shipping_Method/Settings.php:711
    17491815msgid "Packets"
    17501816msgstr ""
    17511817
    1752 #: src/Shipping_Method/Settings.php:649
    1753 #: src/Shipping_Method/Settings.php:666
    1754 #: src/Shipping_Method/Settings.php:683
     1818#: src/Shipping_Method/Settings.php:678
     1819#: src/Shipping_Method/Settings.php:695
     1820#: src/Shipping_Method/Settings.php:712
    17551821msgid "Packets + Track & Trace"
    17561822msgstr ""
    17571823
    1758 #: src/Shipping_Method/Settings.php:650
    1759 #: src/Shipping_Method/Settings.php:667
    1760 #: src/Shipping_Method/Settings.php:684
     1824#: src/Shipping_Method/Settings.php:679
     1825#: src/Shipping_Method/Settings.php:696
     1826#: src/Shipping_Method/Settings.php:713
    17611827msgid "Packets + Track & Trace + Insured"
    17621828msgstr ""
    17631829
    1764 #: src/Shipping_Method/Settings.php:656
     1830#: src/Shipping_Method/Settings.php:685
    17651831msgid "Select a default shipping option for the orders shipped within European Union zone."
    17661832msgstr ""
    17671833
    1768 #: src/Shipping_Method/Settings.php:660
     1834#: src/Shipping_Method/Settings.php:689
    17691835msgid "EU Parcel + Track & Trace"
    17701836msgstr ""
    17711837
    1772 #: src/Shipping_Method/Settings.php:661
     1838#: src/Shipping_Method/Settings.php:690
    17731839msgid "EU Parcel + Track & Trace + Insured"
    17741840msgstr ""
    17751841
    1776 #: src/Shipping_Method/Settings.php:662
     1842#: src/Shipping_Method/Settings.php:691
    17771843msgid "EU Parcel + Track & Trace + Insured Plus"
    17781844msgstr ""
    17791845
    1780 #: src/Shipping_Method/Settings.php:671
    1781 #: src/Shipping_Method/Settings.php:746
     1846#: src/Shipping_Method/Settings.php:700
     1847#: src/Shipping_Method/Settings.php:790
    17821848msgid "Default Shipping International"
    17831849msgstr ""
    17841850
    1785 #: src/Shipping_Method/Settings.php:673
     1851#: src/Shipping_Method/Settings.php:702
    17861852msgid "Shipping options non-EU (outside the EU borders)."
    17871853msgstr ""
    17881854
    1789 #: src/Shipping_Method/Settings.php:677
     1855#: src/Shipping_Method/Settings.php:706
    17901856msgid "Parcel non-EU + Track & Trace"
    17911857msgstr ""
    17921858
    1793 #: src/Shipping_Method/Settings.php:678
     1859#: src/Shipping_Method/Settings.php:707
    17941860msgid "Parcel non-EU + Track & Trace + Insured"
    17951861msgstr ""
    17961862
    1797 #: src/Shipping_Method/Settings.php:679
    1798 #: src/Shipping_Method/Settings.php:752
     1863#: src/Shipping_Method/Settings.php:708
     1864#: src/Shipping_Method/Settings.php:796
    17991865msgid "Parcel non-EU + Track & Trace + Insured Plus"
    18001866msgstr ""
    18011867
    1802 #: src/Shipping_Method/Settings.php:688
     1868#: src/Shipping_Method/Settings.php:717
    18031869msgid "Default Shipping Pickup"
    18041870msgstr ""
    18051871
    1806 #: src/Shipping_Method/Settings.php:690
     1872#: src/Shipping_Method/Settings.php:719
    18071873msgid "Shipping options Pickup."
    18081874msgstr ""
    18091875
    1810 #: src/Shipping_Method/Settings.php:694
     1876#: src/Shipping_Method/Settings.php:723
    18111877msgid "Standard Shipping"
    18121878msgstr ""
    18131879
    1814 #: src/Shipping_Method/Settings.php:696
     1880#: src/Shipping_Method/Settings.php:725
    18151881#: src/Utils.php:625
    18161882msgid "Insured Shipping"
    18171883msgstr ""
    18181884
    1819 #: src/Shipping_Method/Settings.php:701
     1885#: src/Shipping_Method/Settings.php:730
    18201886msgid "Default automatic letterboxparcel product"
    18211887msgstr ""
    18221888
    1823 #: src/Shipping_Method/Settings.php:709
     1889#: src/Shipping_Method/Settings.php:738
    18241890msgid "Let customer decide"
    18251891msgstr ""
    18261892
    1827 #: src/Shipping_Method/Settings.php:713
     1893#: src/Shipping_Method/Settings.php:742
    18281894msgid "Automatically change order status to Completed"
    18291895msgstr ""
    18301896
    1831 #: src/Shipping_Method/Settings.php:715
    1832 #: src/Shipping_Method/Settings.php:716
     1897#: src/Shipping_Method/Settings.php:744
     1898#: src/Shipping_Method/Settings.php:745
    18331899msgid "Automatically change order status to Completed once an order has been pre-alerted and printed"
    18341900msgstr ""
    18351901
    1836 #: src/Shipping_Method/Settings.php:748
     1902#: src/Shipping_Method/Settings.php:792
    18371903msgid "Select a default shipping option for the orders shipped internationally (outside the EU borders)."
     1904msgstr ""
     1905
     1906#: src/Shipping_Method/Settings.php:1128
     1907msgid "Self Service module on the PostNL Business Portal"
     1908msgstr ""
     1909
     1910#: src/Shipping_Method/Settings.php:1185
     1911msgid "Works, not saved yet"
     1912msgstr ""
     1913
     1914#: src/Shipping_Method/Settings.php:1187
     1915msgid "This key works. Save changes to start using it."
     1916msgstr ""
     1917
     1918#: src/Shipping_Method/Settings.php:1194
     1919msgid "Valid"
     1920msgstr ""
     1921
     1922#: src/Shipping_Method/Settings.php:1196
     1923msgid "Your API key is working and will be used for the new PostNL APIs."
     1924msgstr ""
     1925
     1926#: src/Shipping_Method/Settings.php:1203
     1927msgid "Same as old key"
     1928msgstr ""
     1929
     1930#: src/Shipping_Method/Settings.php:1205
     1931msgid "This is the key you already had, not a new one."
     1932msgstr ""
     1933
     1934#. translators: %s is a link to the PostNL Business Portal Self Service module.
     1935#: src/Shipping_Method/Settings.php:1207
     1936msgid "You need a separate key. Request one from the %s, then paste it into the field above."
     1937msgstr ""
     1938
     1939#: src/Shipping_Method/Settings.php:1219
     1940msgid "Not set"
     1941msgstr ""
     1942
     1943#: src/Shipping_Method/Settings.php:1221
     1944msgid "You have not entered your API key yet."
     1945msgstr ""
     1946
     1947#. translators: %s is a link to the PostNL Business Portal Self Service module.
     1948#: src/Shipping_Method/Settings.php:1224
     1949msgid "Request your new key from the %s and enter it above to switch over from your old key."
     1950msgstr ""
     1951
     1952#. translators: %s is a link to the PostNL Business Portal Self Service module.
     1953#: src/Shipping_Method/Settings.php:1226
     1954msgid "Request your key from the %s and enter it above — the plug-in needs it to connect to PostNL."
     1955msgstr ""
     1956
     1957#: src/Shipping_Method/Settings.php:1264
     1958msgid " The plug-in is still using your old key."
     1959msgstr ""
     1960
     1961#: src/Shipping_Method/Settings.php:1265
     1962msgid " The plug-in has no working key to connect with yet."
     1963msgstr ""
     1964
     1965#: src/Shipping_Method/Settings.php:1270
     1966#: src/Shipping_Method/Settings.php:1286
     1967msgid "Could not check"
     1968msgstr ""
     1969
     1970#: src/Shipping_Method/Settings.php:1272
     1971msgid "PostNL could not process the check."
     1972msgstr ""
     1973
     1974#: src/Shipping_Method/Settings.php:1273
     1975msgid "This usually means the Customer Code or Customer Number does not match this key. Check them and save again."
     1976msgstr ""
     1977
     1978#: src/Shipping_Method/Settings.php:1278
     1979msgid "Not checked"
     1980msgstr ""
     1981
     1982#: src/Shipping_Method/Settings.php:1280
     1983msgid "We have not checked this key yet."
     1984msgstr ""
     1985
     1986#: src/Shipping_Method/Settings.php:1281
     1987msgid "Fill in your Customer Code and Customer Number, then save again."
     1988msgstr ""
     1989
     1990#: src/Shipping_Method/Settings.php:1288
     1991msgid "We could not reach PostNL to check this key."
     1992msgstr ""
     1993
     1994#: src/Shipping_Method/Settings.php:1289
     1995msgid "This is usually temporary. Save again in a few minutes."
     1996msgstr ""
     1997
     1998#: src/Shipping_Method/Settings.php:1295
     1999msgid "Not valid"
     2000msgstr ""
     2001
     2002#: src/Shipping_Method/Settings.php:1297
     2003msgid "PostNL rejected this key."
     2004msgstr ""
     2005
     2006#. translators: %s is a link to the PostNL Business Portal Self Service module.
     2007#: src/Shipping_Method/Settings.php:1299
     2008msgid "Check that you copied the whole key with no extra spaces, then save again. If it keeps failing, request a new key from the %s."
    18382009msgstr ""
    18392010
  • woo-postnl/trunk/postnl-for-woocommerce.php

    r3673827 r3697413  
    88 * License: GPLv2 or later
    99 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
    10  * Version: 5.9.11
     10 * Version: 5.9.12
    1111 * Requires Plugins: woocommerce
    1212 * Requires PHP: 7.4
  • woo-postnl/trunk/readme.txt

    r3673827 r3697413  
    88WC requires at least: 10.2
    99WC tested up to: 11.1
    10 Stable tag: 5.9.11
     10Stable tag: 5.9.12
    1111License: GPLv2 or later
    1212License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    8181
    8282== Changelog ==
     83
     84= 5.9.12 (2026-09-15) =
     85* Add: New API Key field for the upcoming PostNL API migration. Enter the key from the PostNL Business Portal Self Service module; the plugin checks it with PostNL when you save, shows whether it is valid, and a banner reminds you until it is entered.
    8386
    8487= 5.9.11 (2026-08-31) =
  • woo-postnl/trunk/src/Main.php

    r3673827 r3697413  
    2929         * @var _version
    3030         */
    31         private $version = '5.9.11';
     31        private $version = '5.9.12';
    3232
    3333        /**
    … …  
    225225                $this->get_frontend();
    226226                $this->get_product_editor();
     227
     228                if ( is_admin() ) {
     229                        new Admin\Api_Key_Banner();
     230                        new Admin\Api_Key_Check();
     231                }
    227232        }
    228233
  • woo-postnl/trunk/src/Rest_API/Base.php

    r3512036 r3697413  
    155155         */
    156156        public function set_api_key() {
    157                 $this->api_key = ( true === $this->is_sandbox ) ? $this->settings->get_api_key_sandbox() : $this->settings->get_api_key();
     157                // get_effective_api_key() is environment-aware and falls back to the
     158                // original key for the active environment, so the sandbox path no longer
     159                // needs its own branch: it resolves the validated new sandbox key when one
     160                // exists and the legacy sandbox key otherwise.
     161                $this->api_key = $this->settings->get_effective_api_key();
    158162        }
    159163
    … …  
    179183                return array(
    180184                        'apikey'       => $this->get_api_key(),
     185                        'NewKey'       => $this->settings->get_new_key_header_value(),
    181186                        'accept'       => 'application/json',
    182187                        'Content-Type' => 'application/json',
  • woo-postnl/trunk/src/Rest_API/Service_Factory.php

    r3673827 r3697413  
    2828use PostNLWooCommerce\Rest_API\SDK\Logger_Adapter;
    2929use PostNLWooCommerce\Rest_API\V4\Label\Service as V4_Label_Service;
     30use PostNLWooCommerce\Rest_API\V4\Pickup_Location\Service as V4_Pickup_Location_Service;
    3031use PostNLWooCommerce\Rest_API\V4\Returns\Service as V4_Returns_Service;
    3132use PostNLWooCommerce\Rest_API\V4\Returns\Smart_Returns_Service as V4_Smart_Returns_Service;
     33use PostNLWooCommerce\Rest_API\V4\Timeframe\Service as V4_Timeframe_Service;
     34use PostNLWooCommerce\Shipping_Method\Settings;
    3235use Psr\Log\LoggerInterface;
    3336
    … …  
    4043 *
    4144 * Single factory that resolves the correct service implementation per flow.
    42  * Every method returns the Legacy service unless all three conditions hold:
    43  *   (a) a validated "New API Key" is present on the settings object,
    44  *   (b) Router::sdk_enabled_for() returns true for the flow, and
    45  *   (c) a V4 service has been registered for that flow via inject_v4_service().
     45 * Every method returns the Legacy service unless both of these hold:
     46 *   (a) a validated "New API Key" is present on the settings object, and
     47 *   (b) Router::sdk_enabled_for() returns true for the flow.
     48 *
     49 * With those met, a flow resolves to a V4 service registered via
     50 * inject_v4_service(), or to one the factory builds itself where it can:
     51 * label, return_label, smart_returns, timeframe and pickup_location. The
     52 * remaining flows (barcode, letterbox) still require injection.
    4653 *
    4754 * postcode_check_service() is permanently wired to Legacy because postcode_check
    … …  
    5360 *
    5461 * The 'checkout' SUPPORTED_FLOW is never queried directly; the checkout endpoint
    55  * is split here into the 'timeframe' and 'pickup_location' flows, both backed by
    56  * the shared Legacy\Checkout_Service.
     62 * is split here into the 'timeframe' and 'pickup_location' flows. On the legacy
     63 * path both are backed by the shared Legacy\Checkout_Service, whose single
     64 * response carries delivery days and pickup points together; on V4 they are two
     65 * endpoints and so two services, which Frontend\Container recombines.
    5766 *
    5867 * Legacy services are created lazily on first access and memoised so repeated
    … …  
    125134
    126135        /**
     136         * Memoised self-built V4 timeframe service.
     137         *
     138         * Kept out of $v4_services for the same reason as $label_v4_memo. Memoising also
     139         * keeps one SDK client — and so one response cache — across both checkout halves
     140         * within a request.
     141         *
     142         * @var V4_Timeframe_Service|null
     143         */
     144        private $timeframe_v4_memo = null;
     145
     146        /**
     147         * Memoised self-built V4 pickup-location service.
     148         *
     149         * Kept out of $v4_services for the same reason as $label_v4_memo.
     150         *
     151         * @var V4_Pickup_Location_Service|null
     152         */
     153        private $pickup_location_v4_memo = null;
     154
     155        /**
    127156         * Service_Factory constructor.
    128157         *
    … …  
    199228         */
    200229        public function timeframe_service(): Timeframe_Service_Interface {
    201                 if ( $this->should_use_v4( 'timeframe' ) && isset( $this->v4_services['timeframe'] ) ) {
    202                         return $this->v4_services['timeframe'];
     230                if ( $this->should_use_v4( 'timeframe' ) ) {
     231                        if ( isset( $this->v4_services['timeframe'] ) ) {
     232                                return $this->v4_services['timeframe'];
     233                        }
     234                        $v4 = $this->build_v4_timeframe_service();
     235                        if ( null !== $v4 ) {
     236                                return $v4;
     237                        }
    203238                }
    204239                return $this->legacy_checkout_service();
    … …  
    211246         */
    212247        public function pickup_location_service(): Pickup_Location_Service_Interface {
    213                 if ( $this->should_use_v4( 'pickup_location' ) && isset( $this->v4_services['pickup_location'] ) ) {
    214                         return $this->v4_services['pickup_location'];
     248                if ( $this->should_use_v4( 'pickup_location' ) ) {
     249                        if ( isset( $this->v4_services['pickup_location'] ) ) {
     250                                return $this->v4_services['pickup_location'];
     251                        }
     252                        $v4 = $this->build_v4_pickup_location_service();
     253                        if ( null !== $v4 ) {
     254                                return $v4;
     255                        }
    215256                }
    216257                return $this->legacy_checkout_service();
    … …  
    349390
    350391        /**
     392         * Build the V4 timeframe service, or null when this factory cannot.
     393         *
     394         * Unlike the label and returns services, the V4 checkout services type-hint the
     395         * concrete Settings because they read a dozen shipping settings to build their
     396         * requests. A factory handed anything else therefore falls back to Legacy rather
     397         * than fatalling on the type. In production both call sites (Frontend\Container
     398         * and Order\Base) pass Settings::get_instance(), so the guard never trips there.
     399         *
     400         * @return V4_Timeframe_Service|null
     401         *
     402         * @since 6.0.0
     403         */
     404        private function build_v4_timeframe_service(): ?V4_Timeframe_Service {
     405                if ( ! $this->settings instanceof Settings ) {
     406                        return null;
     407                }
     408
     409                if ( null === $this->timeframe_v4_memo ) {
     410                        $logger                  = $this->v4_logger();
     411                        $this->timeframe_v4_memo = new V4_Timeframe_Service(
     412                                new Client_Factory( $this->settings, $logger ),
     413                                $this->settings,
     414                                (string) $this->settings->get_api_key_new(),
     415                                (int) $this->settings->get_number_delivery_days(),
     416                                $logger
     417                        );
     418                }
     419
     420                return $this->timeframe_v4_memo;
     421        }
     422
     423        /**
     424         * Build the V4 pickup-location service, or null when this factory cannot.
     425         *
     426         * Same Settings type constraint as build_v4_timeframe_service().
     427         *
     428         * @return V4_Pickup_Location_Service|null
     429         *
     430         * @since 6.0.0
     431         */
     432        private function build_v4_pickup_location_service(): ?V4_Pickup_Location_Service {
     433                if ( ! $this->settings instanceof Settings ) {
     434                        return null;
     435                }
     436
     437                if ( null === $this->pickup_location_v4_memo ) {
     438                        $logger                        = $this->v4_logger();
     439                        $this->pickup_location_v4_memo = new V4_Pickup_Location_Service(
     440                                new Client_Factory( $this->settings, $logger ),
     441                                $this->settings,
     442                                (string) $this->settings->get_api_key_new(),
     443                                (int) $this->settings->get_number_pickup_points(),
     444                                $logger
     445                        );
     446                }
     447
     448                return $this->pickup_location_v4_memo;
     449        }
     450
     451        /**
    351452         * Return the shared Legacy\Checkout_Service instance.
    352453         *
  • woo-postnl/trunk/src/Shipping_Method/PostNL.php

    r3584070 r3697413  
    88namespace PostNLWooCommerce\Shipping_Method;
    99
     10use PostNLWooCommerce\Rest_API\Barcode\Key_Validator;
    1011use PostNLWooCommerce\Utils;
    1112use WC_Admin_Settings;
    … …  
    6869        public function process_admin_options() {
    6970                parent::process_admin_options();
     71
     72                // parent::process_admin_options() writes the new values to the DB but only
     73                // updates this method object's cache; the Settings singleton still holds
     74                // the pre-save values, and the status row, the NewKey header and the
     75                // effective-key selection all read through it for the rest of the request.
     76                // Refresh it so the screen that comes back reflects what was just saved.
     77                Settings::get_instance()->init_settings();
     78
    7079                $this->process_merchant_codes();
    7180
    … …  
    7483                        $this->update_option( 'default_checkout_tab', 'delivery_day' );
    7584                }
     85
     86                $this->process_new_api_key_validation();
     87        }
     88
     89        /**
     90         * Validate the "New API Key" field whenever settings are saved.
     91         *
     92         * Runs in both environments so the key can be checked in sandbox as well as
     93         * production. Performs a live Barcode API call with the candidate key for the
     94         * active environment. Success flips the validated flag on so the plugin starts
     95         * routing traffic through the new key; failure leaves the old key in use,
     96         * records why, and surfaces the reason to the merchant.
     97         */
     98        protected function process_new_api_key_validation() {
     99                $settings = Settings::get_instance();
     100
     101                // The environment is read from the freshly-posted value on $this rather
     102                // than the settings singleton, which may still hold the pre-save value.
     103                $is_sandbox = ( 'production' !== $this->get_option( 'environment_mode' ) );
     104                $new_field  = $is_sandbox ? 'api_keys_sandbox_new' : 'api_keys_new';
     105                $orig_field = $is_sandbox ? 'api_keys_sandbox' : 'api_keys';
     106
     107                $new_key  = trim( (string) $this->get_option( $new_field ) );
     108                $original = trim( (string) $this->get_option( $orig_field ) );
     109
     110                if ( '' === $new_key || $new_key === $original ) {
     111                        $settings->set_api_key_new_validated( false, null, $is_sandbox );
     112                        $settings->set_new_key_status_reason( '', $is_sandbox );
     113                        return;
     114                }
     115
     116                // This exact key already passed validation; skip the live call so an
     117                // unrelated settings save doesn't make a blocking request every time.
     118                if ( $settings->is_api_key_new_validated_value( $new_key, $is_sandbox ) ) {
     119                        return;
     120                }
     121
     122                $result = Key_Validator::validate(
     123                        $new_key,
     124                        $this->get_option( 'customer_code' ),
     125                        $this->get_option( 'customer_num' ),
     126                        $is_sandbox
     127                );
     128
     129                if ( true === $result ) {
     130                        $settings->set_api_key_new_validated( true, $new_key, $is_sandbox );
     131                        $settings->set_new_key_status_reason( '', $is_sandbox );
     132                        return;
     133                }
     134
     135                $reason = $result->get_error_code();
     136
     137                // "unreachable" means PostNL never returned a verdict, so we cannot say the
     138                // key is bad — leave any previously-validated state as it was rather than
     139                // showing a false red. Every other reason is a definite "not usable yet".
     140                if ( Key_Validator::REASON_UNREACHABLE !== $reason ) {
     141                        $settings->set_api_key_new_validated( false, null, $is_sandbox );
     142                }
     143
     144                $settings->set_new_key_status_reason( $reason, $is_sandbox );
     145                WC_Admin_Settings::add_error( esc_html( Key_Validator::reason_message( $reason ) ) );
     146        }
     147
     148        /**
     149         * Render the status row shown beneath the API Key field: a coloured label,
     150         * an em dash and a plain sentence describing the new key's state, driven by
     151         * the same value sent in the NewKey header. Hidden by the settings JS for
     152         * whichever environment is not currently selected.
     153         *
     154         * @param string $key  Field key.
     155         * @param array  $data Field data (expects an 'environment' of 'sandbox' or 'production').
     156         *
     157         * @return string
     158         */
     159        public function generate_postnl_new_key_status_html( $key, $data ) {
     160                $is_sandbox = ( isset( $data['environment'] ) && 'sandbox' === $data['environment'] );
     161                $status     = Settings::get_instance()->get_new_key_status( $is_sandbox );
     162
     163                ob_start();
     164                ?>
     165                <tr valign="top" class="postnl-new-key-status-row" data-postnl-env="<?php echo esc_attr( $is_sandbox ? 'sandbox' : 'production' ); ?>">
     166                        <th scope="row" class="titledesc"><?php esc_html_e( 'API key status', 'postnl-for-woocommerce' ); ?></th>
     167                        <td class="forminp">
     168                                <p style="margin-top:0;">
     169                                        <strong class="postnl-new-key-status-label" style="color:<?php echo esc_attr( $status['color'] ); ?>;"><?php echo esc_html( $status['label'] ); ?></strong>
     170                                        &mdash; <span class="postnl-new-key-status-summary"><?php echo esc_html( $status['summary'] ); ?></span>
     171                                </p>
     172                                <p class="description postnl-new-key-status-desc" style="margin-top:4px;<?php echo empty( $status['description'] ) ? 'display:none;' : ''; ?>"><?php echo wp_kses_post( $status['description'] ); ?></p>
     173                        </td>
     174                </tr>
     175                <?php
     176                return ob_get_clean();
    76177        }
    77178
    … …  
    156257                                POSTNL_WC_VERSION,
    157258                                true
     259                        );
     260
     261                        wp_localize_script(
     262                                'postnl-admin-settings',
     263                                'postnlApiKeyCheck',
     264                                array(
     265                                        'ajaxUrl' => admin_url( 'admin-ajax.php' ),
     266                                        'action'  => \PostNLWooCommerce\Admin\Api_Key_Check::AJAX_ACTION,
     267                                        'nonce'   => wp_create_nonce( \PostNLWooCommerce\Admin\Api_Key_Check::NONCE_ACTION ),
     268                                )
    158269                        );
    159270                }
  • woo-postnl/trunk/src/Shipping_Method/Settings.php

    r3599159 r3697413  
    88namespace PostNLWooCommerce\Shipping_Method;
    99
     10use PostNLWooCommerce\Rest_API\Barcode\Key_Validator;
    1011use PostNLWooCommerce\Utils;
    1112
    … …  
    5859         */
    5960        public function get_setting_fields() {
    60                 return array(
     61                $fields = array(
    6162                        // Manual.
    6263                        'user_manual'                     => array(
    … …  
    8687                                'placeholder' => '',
    8788                        ),
     89                        // Legacy production key. Renamed to "Old API Key" and only rendered when
     90                        // a value is already stored (see the gating in get_setting_fields()); a
     91                        // fresh install shows the "API Key" field alone. Kept read-only so
     92                        // merchants enter their key in the new field ahead of the API migration.
    8893                        'api_keys'                        => array(
    89                                 'title'       => esc_html__( 'Production API Key', 'postnl-for-woocommerce' ),
     94                                'title'             => esc_html__( 'Old API Key', 'postnl-for-woocommerce' ),
     95                                'type'              => 'text',
     96                                'description'       => esc_html__( 'The key you were using before. It is locked because new keys go in the field below.', 'postnl-for-woocommerce' ),
     97                                'desc_tip'          => false,
     98                                'default'           => '',
     99                                'placeholder'       => '',
     100                                'custom_attributes' => array( 'readonly' => 'readonly' ),
     101                        ),
     102                        'api_keys_new'                    => array(
     103                                'title'       => esc_html__( 'API Key', 'postnl-for-woocommerce' ),
    90104                                'type'        => 'text',
    91                                 // translators: %1$s & %2$s is replaced with <a> tag.
    92                                 'description' => sprintf( __( 'Insert your PostNL production API-key. You can find your API-key on Mijn %1$sPostNL%2$s under "My Account".', 'postnl-for-woocommerce' ), '<a href="https://mijn.postnl.nl/c/BP2_Mod_Login.app" target="_blank">', '</a>' ),
    93                                 'desc_tip'    => true,
     105                                'description' => esc_html__( 'Enter your PostNL API key here. You can get it from the Self Service module on the PostNL Business Portal.', 'postnl-for-woocommerce' ),
     106                                'desc_tip'    => false,
    94107                                'default'     => '',
    95108                                'placeholder' => '',
    96109                        ),
     110                        'api_keys_new_status'             => array(
     111                                'type'        => 'postnl_new_key_status',
     112                                'environment' => 'production',
     113                        ),
    97114                        'api_keys_sandbox'                => array(
     115                                'title'             => esc_html__( 'Old Sandbox API Key', 'postnl-for-woocommerce' ),
     116                                'type'              => 'text',
     117                                'description'       => esc_html__( 'The sandbox key you were using before. It is locked because new keys go in the field below.', 'postnl-for-woocommerce' ),
     118                                'desc_tip'          => false,
     119                                'default'           => '',
     120                                'placeholder'       => '',
     121                                'custom_attributes' => array( 'readonly' => 'readonly' ),
     122                        ),
     123                        'api_keys_sandbox_new'            => array(
    98124                                'title'       => esc_html__( 'Sandbox API Key', 'postnl-for-woocommerce' ),
    99125                                'type'        => 'text',
    100                                 // translators: %1$s & %2$s is replaced with <a> tag.
    101                                 'description' => sprintf( __( 'Insert your PostNL staging API-key. You can find your API-key on Mijn %1$sPostNL%2$s under "My Account".', 'postnl-for-woocommerce' ), '<a href="https://mijn.postnl.nl/c/BP2_Mod_Login.app" target="_blank">', '</a>' ),
    102                                 'desc_tip'    => true,
     126                                'description' => esc_html__( 'Enter your PostNL sandbox API key here. You can get it from the Self Service module on the PostNL Business Portal.', 'postnl-for-woocommerce' ),
     127                                'desc_tip'    => false,
    103128                                'default'     => '',
    104129                                'placeholder' => '',
     130                        ),
     131                        'api_keys_sandbox_new_status'     => array(
     132                                'type'        => 'postnl_new_key_status',
     133                                'environment' => 'sandbox',
    105134                        ),
    106135                        'enable_logging'                  => array(
    … …  
    721750
    722751                );
     752
     753                // The legacy key fields are shown only when a key is already stored: a
     754                // fresh install enters its key in the new "API Key" field alone. The
     755                // decision is made on the saved value (not the posted one) so a failed
     756                // save does not make the field flicker in and out. Reading the raw option
     757                // directly avoids recursing through get_country_option()/filter_setting_fields().
     758                if ( '' === trim( (string) $this->get_option( 'api_keys' ) ) ) {
     759                        unset( $fields['api_keys'] );
     760                }
     761
     762                if ( '' === trim( (string) $this->get_option( 'api_keys_sandbox' ) ) ) {
     763                        unset( $fields['api_keys_sandbox'] );
     764                }
     765
     766                return $fields;
    723767        }
    724768
    … …  
    832876
    833877        /**
     878         * Option storing the SHA-256 hash of the new API key value that last
     879         * passed validation. Storing a hash (rather than a global yes/no flag)
     880         * binds the validated state to the exact key value, so any out-of-band
     881         * edit or partial save naturally invalidates the flag.
     882         */
     883        const NEW_API_KEY_VALIDATED_HASH_OPTION = 'postnl_api_keys_new_validated_hash';
     884
     885        /**
     886         * Get the raw value of the new sandbox API key as entered by the merchant.
     887         *
     888         * @return string
     889         */
     890        public function get_api_key_sandbox_new() {
     891                return trim( (string) $this->get_country_option( 'api_keys_sandbox_new', '' ) );
     892        }
     893
     894        /**
     895         * Get the raw value of the new API key for the current environment.
     896         *
     897         * PostNL issues environment-scoped keys, so sandbox and production each have
     898         * their own new-key field. Returning the field that matches the active
     899         * environment keeps every V4 consumer (Service_Factory, the adoption header,
     900         * the effective-key fallback) pointed at the right key without each caller
     901         * having to branch on the environment itself.
     902         *
     903         * @return string
     904         */
     905        public function get_api_key_new() {
     906                if ( $this->is_sandbox() ) {
     907                        return $this->get_api_key_sandbox_new();
     908                }
     909
     910                return trim( (string) $this->get_country_option( 'api_keys_new', '' ) );
     911        }
     912
     913        /**
     914         * The original (pre-migration) API key for the current environment.
     915         *
     916         * @return string
     917         */
     918        public function get_original_api_key() {
     919                return $this->is_sandbox()
     920                        ? trim( (string) $this->get_api_key_sandbox() )
     921                        : trim( (string) $this->get_api_key() );
     922        }
     923
     924        /**
     925         * Name of the option storing the validated-key hash for a given environment.
     926         *
     927         * The validated flag is environment-scoped: a key validated in production must
     928         * not be treated as validated in sandbox (and vice versa), otherwise the V4
     929         * gate would route a production key against the sandbox host, or the reverse.
     930         * A single option cannot hold both, since validating one environment would
     931         * overwrite the other, so each environment gets its own option.
     932         *
     933         * @param bool|null $is_sandbox Environment to scope to, or null for the current one.
     934         *
     935         * @return string
     936         */
     937        protected function validated_hash_option_name( $is_sandbox = null ) {
     938                $is_sandbox = ( null === $is_sandbox ) ? $this->is_sandbox() : (bool) $is_sandbox;
     939
     940                return self::NEW_API_KEY_VALIDATED_HASH_OPTION . ( $is_sandbox ? '_sandbox' : '' );
     941        }
     942
     943        /**
     944         * Whether the currently-entered new API key matches the key that last
     945         * passed validation against the PostNL API for the current environment.
     946         *
     947         * @return bool
     948         */
     949        public function is_api_key_new_validated() {
     950                return $this->is_api_key_new_validated_value( $this->get_api_key_new() );
     951        }
     952
     953        /**
     954         * Whether a specific key value matches the key that last passed
     955         * validation. Takes the value explicitly so callers (e.g. the save-time
     956         * handler) can check the freshly-entered key without relying on the
     957         * settings object's in-memory cache being up to date.
     958         *
     959         * @param string    $key        Candidate key value.
     960         * @param bool|null $is_sandbox Environment to check, or null for the current one.
     961         *
     962         * @return bool
     963         */
     964        public function is_api_key_new_validated_value( $key, $is_sandbox = null ) {
     965                $key = trim( (string) $key );
     966                if ( '' === $key ) {
     967                        return false;
     968                }
     969
     970                $stored = (string) get_option( $this->validated_hash_option_name( $is_sandbox ), '' );
     971                if ( '' === $stored ) {
     972                        return false;
     973                }
     974
     975                return hash_equals( $stored, hash( 'sha256', $key ) );
     976        }
     977
     978        /**
     979         * Record that the currently-entered new API key has passed validation,
     980         * or clear the flag entirely. The hash binds the flag to the exact key
     981         * value the merchant just successfully tested, scoped to its environment.
     982         *
     983         * @param bool        $validated  Validation outcome.
     984         * @param string|null $key        The exact key value that was validated. When
     985         *                                omitted, falls back to the stored setting —
     986         *                                but callers running mid-save should pass the
     987         *                                freshly-entered value to avoid hashing a
     988         *                                stale cached value.
     989         * @param bool|null   $is_sandbox Environment to scope to, or null for the current one.
     990         */
     991        public function set_api_key_new_validated( $validated, $key = null, $is_sandbox = null ) {
     992                $option = $this->validated_hash_option_name( $is_sandbox );
     993
     994                if ( ! $validated ) {
     995                        delete_option( $option );
     996                        return;
     997                }
     998
     999                $key = trim( (string) ( null === $key ? $this->get_api_key_new() : $key ) );
     1000                if ( '' === $key ) {
     1001                        delete_option( $option );
     1002                        return;
     1003                }
     1004
     1005                update_option( $option, hash( 'sha256', $key ) );
     1006        }
     1007
     1008        /**
     1009         * Return the API key the plugin should actually send to PostNL for the
     1010         * current environment. Falls back to the original key whenever the new
     1011         * key is empty, identical, or has not been validated.
     1012         *
     1013         * @return string
     1014         */
     1015        public function get_effective_api_key() {
     1016                $original = $this->get_original_api_key();
     1017                $new_key  = $this->get_api_key_new();
     1018
     1019                if ( '' === $new_key ) {
     1020                        return $original;
     1021                }
     1022
     1023                if ( $new_key === $original ) {
     1024                        return $original;
     1025                }
     1026
     1027                if ( ! $this->is_api_key_new_validated() ) {
     1028                        return $original;
     1029                }
     1030
     1031                return $new_key;
     1032        }
     1033
     1034        /**
     1035         * Option storing the reason the new key last failed validation, so the
     1036         * settings status row can tell "key rejected" apart from "could not reach
     1037         * PostNL" or "customer details missing" — all of which report the same
     1038         * "Entered" header value. Only consulted when the header value is "Entered".
     1039         */
     1040        const NEW_API_KEY_STATUS_OPTION = 'postnl_api_keys_new_status';
     1041
     1042        /**
     1043         * Map the new-key state to its NewKey header value. Kept as one pure method
     1044         * so the outgoing header and the settings status row can never disagree.
     1045         *
     1046         *  - "No"      : the new-key field is empty.
     1047         *  - "Same"    : the new-key field matches the original key.
     1048         *  - "Entered" : a distinct key was entered but has not passed validation.
     1049         *  - "Yes"     : a distinct new key has been entered and validated.
     1050         *
     1051         * "Yes" is gated on validation because PostNL defines it as a key that
     1052         * "works"; a key that failed our validation reports "Entered" so PostNL does
     1053         * not count the merchant as ready to migrate.
     1054         *
     1055         * @param string $new_key   The entered new key.
     1056         * @param string $original  The original (pre-migration) key.
     1057         * @param bool   $validated Whether the new key passed validation.
     1058         *
     1059         * @return string
     1060         */
     1061        protected function derive_new_key_header_value( $new_key, $original, $validated ) {
     1062                if ( '' === $new_key ) {
     1063                        return 'No';
     1064                }
     1065
     1066                if ( $new_key === $original ) {
     1067                        return 'Same';
     1068                }
     1069
     1070                if ( ! $validated ) {
     1071                        return 'Entered';
     1072                }
     1073
     1074                return 'Yes';
     1075        }
     1076
     1077        /**
     1078         * Value for the NewKey header sent on every outgoing API call, computed for
     1079         * the current environment.
     1080         *
     1081         * @return string
     1082         */
     1083        public function get_new_key_header_value() {
     1084                return $this->derive_new_key_header_value(
     1085                        $this->get_api_key_new(),
     1086                        $this->get_original_api_key(),
     1087                        $this->is_api_key_new_validated()
     1088                );
     1089        }
     1090
     1091        /**
     1092         * Persist (or clear) the reason the new key last failed validation, scoped
     1093         * to the given environment.
     1094         *
     1095         * @param string    $reason     One of 'invalid', 'rejected', 'unreachable', 'missing', or '' to clear.
     1096         * @param bool|null $is_sandbox Environment to scope to, or null for the current one.
     1097         */
     1098        public function set_new_key_status_reason( $reason, $is_sandbox = null ) {
     1099                $option = self::NEW_API_KEY_STATUS_OPTION . ( $this->resolve_is_sandbox( $is_sandbox ) ? '_sandbox' : '' );
     1100
     1101                if ( '' === $reason ) {
     1102                        delete_option( $option );
     1103                        return;
     1104                }
     1105
     1106                update_option( $option, $reason );
     1107        }
     1108
     1109        /**
     1110         * PostNL developer portal page for the API migration. It explains how to
     1111         * upgrade PHP, how to request a new API key via the Self Service (SSAM)
     1112         * module, and when to update the plug-in for API v4. Confirmed by PostNL as
     1113         * the destination for the migration banners (in place of the Self Service
     1114         * portal directly), so customers get the full step-by-step instructions first.
     1115         */
     1116        const SELF_SERVICE_URL = 'https://developer.postnl.nl/integration-with-postnl/api-overview/future-proof-api-s/plug-ins/';
     1117
     1118        /**
     1119         * Link to the PostNL Business Portal Self Service module, reused across the
     1120         * status row and the migration banner.
     1121         *
     1122         * @return string
     1123         */
     1124        public function self_service_link() {
     1125                return sprintf(
     1126                        '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
     1127                        esc_url( self::SELF_SERVICE_URL ),
     1128                        esc_html__( 'Self Service module on the PostNL Business Portal', 'postnl-for-woocommerce' )
     1129                );
     1130        }
     1131
     1132        /**
     1133         * Resolve the status of the new key for a given environment: the header value
     1134         * plus a colour, label, a one-line summary and a "what to do next" paragraph
     1135         * for the settings status row. The label and colour derive from the same
     1136         * header value the API calls send, so the screen and PostNL's adoption count
     1137         * can never contradict each other.
     1138         *
     1139         * @param bool|null $is_sandbox Environment to describe, or null for the current one.
     1140         *
     1141         * @return array{header:string,label:string,color:string,summary:string,description:string}
     1142         */
     1143        public function get_new_key_status( $is_sandbox = null ) {
     1144                $is_sandbox = $this->resolve_is_sandbox( $is_sandbox );
     1145
     1146                $new_key   = $is_sandbox ? $this->get_api_key_sandbox_new() : trim( (string) $this->get_country_option( 'api_keys_new', '' ) );
     1147                $original  = $is_sandbox ? trim( (string) $this->get_api_key_sandbox() ) : trim( (string) $this->get_api_key() );
     1148                $validated = $this->is_api_key_new_validated_value( $new_key, $is_sandbox );
     1149
     1150                // The rendered row describes what is actually stored, so the validated
     1151                // state it shows is a saved one.
     1152                return $this->build_new_key_status( $new_key, $original, $validated, $is_sandbox, true, $this->resolve_new_key_status_reason( $is_sandbox ) );
     1153        }
     1154
     1155        /**
     1156         * Map a new-key state to the status row's colour, label, one-line summary and
     1157         * "what to do next" paragraph. Pure: every input is passed in, so the settings
     1158         * render path and the on-blur endpoint produce identical copy for the same
     1159         * state and cannot drift. The label and colour follow the same header value
     1160         * the API calls send, so the screen and PostNL's adoption count agree.
     1161         *
     1162         * @param string $new_key    The entered new key.
     1163         * @param string $original   The original (pre-migration) key; '' on a fresh install.
     1164         * @param bool   $validated  Whether the new key has passed validation.
     1165         * @param bool   $is_sandbox Environment being described.
     1166         * @param bool   $saved      Whether $validated reflects a saved state. A key that
     1167         *                           validates on blur but has not been saved yet gets the
     1168         *                           amber "works, not saved" state instead of green.
     1169         * @param string $reason     Persisted/derived failure reason for an entered key.
     1170         *
     1171         * @return array{header:string,label:string,color:string,summary:string,description:string}
     1172         */
     1173        public function build_new_key_status( $new_key, $original, $validated, $is_sandbox, $saved, $reason = '' ) {
     1174                unset( $is_sandbox );
     1175
     1176                $header  = $this->derive_new_key_header_value( $new_key, $original, $validated );
     1177                $link    = $this->self_service_link();
     1178                $has_old = '' !== trim( (string) $original );
     1179
     1180                switch ( $header ) {
     1181                        case 'Yes':
     1182                                if ( ! $saved ) {
     1183                                        return array(
     1184                                                'header'      => $header,
     1185                                                'label'       => __( 'Works, not saved yet', 'postnl-for-woocommerce' ),
     1186                                                'color'       => '#dba617',
     1187                                                'summary'     => __( 'This key works. Save changes to start using it.', 'postnl-for-woocommerce' ),
     1188                                                'description' => '',
     1189                                        );
     1190                                }
     1191
     1192                                return array(
     1193                                        'header'      => $header,
     1194                                        'label'       => __( 'Valid', 'postnl-for-woocommerce' ),
     1195                                        'color'       => '#008a20',
     1196                                        'summary'     => __( 'Your API key is working and will be used for the new PostNL APIs.', 'postnl-for-woocommerce' ),
     1197                                        'description' => '',
     1198                                );
     1199
     1200                        case 'Same':
     1201                                return array(
     1202                                        'header'      => $header,
     1203                                        'label'       => __( 'Same as old key', 'postnl-for-woocommerce' ),
     1204                                        'color'       => '#dba617',
     1205                                        'summary'     => __( 'This is the key you already had, not a new one.', 'postnl-for-woocommerce' ),
     1206                                        // translators: %s is a link to the PostNL Business Portal Self Service module.
     1207                                        'description' => sprintf( __( 'You need a separate key. Request one from the %s, then paste it into the field above.', 'postnl-for-woocommerce' ), $link ),
     1208                                );
     1209
     1210                        case 'Entered':
     1211                                return array_merge(
     1212                                        array( 'header' => $header ),
     1213                                        $this->get_new_key_invalid_copy( $reason, $has_old, $link )
     1214                                );
     1215
     1216                        default:
     1217                                return array(
     1218                                        'header'      => $header,
     1219                                        'label'       => __( 'Not set', 'postnl-for-woocommerce' ),
     1220                                        'color'       => '#757575',
     1221                                        'summary'     => __( 'You have not entered your API key yet.', 'postnl-for-woocommerce' ),
     1222                                        'description' => $has_old
     1223                                                // translators: %s is a link to the PostNL Business Portal Self Service module.
     1224                                                ? sprintf( __( 'Request your new key from the %s and enter it above to switch over from your old key.', 'postnl-for-woocommerce' ), $link )
     1225                                                // translators: %s is a link to the PostNL Business Portal Self Service module.
     1226                                                : sprintf( __( 'Request your key from the %s and enter it above — the plug-in needs it to connect to PostNL.', 'postnl-for-woocommerce' ), $link ),
     1227                                );
     1228                }
     1229        }
     1230
     1231        /**
     1232         * The failure reason to describe in the status row. Missing customer details
     1233         * is decided live — if they are blank now, that is the reason whatever the
     1234         * last save recorded — otherwise the reason persisted at save time is used.
     1235         *
     1236         * @param bool $is_sandbox Environment to resolve for.
     1237         *
     1238         * @return string One of the Key_Validator REASON_* slugs, or ''.
     1239         */
     1240        protected function resolve_new_key_status_reason( $is_sandbox ) {
     1241                if ( '' === trim( (string) $this->get_customer_code() ) || '' === trim( (string) $this->get_customer_num() ) ) {
     1242                        return Key_Validator::REASON_MISSING;
     1243                }
     1244
     1245                return (string) get_option( self::NEW_API_KEY_STATUS_OPTION . ( $is_sandbox ? '_sandbox' : '' ), '' );
     1246        }
     1247
     1248        /**
     1249         * Label, colour, summary and description for an entered key that is not in
     1250         * use, per reason. Only a genuine rejection is red "Not valid"; an outage, a
     1251         * mismatch or missing details read as amber "could not check", so an outage
     1252         * never tells the merchant their key is invalid. Whether an old key is still
     1253         * carrying the plugin is passed in rather than re-read, so the copy is correct
     1254         * on a fresh install (where nothing is in use).
     1255         *
     1256         * @param string $reason  One of the Key_Validator REASON_* slugs.
     1257         * @param bool   $has_old Whether a usable old key is still stored.
     1258         * @param string $link    Self Service link markup.
     1259         *
     1260         * @return array{label:string,color:string,summary:string,description:string}
     1261         */
     1262        protected function get_new_key_invalid_copy( $reason, $has_old, $link ) {
     1263                $tail = $has_old
     1264                        ? __( ' The plug-in is still using your old key.', 'postnl-for-woocommerce' )
     1265                        : __( ' The plug-in has no working key to connect with yet.', 'postnl-for-woocommerce' );
     1266
     1267                switch ( $reason ) {
     1268                        case Key_Validator::REASON_REJECTED:
     1269                                return array(
     1270                                        'label'       => __( 'Could not check', 'postnl-for-woocommerce' ),
     1271                                        'color'       => '#dba617',
     1272                                        'summary'     => __( 'PostNL could not process the check.', 'postnl-for-woocommerce' ) . $tail,
     1273                                        'description' => __( 'This usually means the Customer Code or Customer Number does not match this key. Check them and save again.', 'postnl-for-woocommerce' ),
     1274                                );
     1275
     1276                        case Key_Validator::REASON_MISSING:
     1277                                return array(
     1278                                        'label'       => __( 'Not checked', 'postnl-for-woocommerce' ),
     1279                                        'color'       => '#dba617',
     1280                                        'summary'     => __( 'We have not checked this key yet.', 'postnl-for-woocommerce' ) . $tail,
     1281                                        'description' => __( 'Fill in your Customer Code and Customer Number, then save again.', 'postnl-for-woocommerce' ),
     1282                                );
     1283
     1284                        case Key_Validator::REASON_UNREACHABLE:
     1285                                return array(
     1286                                        'label'       => __( 'Could not check', 'postnl-for-woocommerce' ),
     1287                                        'color'       => '#dba617',
     1288                                        'summary'     => __( 'We could not reach PostNL to check this key.', 'postnl-for-woocommerce' ) . $tail,
     1289                                        'description' => __( 'This is usually temporary. Save again in a few minutes.', 'postnl-for-woocommerce' ),
     1290                                );
     1291
     1292                        case Key_Validator::REASON_INVALID:
     1293                        default:
     1294                                return array(
     1295                                        'label'       => __( 'Not valid', 'postnl-for-woocommerce' ),
     1296                                        'color'       => '#d63638',
     1297                                        'summary'     => __( 'PostNL rejected this key.', 'postnl-for-woocommerce' ) . $tail,
     1298                                        // translators: %s is a link to the PostNL Business Portal Self Service module.
     1299                                        'description' => sprintf( __( 'Check that you copied the whole key with no extra spaces, then save again. If it keeps failing, request a new key from the %s.', 'postnl-for-woocommerce' ), $link ),
     1300                                );
     1301                }
     1302        }
     1303
     1304        /**
     1305         * Normalise a nullable environment flag to the current environment.
     1306         *
     1307         * @param bool|null $is_sandbox Environment flag, or null for the current one.
     1308         *
     1309         * @return bool
     1310         */
     1311        protected function resolve_is_sandbox( $is_sandbox ) {
     1312                return ( null === $is_sandbox ) ? $this->is_sandbox() : (bool) $is_sandbox;
     1313        }
     1314
     1315        /**
    8341316         * Get customer number from the settings.
    8351317         *
  • woo-postnl/trunk/vendor/autoload.php

    r3616204 r3697413  
    2020require_once __DIR__ . '/composer/autoload_real.php';
    2121
    22 return ComposerAutoloaderInit406b01d6c34e0be97217ff56906cf672::getLoader();
     22return ComposerAutoloaderInit512c4666993184005c89805f3a762fb1::getLoader();
  • woo-postnl/trunk/vendor/composer/autoload_classmap.php

    r3673827 r3697413  
    1111    'FPDF' => $vendorDir . '/setasign/fpdf/fpdf.php',
    1212    'PostNLWooCommerce\\Address_Utils' => $baseDir . '/src/Address_Utils.php',
     13    'PostNLWooCommerce\\Admin\\Api_Key_Banner' => $baseDir . '/src/Admin/Api_Key_Banner.php',
     14    'PostNLWooCommerce\\Admin\\Api_Key_Check' => $baseDir . '/src/Admin/Api_Key_Check.php',
    1315    'PostNLWooCommerce\\Checkout_Blocks\\Blocks_Integration' => $baseDir . '/src/Checkout_Blocks/Blocks_Integration.php',
    1416    'PostNLWooCommerce\\Checkout_Blocks\\Extend_Block_Core' => $baseDir . '/src/Checkout_Blocks/Extend_Block_Core.php',
    … …  
    3537    'PostNLWooCommerce\\Product\\Product_Editor' => $baseDir . '/src/Product/Product_Editor.php',
    3638    'PostNLWooCommerce\\Product\\Single' => $baseDir . '/src/Product/Single.php',
     39    'PostNLWooCommerce\\Rest_API\\Barcode\\Key_Validator' => $baseDir . '/src/Rest_API/Barcode/Key_Validator.php',
    3740    'PostNLWooCommerce\\Rest_API\\Base' => $baseDir . '/src/Rest_API/Base.php',
    3841    'PostNLWooCommerce\\Rest_API\\Base_Info' => $baseDir . '/src/Rest_API/Base_Info.php',
  • woo-postnl/trunk/vendor/composer/autoload_real.php

    r3616204 r3697413  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit406b01d6c34e0be97217ff56906cf672
     5class ComposerAutoloaderInit512c4666993184005c89805f3a762fb1
    66{
    77    private static $loader;
    … …  
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit406b01d6c34e0be97217ff56906cf672', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit512c4666993184005c89805f3a762fb1', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit406b01d6c34e0be97217ff56906cf672', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit512c4666993184005c89805f3a762fb1', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit406b01d6c34e0be97217ff56906cf672::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit512c4666993184005c89805f3a762fb1::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • woo-postnl/trunk/vendor/composer/autoload_static.php

    r3673827 r3697413  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit406b01d6c34e0be97217ff56906cf672
     7class ComposerStaticInit512c4666993184005c89805f3a762fb1
    88{
    99    public static $prefixLengthsPsr4 = array (
    … …  
    3434        'FPDF' => __DIR__ . '/..' . '/setasign/fpdf/fpdf.php',
    3535        'PostNLWooCommerce\\Address_Utils' => __DIR__ . '/../..' . '/src/Address_Utils.php',
     36        'PostNLWooCommerce\\Admin\\Api_Key_Banner' => __DIR__ . '/../..' . '/src/Admin/Api_Key_Banner.php',
     37        'PostNLWooCommerce\\Admin\\Api_Key_Check' => __DIR__ . '/../..' . '/src/Admin/Api_Key_Check.php',
    3638        'PostNLWooCommerce\\Checkout_Blocks\\Blocks_Integration' => __DIR__ . '/../..' . '/src/Checkout_Blocks/Blocks_Integration.php',
    3739        'PostNLWooCommerce\\Checkout_Blocks\\Extend_Block_Core' => __DIR__ . '/../..' . '/src/Checkout_Blocks/Extend_Block_Core.php',
    … …  
    5860        'PostNLWooCommerce\\Product\\Product_Editor' => __DIR__ . '/../..' . '/src/Product/Product_Editor.php',
    5961        'PostNLWooCommerce\\Product\\Single' => __DIR__ . '/../..' . '/src/Product/Single.php',
     62        'PostNLWooCommerce\\Rest_API\\Barcode\\Key_Validator' => __DIR__ . '/../..' . '/src/Rest_API/Barcode/Key_Validator.php',
    6063        'PostNLWooCommerce\\Rest_API\\Base' => __DIR__ . '/../..' . '/src/Rest_API/Base.php',
    6164        'PostNLWooCommerce\\Rest_API\\Base_Info' => __DIR__ . '/../..' . '/src/Rest_API/Base_Info.php',
    … …  
    169172    {
    170173        return \Closure::bind(function () use ($loader) {
    171             $loader->prefixLengthsPsr4 = ComposerStaticInit406b01d6c34e0be97217ff56906cf672::$prefixLengthsPsr4;
    172             $loader->prefixDirsPsr4 = ComposerStaticInit406b01d6c34e0be97217ff56906cf672::$prefixDirsPsr4;
    173             $loader->classMap = ComposerStaticInit406b01d6c34e0be97217ff56906cf672::$classMap;
     174            $loader->prefixLengthsPsr4 = ComposerStaticInit512c4666993184005c89805f3a762fb1::$prefixLengthsPsr4;
     175            $loader->prefixDirsPsr4 = ComposerStaticInit512c4666993184005c89805f3a762fb1::$prefixDirsPsr4;
     176            $loader->classMap = ComposerStaticInit512c4666993184005c89805f3a762fb1::$classMap;
    174177
    175178        }, null, ClassLoader::class);
  • woo-postnl/trunk/vendor/composer/installed.php

    r3673827 r3697413  
    44        'pretty_version' => 'dev-main',
    55        'version' => 'dev-main',
    6         'reference' => '1444ab808f999823b197930ef567f3c87216ec34',
     6        'reference' => 'd8de832e9461df73d02e2a492a079d7d6d7a1739',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    2525            'pretty_version' => 'dev-main',
    2626            'version' => 'dev-main',
    27             'reference' => '1444ab808f999823b197930ef567f3c87216ec34',
     27            'reference' => 'd8de832e9461df73d02e2a492a079d7d6d7a1739',
    2828            'type' => 'wordpress-plugin',
    2929            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.