{"id":52323,"date":"2016-11-26T15:48:16","date_gmt":"2016-11-26T15:48:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/estonian-shipping-methods-for-woocommerce\/"},"modified":"2026-09-09T07:37:15","modified_gmt":"2026-09-09T07:37:15","slug":"estonian-shipping-methods-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/te.wordpress.org\/plugins\/estonian-shipping-methods-for-woocommerce\/","author":9958016,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.13.0","stable_tag":"1.13.0","tested":"7.0.5","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Estonian Shipping Methods for WooCommerce","header_author":"Konekt O\u00dc","header_description":"","assets_banners_color":"e3d6e1","last_updated":"2026-09-09 07:37:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/KonektOU\/estonian-shipping-methods-for-woocommerce","header_author_uri":"https:\/\/www.konekt.ee","rating":3.9,"author_block_rating":0,"active_installs":1000,"downloads":27438,"num_ratings":7,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"RistoNiinemets","date":"2016-11-26 15:49:06","revision":1541102},"1.1":{"tag":"1.1","author":"RistoNiinemets","date":"2016-12-03 11:39:43","revision":1545030},"1.11.2":{"tag":"1.11.2","author":"RistoNiinemets","date":"2026-08-23 16:16:24","revision":3662080},"1.12.0":{"tag":"1.12.0","author":"RistoNiinemets","date":"2026-08-26 08:34:40","revision":3666542},"1.12.1":{"tag":"1.12.1","author":"RistoNiinemets","date":"2026-08-27 06:43:51","revision":3668207},"1.13.0":{"tag":"1.13.0","author":"RistoNiinemets","date":"2026-09-09 07:37:15","revision":3687827},"1.2":{"tag":"1.2","author":"RistoNiinemets","date":"2016-12-13 05:46:12","revision":1553326},"1.2.1":{"tag":"1.2.1","author":"RistoNiinemets","date":"2017-01-12 05:56:21","revision":1573069},"1.3":{"tag":"1.3","author":"RistoNiinemets","date":"2017-05-15 09:11:12","revision":1657559},"1.3.1":{"tag":"1.3.1","author":"RistoNiinemets","date":"2017-05-15 09:11:12","revision":1657559},"1.3.2":{"tag":"1.3.2","author":"RistoNiinemets","date":"2017-05-22 05:35:14","revision":1661977},"1.3.3":{"tag":"1.3.3","author":"RistoNiinemets","date":"2017-05-22 05:49:54","revision":1661985},"1.4":{"tag":"1.4","author":"RistoNiinemets","date":"2017-07-24 10:15:24","revision":1701528},"1.4.1":{"tag":"1.4.1","author":"RistoNiinemets","date":"2017-07-26 04:25:33","revision":1702777},"1.4.2":{"tag":"1.4.2","author":"RistoNiinemets","date":"2017-08-07 11:40:05","revision":1709518},"1.5":{"tag":"1.5","author":"RistoNiinemets","date":"2017-10-05 09:32:31","revision":1741439},"1.5.1":{"tag":"1.5.1","author":"RistoNiinemets","date":"2017-10-11 11:02:03","revision":1744690},"1.5.2":{"tag":"1.5.2","author":"RistoNiinemets","date":"2018-02-01 05:31:55","revision":1813248},"1.5.3":{"tag":"1.5.3","author":"RistoNiinemets","date":"2018-03-01 09:58:42","revision":1831316},"1.5.4":{"tag":"1.5.4","author":"RistoNiinemets","date":"2018-09-28 10:28:32","revision":1948507},"1.5.5":{"tag":"1.5.5","author":"RistoNiinemets","date":"2018-10-02 18:44:42","revision":1950433},"1.5.6":{"tag":"1.5.6","author":"RistoNiinemets","date":"2018-10-08 07:05:46","revision":1953050},"1.5.7":{"tag":"1.5.7","author":"RistoNiinemets","date":"2019-05-30 10:34:02","revision":2097833},"1.5.8":{"tag":"1.5.8","author":"RistoNiinemets","date":"2019-06-03 19:18:18","revision":2099974},"1.5.8.1":{"tag":"1.5.8.1","author":"RistoNiinemets","date":"2019-11-02 06:12:04","revision":2184809},"1.5.8.2":{"tag":"1.5.8.2","author":"RistoNiinemets","date":"2020-07-08 12:07:11","revision":2337311},"1.5.9":{"tag":"1.5.9","author":"RistoNiinemets","date":"2022-11-29 08:23:37","revision":2825696},"1.6.0":{"tag":"1.6.0","author":"RistoNiinemets","date":"2022-11-29 08:33:29","revision":2825700},"1.6.1":{"tag":"1.6.1","author":"RistoNiinemets","date":"2022-11-29 08:33:29","revision":2825700},"1.6.2":{"tag":"1.6.2","author":"RistoNiinemets","date":"2022-12-20 06:56:02","revision":2836417},"1.7":{"tag":"1.7","author":"RistoNiinemets","date":"2023-03-20 20:24:38","revision":2883818},"1.7.1":{"tag":"1.7.1","author":"RistoNiinemets","date":"2023-03-22 07:06:14","revision":2884676},"1.7.2":{"tag":"1.7.2","author":"RistoNiinemets","date":"2023-03-24 07:08:25","revision":2886172}},"upgrade_notice":{"1.13.0":"<p>Adds a filter for turning the terminal search off. Nothing changes for a shop\nthat does not use it.<\/p>","1.12.1":"<p>Fixes orders that showed &quot;Chosen terminal:&quot; with no terminal after it, and\nmakes the Latvian translation load. Nothing to do after updating.<\/p>","1.12.0":"<p>Collect.net is removed - its API no longer answers what this plugin asked of\nit. If you offer Collect.net in a shipping zone, that method disappears from\nthe zone when you update. Every other method is unaffected.<\/p>"},"ratings":{"1":2,"2":0,"3":0,"4":0,"5":5},"assets_icons":[],"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":1544593,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"wc-estonian-shipping-methods\/terminals":{"name":"wc-estonian-shipping-methods\/terminals","title":"Parcel terminal"}},"tagged_versions":["1.0","1.1","1.11.2","1.12.0","1.12.1","1.13.0","1.2","1.2.1","1.3","1.3.1","1.3.2","1.3.3","1.4","1.4.1","1.4.2","1.5","1.5.1","1.5.2","1.5.3","1.5.4","1.5.5","1.5.6","1.5.7","1.5.8","1.5.8.1","1.5.8.2","1.5.9","1.6.0","1.6.1","1.6.2","1.7","1.7.1","1.7.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1544981,"resolution":"1","location":"assets","locale":"","width":1335,"height":729},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1544981,"resolution":"2","location":"assets","locale":"","width":1291,"height":857}},"screenshots":{"1":"Example of Itella SmartPOST shipping method","2":"WooCommerce Checkout page"}},"plugin_section":[],"plugin_tags":[277542,5559,74998,127311,286],"plugin_category":[45],"plugin_contributors":[127337,85077],"plugin_business_model":[],"class_list":["post-52323","plugin","type-plugin","status-publish","hentry","plugin_tags-cleveron","plugin_tags-dpd","plugin_tags-omniva","plugin_tags-smartpost","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-konektou","plugin_contributors-ristoniinemets","plugin_committers-ristoniinemets"],"banners":{"banner":"https:\/\/ps.w.org\/estonian-shipping-methods-for-woocommerce\/assets\/banner-772x250.png?rev=1544593","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/estonian-shipping-methods-for-woocommerce_e3d6e1.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/estonian-shipping-methods-for-woocommerce\/assets\/screenshot-1.png?rev=1544981","caption":"Example of Itella SmartPOST shipping method"},{"src":"https:\/\/ps.w.org\/estonian-shipping-methods-for-woocommerce\/assets\/screenshot-2.png?rev=1544981","caption":"WooCommerce Checkout page"}],"raw_content":"<!--section=description-->\n<p>This plugin consists of several Estonian shipping methods:<\/p>\n\n<ul>\n<li>DPD package shops (Estonia, Latvia, Lithuania)<\/li>\n<li>Omniva parcel terminals (Estonia, Latvia, Lithuania)<\/li>\n<li>Omniva post offices (Estonia)<\/li>\n<li>SmartPOST parcel terminals (Estonia, Finland, Latvia, Lithuania)<\/li>\n<li>SmartPOST courier<\/li>\n<li>Cleveron Office packrobots (Estonia)<\/li>\n<\/ul>\n\n<p>Supports WPML for multilingual sites. Current translations:<\/p>\n\n<ul>\n<li>English (props @ristoniinemets)<\/li>\n<li>Estonian (props @ristoniinemets)<\/li>\n<li>Latvian<\/li>\n<li>Lithuanian (props @DomasWEB)<\/li>\n<li>Russian (props @avramchuk)<\/li>\n<\/ul>\n\n<p>Code is maintained and developed at Github. Contributions and discussions are very welcome at <a href=\"https:\/\/github.com\/KonektOU\/estonian-shipping-methods-for-woocommerce\">Github<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>estonian-shipping-methods-for-woocommerce<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to WooCommerce - Settings<\/li>\n<li>Shipping Methods will be available to be configured in \"Shipping\" settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20to%20display%20customer%20selected%20terminal%20in%20custom%20locations%3F\"><h3>How to display customer selected terminal in custom locations?<\/h3><\/dt>\n<dd><p>Since version 1.5.1 we have added an action that you could add to your code:\n    do_action( 'wc_estonian_shipping_method_show_terminal', $order_id );<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>The terminal search can be turned off. It is on by default and stays that\nway - a parcel terminal list runs to hundreds of entries - but it is also the\none thing this plugin adds to a checkout that a theme can reasonably want to\ndo differently, and two enhancers on the same select leave a mess. Filter\n  wc_estonian_shipping_methods_terminal_search to false and both checkouts\nhand you a plain grouped select to dress with Choices.js, or with whatever\nthe theme's own fields use:\n  add_filter( 'wc_estonian_shipping_methods_terminal_search', '__return_false' );<\/li>\n<li>The classic checkout's search now names selectWoo as a dependency rather than\nhoping WooCommerce had already loaded it for something else on the page.<\/li>\n<\/ul>\n\n<h4>1.12.1<\/h4>\n\n<ul>\n<li>The chosen terminal keeps its name on the order. Only the terminal's ID was\nstored, and the name was looked up afresh every time an order was shown, so a\nterminal the carrier had since closed - or a carrier that happened to be\nunreachable at that moment - left \"Chosen terminal:\" with nothing after it, in\nthe customer's order view, the admin order screen, the order email and the PDF\ninvoice alike. The name is now written onto the order at checkout and used\nwhen the carrier no longer knows the terminal, with the ID shown as a last\nresort instead of an empty line.<\/li>\n<li>The Latvian translation loads. It shipped under the file name lv_LV, and\nWordPress asks for Latvian as lv, so the translation was in the plugin but\nnever used.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Collect.net is gone. The service's API has moved on from what this plugin\ntalks to, and the method spent its time making requests that no longer lead\nanywhere - on every admin page load, and again on every shipping calculation\nat the checkout. A shop that still has it in a shipping zone will find the\nmethod missing from that zone after the update; its old settings stay in the\ndatabase and nothing is removed from orders that already used it.<\/li>\n<li>Cleveron Office is a shipping zone method, priced and enabled per zone like\nthe rest of them.<\/li>\n<li>A carrier that cannot be reached no longer costs a request per visitor. The\nterminal list used to be re-fetched on every checkout while the carrier was\ndown, because the empty result of a failed request was written to the cache\nand an empty cache read as no cache at all. A failed fetch is now left out of\nthe cache, the last list the carrier gave is served in its place, and the\ncarrier is left alone for five minutes before being asked again.<\/li>\n<\/ul>\n\n<h4>1.11.2<\/h4>\n\n<ul>\n<li>The terminal search box on the block checkout no longer has the \"Choose\nterminal\" label printed across it. WooCommerce floats that label over its\nselect, and the search box was sitting underneath it.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>The terminal list on the block checkout is grouped again, the way the\nmethod's \"Group terminals\" setting says. The searchable version briefly\nflattened it into one long list.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>A method can be limited to shipping classes, or to a maximum cart weight, so\na parcel terminal is not offered for a wardrobe. Both are per zone method and\nempty by default, which is how every existing method behaves today. Asked for\nin GitHub issues #11, #29 and #30.<\/li>\n<li>Header versions say what this has actually been tested against: WordPress 7.0,\nWooCommerce 11.0, PHP 7.4 and up.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>The terminal list is searchable on both checkouts. A parcel terminal list runs\nto hundreds of entries, which is a lot of scrolling to find the one down the\nroad. Nothing new is loaded to do it: the block checkout uses WordPress's own\ncombobox and the classic one uses selectWoo, which WooCommerce already ships\nfor its country and state fields.<\/li>\n<li>Fixes the terminal dropdown not appearing on the classic checkout after 1.9.0.\nA zone method's rate is \"id:instance\" where it used to be just \"id\", so the\ncheck for \"is this the chosen method\" stopped matching.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>The shipping methods are shipping zone methods now: added to a zone, priced\nper zone, and enabled or disabled by the zone like every other WooCommerce\nshipping method. The same carrier can cost one thing in one zone and another\nelsewhere, which was not possible before.<\/li>\n<li>Existing sites are migrated on update: every method that was switched on is\nput into the zone for the country it delivers to - the shop's existing zone\nfor that country where there is one, a new zone where there is not - carrying\nits price, free shipping threshold, title and tax status with it. Methods that\nwere switched off are left alone, and the old settings stay in the database.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Terminal selection works on the block checkout. The dropdown was printed by a\nhook the block checkout never fires, so a shop using it had no way to choose a\nparcel terminal at all. The terminals now come through the Store API - only\nthe ones belonging to the shipping method chosen - and the choice is validated\nand saved exactly where the classic checkout saves it, so orders, emails and\nthe admin screen are unchanged.<\/li>\n<li>Shipping is taxable by default, as it is in WooCommerce's own shipping\nmethods. A shop that never opened the setting charged no VAT on delivery.\nMethods that already exist keep whatever they were doing: the upgrade writes\ntheir current answer into their settings before the default changes.<\/li>\n<li>Translations are no longer loaded before WordPress is ready for them, which\nWordPress 6.7 logs as an error on every request.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Fix Smartpost location not shown<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Add support for older orders locations (SmartPost)<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>Use DPD API for pickup locations instead of soon-to-be-deprecated FTP json<\/li>\n<li>Use Smartpost API for pickup locations<\/li>\n<li>Add Smartpost Latvia<\/li>\n<li>Add Smartpost Lithuania<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Compatibility with WooCommerce CRUD, High-Performance order storage (COT)<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Relocate terminal methods hooks for compatibility with other plugins<\/li>\n<li>Add version tag to templates, clean up templates<\/li>\n<li>Removed use of deprecated WC property<\/li>\n<\/ul>\n\n<h4>1.5.9<\/h4>\n\n<ul>\n<li>Change DPD terminals source URL<\/li>\n<\/ul>\n\n<h4>1.5.8<\/h4>\n\n<ul>\n<li>Add PHP 7.4 compatbility (thanks to @lemmeV)<\/li>\n<\/ul>\n\n<h4>1.5.7<\/h4>\n\n<ul>\n<li>Fix admin order preview with SmartPOST courier<\/li>\n<li>Tweak Collect.net API relationships<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Fix compatibility with older versions of WooCommerce. Previous version introduced conflict.<\/li>\n<\/ul>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Tweak free shipping amount to take discounted prices into account<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Fix Collect.net availability in other countries than Estonia (should not be available)<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Fix dropdown selection text (mixed labels)<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>WooCommerce 3.3 compatibility and terminal information in admin order preview<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Compatibility with WooCommerce PDF Invoices &amp; Packing Slips plugin<\/li>\n<li>Added custom action that developers can hook into to show the customer selected terminal<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Compatibility with servers that have \"allow_url_fopen\" PHP configration turned off.<\/li>\n<li>Extra option whether each shipping method allows free shipping via coupons.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Fix notice with Collect.net AGAIN<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fix: Sometimes terminals were not fetched and shown in customers email<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Fix notice with Collect.net while it\u2019s not being used<\/li>\n<li>Make phone number country code validation available for all methods<\/li>\n<li>Use phone number country code validation for DPD package shops<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Create collect.net session only on administration interface<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Compatibility with WooCommerce 3.0.x<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Added Collect.net packrobots<\/li>\n<li>Cleaned up code<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Added Lithuanian (thanks to @DomasWEB) and Russian translations (thanks to @avramchuk)<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Fixed mixed up translations in Estonian<\/li>\n<li>Omniva Latvia, Lithuania: City name fix (thanks to @DomasWEB)<\/li>\n<li>Latvia, Lithuania: Added cities by population for \"Bigger cities first, then alphabetically the rest\" option to work<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Added shipping methods to readme<\/li>\n<li>Added DPD package shops for Estonia, Latvia, Lithuania<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Release<\/li>\n<\/ul>","raw_excerpt":"Extends WooCommerce with most commonly used Estonian shipping methods. All in one.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/52323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=52323"}],"author":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ristoniinemets"}],"wp:attachment":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=52323"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=52323"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=52323"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=52323"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=52323"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=52323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}