{"id":145283,"date":"2021-08-10T08:04:34","date_gmt":"2021-08-10T08:04:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eshoplogisticru\/"},"modified":"2026-08-03T09:27:16","modified_gmt":"2026-08-03T09:27:16","slug":"eshoplogisticru","status":"publish","type":"plugin","link":"https:\/\/arg.wordpress.org\/plugins\/eshoplogisticru\/","author":18843203,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.25","stable_tag":"2.2.25","tested":"7.0.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"eShopLogistic Shipping Calculator","header_author":"eShopLogistic","header_description":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0443\u0436\u0431 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438: CDEK, DPD, Boxberry, IML, \u041f\u043e\u0447\u0442\u0430 \u0420\u043e\u0441\u0441\u0438\u0438, \u0414\u0435\u043b\u043e\u0432\u044b\u0435 \u041b\u0438\u043d\u0438\u0438, \u041f\u042d\u041a, Dostavista, GTD, \u0411\u0430\u0439\u043a\u0430\u043b \u0421\u0435\u0440\u0432\u0438\u0441 \u0438 \u0434\u0440.","assets_banners_color":"","last_updated":"2026-08-03 09:27:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wp.eshoplogistic.ru\/","header_author_uri":"https:\/\/eshoplogistic.ru\/","rating":4.6,"author_block_rating":0,"active_installs":100,"downloads":19061,"num_ratings":5,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.20":{"tag":"2.2.20","author":"eshoplogistic","date":"2026-04-08 09:32:00"},"2.2.23":{"tag":"2.2.23","author":"eshoplogistic","date":"2026-07-23 15:30:59"},"2.2.24":{"tag":"2.2.24","author":"eshoplogistic","date":"2026-07-30 10:58:31"},"2.2.25":{"tag":"2.2.25","author":"eshoplogistic","date":"2026-08-03 09:27:16"}},"upgrade_notice":{"2.2.25":"<p>Further security hardening and guideline compliance fixes required for WordPress.org re-review.<\/p>","2.2.24":"<p>Security hardening and guideline compliance fixes required for WordPress.org re-review.<\/p>","2.2.23":"<p>Guideline compliance fixes required for WordPress.org re-review.<\/p>"},"ratings":{"1":0,"2":0,"3":1,"4":0,"5":4},"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3620197,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.20","2.2.23","2.2.24","2.2.25"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3083170,"resolution":"1","location":"assets","locale":"","width":1201,"height":1274},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2580916,"resolution":"2","location":"assets","locale":"","width":808,"height":426},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2580916,"resolution":"3","location":"assets","locale":"","width":808,"height":629},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2580916,"resolution":"4","location":"assets","locale":"","width":808,"height":334}},"screenshots":{"1":"Plugin settings screen","2":"Shipping rate selection in cart\/checkout","3":"Pickup point (PVZ) selection with interactive map","4":"Order export\/tracking screen"}},"plugin_section":[],"plugin_tags":[13827,246619,3546,286],"plugin_category":[45],"plugin_contributors":[273002],"plugin_business_model":[],"class_list":["post-145283","plugin","type-plugin","status-publish","hentry","plugin_tags-delivery","plugin_tags-eshoplogistic","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-eshoplogistic","plugin_committers-eshoplogistic"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/icon-256x256.jpg?rev=3620197","icon_2x":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/icon-256x256.jpg?rev=3620197","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/screenshot-1.png?rev=3083170","caption":"Plugin settings screen"},{"src":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/screenshot-2.png?rev=2580916","caption":"Shipping rate selection in cart\/checkout"},{"src":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/screenshot-3.png?rev=2580916","caption":"Pickup point (PVZ) selection with interactive map"},{"src":"https:\/\/ps.w.org\/eshoplogisticru\/assets\/screenshot-4.png?rev=2580916","caption":"Order export\/tracking screen"}],"raw_content":"<!--section=description-->\n<p><strong>English Description<\/strong><\/p>\n\n<p>eShopLogistic is the official WordPress plugin for integrating your WooCommerce store with the eShopLogistic service (<a href=\"https:\/\/eshoplogistic.ru\/\">eshoplogistic.ru<\/a>).<\/p>\n\n<p>This plugin offers comprehensive shipping integration with support for multiple Russian and international delivery services:\n- Display real-time shipping cost and delivery time calculations in shopping cart and product pages\n- Support for 18+ delivery carriers (CDEK, DPD, Post Russia, Dostavista, Boxberry, IML, Delovye Linii, PEC, GTD, Baikal Service, Yandex Delivery and more)\n- Pickup point (PVZ) selection with interactive map\n- Automatic order export to carrier systems\n- Flexible shipping rules and adjustments\n- Support for custom shipping methods\n- Shipping calculator in product card, shopping cart, and custom pages via widgets\n- Order tracking with status updates\n- Comprehensive settings management panel\n- Full support for WooCommerce Block Checkout (Gutenberg-based checkout pages)\n- Four Gutenberg blocks for adding shipping widgets to any page<\/p>\n\n<p><strong>Feature Highlights:<\/strong><\/p>\n\n<ul>\n<li>Real-time shipping rate calculation for multiple carriers<\/li>\n<li>Single unified pickup point selector across all carriers<\/li>\n<li>One control panel for all delivery services with advanced customization<\/li>\n<li>Shipping rate rules based on payment method, delivery type, destination, order amount, weight and more<\/li>\n<li>Dynamic cost and delivery time adjustments per rule<\/li>\n<li>Custom delivery methods support<\/li>\n<li>Full order export and tracking capabilities<\/li>\n<li>WooCommerce Blocks checkout support \u2014 works with both classic shortcode and block-based checkout<\/li>\n<li>Gutenberg blocks: Shipping Calculator (Checkout), Product Shipping Calculator, Cart Shipping, Checkout Form (Legacy)<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong>\n- WordPress 6.0+\n- WooCommerce 4.0+\n- PHP 7.4+<\/p>\n\n<p><strong>Checkout Mode Support:<\/strong>\nCompatible with both traditional shortcode checkout (<code>[woocommerce_checkout]<\/code>) and WooCommerce Block Checkout.<\/p>\n\n<p>For detailed documentation and demo: <a href=\"https:\/\/wp-v2.eshoplogistic.ru\/\">wp-v2.eshoplogistic.ru<\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the eShopLogistic service to provide its core shipping-calculation functionality. It communicates with the following third-party services:<\/p>\n\n<ol>\n<li><strong>eShopLogistic API<\/strong> (<code>api.eshoplogistic.ru<\/code>, <code>api.esplc.ru<\/code>) \u2014 this is the backend of the eShopLogistic shipping service itself (the service this plugin integrates with). The plugin's PHP code (server-side, via <code>Http\/WpHttpClient.php<\/code>) sends it: the account API key, the shopping cart\/order contents needed to calculate a rate (article, name, quantity, price, weight, dimensions), origin\/destination city, chosen payment method, and \u2014 when an order is placed \u2014 the customer's shipping address and order line items, so the order can be created\/exported\/tracked in the carrier's system. This happens whenever a customer views the cart\/checkout\/product page with shipping calculation enabled, and when an order is placed. See the eShopLogistic <a href=\"https:\/\/eshoplogistic.ru\/dokumenty\/dogovor-oferta.html\">Terms of Service (offer agreement)<\/a> and <a href=\"https:\/\/eshoplogistic.ru\/dokumenty\/politika-konfidencialnosti.html\">Privacy Policy<\/a>.<\/li>\n<li><strong>eShopLogistic embeddable widget bundle<\/strong> (<code>https:\/\/api.esplc.ru\/widgets\/{cart,modal,block}\/app.js<\/code>, which in turn loads a versioned, content-hashed JS\/CSS bundle from the same <code>api.esplc.ru<\/code> domain) \u2014 this is a live, self-updating cart\/product\/checkout shipping-calculator UI, analogous to an embeddable live-chat widget: the eShopLogistic team ships UI updates to this bundle independently of plugin releases, and the asset filenames change with every such release, so they cannot be bundled statically inside the plugin without going stale. It is only loaded on pages where a shipping widget is displayed (product page, cart, checkout), and once loaded it talks to the same eShopLogistic API above (sending cart contents and the visitor's IP address to determine their city) to render rates and pickup points. Governed by the same <a href=\"https:\/\/eshoplogistic.ru\/dokumenty\/dogovor-oferta.html\">Terms of Service<\/a> and <a href=\"https:\/\/eshoplogistic.ru\/dokumenty\/politika-konfidencialnosti.html\">Privacy Policy<\/a> linked above. A second, older widget UI (used for the product-tab \"static\" and \"modal\" display modes) is bundled locally inside the plugin (<code>assets\/css\/widget-*.css<\/code>, <code>assets\/js\/widget-*.js<\/code>) and is not loaded remotely.<\/li>\n<li><strong>Yandex Maps API<\/strong> (<code>api-maps.yandex.ru<\/code>) \u2014 loaded only if you enable the interactive pickup-point map and provide your own Yandex Maps API key in the plugin settings. When enabled, the visitor's browser loads the Yandex Maps JavaScript API to render pickup-point markers on a map. See <a href=\"https:\/\/yandex.ru\/legal\/\">Yandex Terms of Use<\/a> and <a href=\"https:\/\/yandex.ru\/legal\/confidential\/\">Yandex Privacy Policy<\/a>.<\/li>\n<li><strong>DaData address suggestions<\/strong> (<code>suggestions.dadata.ru<\/code>) \u2014 the locally-bundled product-tab\/modal widget UI (see item 2) uses this service to suggest matching Russian addresses as the customer types their delivery address, so the visitor's browser sends the partial address text they are typing, together with an eShopLogistic-issued API token, directly to <code>suggestions.dadata.ru<\/code>. This only runs while the customer is actively typing in the delivery-address field of that widget. See <a href=\"https:\/\/dadata.ru\/terms\/\">DaData Terms of Service<\/a> and <a href=\"https:\/\/dadata.ru\/privacy\/\">DaData Privacy Policy<\/a>.<\/li>\n<li><strong>Google Fonts<\/strong> (<code>fonts.googleapis.com<\/code>) \u2014 the same widget UI loads the \"Roboto\" web font (SIL Open Font License) from Google Fonts for its own styling. See <a href=\"https:\/\/developers.google.com\/fonts\/faq\">Google Fonts FAQ<\/a> and <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a>.<\/li>\n<\/ol>\n\n<h3>Credits<\/h3>\n\n<p>This plugin bundles the following third-party libraries:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/getbootstrap.com\/\">Bootstrap<\/a> 4.6.0 \u2014 MIT License<\/li>\n<li><a href=\"https:\/\/fontawesome.com\/\">Font Awesome Free<\/a> 5.15.3 \u2014 Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>After activating the plugin, go to \"WC eShopLogistic\" in the WordPress admin menu.<\/li>\n<li>Enter your API key from your eShopLogistic account (<a href=\"https:\/\/my.eshoplogistic.ru\/\">my.eshoplogistic.ru<\/a>).<\/li>\n<li>Map your WooCommerce payment methods to eShopLogistic payment methods in the plugin settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20an%20eshoplogistic%20account%3F\"><h3>Does this plugin require an eShopLogistic account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is a front-end\/checkout integration for the eShopLogistic shipping service. You need a free account and API key from <a href=\"https:\/\/my.eshoplogistic.ru\/\">my.eshoplogistic.ru<\/a> to calculate rates, show pickup points and export orders.<\/p><\/dd>\n<dt id=\"which%20carriers%20are%20supported%3F\"><h3>Which carriers are supported?<\/h3><\/dt>\n<dd><p>CDEK, DPD, Post Russia, Dostavista, Boxberry, IML, Delovye Linii, PEC, GTD, Baikal Service, Yandex Delivery and others \u2014 the exact list of available carriers depends on what is enabled in your eShopLogistic account.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20blocks%20%28gutenberg%29%20checkout%3F\"><h3>Does it work with WooCommerce Blocks (Gutenberg) checkout?<\/h3><\/dt>\n<dd><p>Yes. Both the classic shortcode checkout (<code>[woocommerce_checkout]<\/code>) and the block-based checkout are supported side by side.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20yandex%20maps%20api%20key%3F\"><h3>Do I need a Yandex Maps API key?<\/h3><\/dt>\n<dd><p>Only if you want to display pickup points on an interactive map \u2014 this is optional and configured in the plugin settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.25<\/h4>\n\n<ul>\n<li>Bundled the product-tab widget's CSS\/JS locally instead of loading it from a remote domain at runtime.<\/li>\n<li>Replaced direct cURL calls with the WordPress HTTP API (<code>wp_remote_post()<\/code>) in the widget-data proxy and the SSL-retry fallback.<\/li>\n<li>Added per-IP rate limiting to the order-creation REST endpoint as an additional layer of protection alongside the optional widget secret.<\/li>\n<li>Sanitized the widget-data REST endpoint's POST payload (all fields except the raw <code>offers<\/code> JSON, which is sanitized downstream).<\/li>\n<li>Corrected the External Services disclosure to accurately describe the live, self-updating cart\/checkout widget bundle.<\/li>\n<li>Renamed an unused, non-prefixed legacy AJAX action; removed a dead reference to a third-party plugin's global variable.<\/li>\n<\/ul>\n\n<h4>2.2.24<\/h4>\n\n<ul>\n<li>Fixed invalid Author URI.<\/li>\n<li>Updated bundled Bootstrap to 4.6.2 (latest 4.x release).<\/li>\n<li>Expanded the External Services disclosure with specific data-sent details and direct links to the eShopLogistic Terms of Service and Privacy Policy.<\/li>\n<li>Restricted the public widget-data REST endpoint to the <code>widget\/*<\/code> API method namespace so it can no longer be used to reach account\/order-management API methods.<\/li>\n<li>Re-enabled the widget secret-key check on the order-creation REST endpoint (enforced only when a secret is configured in settings).<\/li>\n<li>Removed the raw API key from shipping-rate transient cache key names.<\/li>\n<li>Added a capability check to the admin order-export panel to prevent unauthorized order data disclosure.<\/li>\n<li>Sanitized the widget-data REST endpoint's POST payload before use.<\/li>\n<li>Escaped remaining unescaped shortcode output attributes.<\/li>\n<li>Renamed internal PHP callback function names to use the plugin's <code>wc_esl_<\/code> prefix consistently.<\/li>\n<\/ul>\n\n<h4>2.2.23<\/h4>\n\n<ul>\n<li>Shortened plugin display name to comply with WordPress.org directory guidelines (keyword stuffing removal).<\/li>\n<li>Fixed WooCommerce-dependency notice to use admin_notices and proper translation strings instead of a direct echo.<\/li>\n<\/ul>\n\n<h4>2.2.22<\/h4>\n\n<ul>\n<li>Public release preparation for the WordPress.org plugin directory.<\/li>\n<\/ul>","raw_excerpt":"Integration with eShopLogistic service for WooCommerce. Supports 18+ delivery services with real-time shipping calculations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/145283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=145283"}],"author":[{"embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eshoplogistic"}],"wp:attachment":[{"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=145283"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=145283"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=145283"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=145283"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=145283"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/arg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=145283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}