{"id":312020,"date":"2026-05-17T17:39:52","date_gmt":"2026-05-17T17:39:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bh-post-express-web387\/"},"modified":"2026-05-17T17:39:24","modified_gmt":"2026-05-17T17:39:24","slug":"web387-bhpostexpress","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/web387-bhpostexpress\/","author":23498211,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"WEB387 BH Post Express Shipping","header_author":"Naim Opardija \/ WEB387 Sarajevo","header_description":"Integrates BH Post Express (BHPostExpress) delivery service with WooCommerce. Automatically creates shipment announcements, prints shipping labels, and tracks parcels \u2014 built for the Bosnia and Herzegovina market.","assets_banners_color":"7b7c67","last_updated":"2026-05-17 17:39:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/web387.com\/bhpostexpress","header_author_uri":"https:\/\/web387.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"web387sarajevo","date":"2026-05-17 17:39:24"}},"upgrade_notice":{"1.4.0":"<p>Plugin renamed to &quot;WEB387 BH Post Express Shipping&quot;. Nonce security added to all admin action handlers. Required update for WordPress.org compliance.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3534723,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3534723,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3534723,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3534723,"resolution":"772x250","location":"assets","locale":"","width":720,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Plugin settings page","2":"Shipment meta box in the order admin panel","3":"A6 shipping label example"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[263259,263260,263261,3546,286],"plugin_category":[45],"plugin_contributors":[263262],"plugin_business_model":[],"class_list":["post-312020","plugin","type-plugin","status-publish","hentry","plugin_tags-bhpost","plugin_tags-bhposta","plugin_tags-bosnia","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-web387sarajevo","plugin_committers-web387sarajevo"],"banners":{"banner":"https:\/\/ps.w.org\/web387-bhpostexpress\/assets\/banner-772x250.jpg?rev=3534723","banner_2x":"https:\/\/ps.w.org\/web387-bhpostexpress\/assets\/banner-1544x500.jpg?rev=3534723","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/web387-bhpostexpress\/assets\/icon-128x128.png?rev=3534723","icon_2x":"https:\/\/ps.w.org\/web387-bhpostexpress\/assets\/icon-256x256.png?rev=3534723","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WEB387 BH Post Express Shipping enables direct integration with the BH Po\u0161ta express delivery service via the official BHPostExpress API.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Automatically create a BHPostExpress shipment announcement when an order status changes<\/li>\n<li>Manually create a shipment announcement from the order admin panel<\/li>\n<li>Automatically cancel the announcement when a WooCommerce order is cancelled<\/li>\n<li>PDF shipping label (A5 or A6 format) printed directly from the admin panel<\/li>\n<li>Real-time shipment status tracking (AJAX refresh) in the admin panel<\/li>\n<li>Tracking number visible in the orders list column<\/li>\n<li>Tracking link for the customer in the order confirmation email<\/li>\n<li>Automatic detection of Cash on Delivery (COD) payments<\/li>\n<li>Automatic weight calculation from WooCommerce product weights<\/li>\n<li>Compatible with WooCommerce Block Checkout<\/li>\n<\/ul>\n\n<p><strong>Note:<\/strong> To use this plugin you need API credentials (API key, UserIdentifikator, and endpoint URL) provided by BH Po\u0161ta upon signing a BHPostExpress service agreement.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin in WP Admin \u2192 Plugins<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 BHPostExpress<\/strong><\/li>\n<li>Enter the API credentials provided by BH Po\u0161ta<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20api%20credentials%3F\"><h3>Where do I get the API credentials?<\/h3><\/dt>\n<dd><p>The API credentials (UserIdentifikator, APIkey, and endpoint URL) are provided by BH Po\u0161ta when you sign a BHPostExpress service agreement.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20the%20id%20of%20my%20local%20post%20office%3F\"><h3>How do I find the ID of my local post office?<\/h3><\/dt>\n<dd><p>After entering and saving your API credentials, click \"Test API connection\". If the connection is successful, look up your post office by postal code and enter its ID in the settings.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20woocommerce%20block%20checkout%3F\"><h3>Does the plugin work with WooCommerce Block Checkout?<\/h3><\/dt>\n<dd><p>Yes, the plugin has been tested and works with the WooCommerce Block Checkout.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20an%20order%20is%20cancelled%3F\"><h3>What happens when an order is cancelled?<\/h3><\/dt>\n<dd><p>The plugin automatically sends a cancellation request to BH Po\u0161ta. If the parcel has already been picked up, cancellation will not be possible (error 1026).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Renamed plugin to \"WEB387 BH Post Express Shipping\" (unique brand identifier first)<\/li>\n<li>Updated Text Domain to web387-bhpostexpress<\/li>\n<li>Translated readme.txt to English<\/li>\n<li>Added nonce verification to manual create, cancel, and print label handlers<\/li>\n<li>Added web387sarajevo as contributor<\/li>\n<li>Removed load_plugin_textdomain() (not needed since WordPress 4.6)<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Added Settings link in the plugins list<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fixed Text Domain to bh-post-express-web387<\/li>\n<li>Updated Tested up to: 6.9<\/li>\n<li>Created languages folder<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Fixed Plugin URI to differ from Author URI<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Renamed plugin to \"BH Post Express - WEB387\"<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added GPL-2.0+ license header<\/li>\n<li>Added Requires Plugins header<\/li>\n<li>Added load_plugin_textdomain()<\/li>\n<li>Added uninstall.php<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed HTML span tags displayed in label remarks<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Tracking link in customer email<\/li>\n<li>Automatic cancellation when order is cancelled<\/li>\n<li>Block Checkout compatibility (fresh order object)<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed Settings form<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Integrates BH Post Express delivery service with WooCommerce for the Bosnia and Herzegovina market.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/312020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=312020"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/web387sarajevo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=312020"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=312020"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=312020"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=312020"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=312020"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=312020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}