## [1.0.5] - 2026-04-30

### 🚀 Features

- Cache external calls in Object Cache (#169)

### ⚙️ Miscellaneous Tasks

- Prepare v1.0.5 (#170)

## [1.0.4] - 2026-04-20

### 🚀 Features

- Sort service point type options (#157)
- Sort shipping products (#156)
- Sort carrier options (#155)

### 🐛 Bug Fixes

- Show correct service point error message (#167)
- Check if payment method change request (#160)
- Change type of service point "type" field (#153)

### 💼 Other

- _(deps-dev)_ Bump phpstan/phpstan from 2.1.46 to 2.1.50 (#161)
- _(deps-dev)_ Bump php-stubs/woocommerce-stubs from 10.6.2 to 10.7.0 (#163)
- _(deps-dev)_ Bump @wordpress/api-fetch from 7.40.0 to 7.42.0 (#146)
- _(deps-dev)_ Bump phpstan/phpstan from 2.1.40 to 2.1.46 (#142)
- _(deps-dev)_ Bump eslint-plugin-jsdoc from 62.5.4 to 62.9.0 (#145)
- _(deps-dev)_ Bump php-stubs/woocommerce-stubs from 10.5.2 to 10.6.2 (#143)
- Use npm ci in release build (#152)
- Remove empty node module folders (#151)

### 📚 Documentation

- Add link to migration guide (#154)

### ⚙️ Miscellaneous Tasks

- Prepare v1.0.4 (#168)
- Always show service point type help message (#159)

## [1.0.3] - 2026-04-15

### 🐛 Bug Fixes

- _(SetServicePointOnCompletion)_ Revert partial request check (#148)
- _(openapi)_ Make type field nullable (#147)
- Set product_code options after initializing settings (#140)
- _(ServicePointSelector)_ Only trigger effect on servicePoint (#139)
- _(SetServicePointOnCompletion)_ Check if partial request (#138)
- Remove empty service_point_types (#135)

### 💼 Other

- Capitalize WooCommerce (#137)
- Merge invalid query parameter translations (#136)
- _(deps-dev)_ Bump @wordpress/scripts from 31.4.0 to 31.5.0 (#134)
- _(deps-dev)_ Bump php-stubs/woocommerce-subscriptions-stubs (#127)
- _(deps-dev)_ Bump php-stubs/woocommerce-stubs from 10.4.2 to 10.5.2 (#128)
- _(deps-dev)_ Bump phpstan/phpstan from 2.1.38 to 2.1.40 (#130)
- _(deps-dev)_ Bump @wordpress/api-fetch from 7.39.0 to 7.40.0 (#133)
- _(deps-dev)_ Bump php-stubs/wordpress-stubs from 6.9.0 to 6.9.1 (#131)

### ⚙️ Miscellaneous Tasks

- Prepare v1.0.3 (#150)
- Set WC tested to v10.7 (#149)

## [1.0.2] - 2026-02-18

### 🚀 Features

- Support postcode and state in shipping zones (#124)

### 🐛 Bug Fixes

- Change rate name i18n key (#114)
- Clarify invalid_range_type and invalid_instance_id error message (#113)

### 💼 Other

- _(deps-dev)_ Bump eslint-plugin-jsdoc from 61.5.0 to 62.5.0 (#121)
- _(deps-dev)_ Bump @wordpress/scripts from 31.2.0 to 31.4.0 (#122)
- _(deps-dev)_ Bump phpstan/phpstan from 2.1.35 to 2.1.38 (#119)
- _(deps-dev)_ Bump @wordpress/api-fetch from 7.37.0 to 7.39.0 (#123)

### ⚙️ Miscellaneous Tasks

- Release v1.0.2 (#126)
- Set WC tested to v10.5 (#125)
- Change shipping module to Delivery Checkout (#118)
- Change cargo to shipping (#117)
- Remove outdated pricing information (#116)
- Change freight module to shipping module (#115)
- Remove pakkelabels from contributors (#112)

## [1.0.1] - 2026-01-21

### 🐛 Bug Fixes

- Allow empty array from service point types endpoint (#110)

### ⚙️ Miscellaneous Tasks

- Prepare v1.0.1 release (#111)

## [1.0.0] - 2026-01-19

### 🚀 Features

- Block activation if legacy plugin is active (#25)
- Use service point types in checkout (#3)
- Specify service point types in settings (#1)

### 🐛 Bug Fixes

- Lint errros found by wpcs (#104)
- Add if not defined abspath exit to more files (#103)
- Correct lint name
- Check length of error message (#96)
- Set private to first option in shipping_product (#93)
- Verify nonce in update_price_ranges (#92)
- Add nonce verification to validate_service_point_selection_for_package (#91)
- Verify nonce in update_order_meta (#82)
- Add nonce verification to validate_business_name_for_package (#81)
- Add nonce verification to set_selection_session (#80)
- Allow translating error messages (#76)
- Sanitize remaining fields (#72)
- Replace htmlentities with esc_attr for SP json (#71)
- Prefix global variables with shipmondo (#70)
- Sanitize action inputs (#69)
- Use esc_attr instead of htmlentities (#68)
- Unslash setSelectionSession input (#66)
- Sanitize getPriceRanges input (#65)
- Validate setSelectionSession input (#63)
- Use esc_html\_\_ instead of separate method calls (#62)
- Add type hints to classic checkout map (#61)
- Use correct namespace prefix (#58)
- Escape most values in template files (#56)
- Sanitize admin settings (#52)
- Only show missing Google Maps key when SP picker is modal (#53)
- Do not allow direct access to templates (#51)
- Send getPriceRanges error statuses correctly (#47)
- Set wp_enqueue_script in_footer (#46)
- Convert all files to LF (#44)
- Use correct syntax for doc variable type declarations
- Escape a tag
- Escape plugin translations (#41)
- Remove out of sync doc comments (#40)
- _(i18n)_ Add missing translation comments (#39)
- Prefix global fn (#38)
- Check if data is set before usage (#37)
- Remove debug logs (#36)
- fix: verify external inputs to shipping settings (#34)

* fix: verify external inputs to shipping settings

* style: format plugin/controllers

* chore: update translations

- Remove trailing commas (#33)
- Send plugin info in requests (#28)
- Add callback to register_setting (#24)
- Remove explicit load of i18n files (#23)
- Add missing i18n domain (#17)
- Use the same i18n namespace everywhere (#16)
- Service point type selector (#14)
- Gitignore frontend build (#13)
- Update endpoint used by classic checkout (#4)
- Format plugin folder with php-cs-fixer

### 💼 Other

- Update po file
- Remove peer dependencies supplied by WP (#106)
- _(deps-dev)_ Bump @wordpress/api-fetch from 7.36.0 to 7.37.0 (#100)
- _(deps-dev)_ Bump @wordpress/scripts from 31.1.0 to 31.2.0 (#101)
- _(deps-dev)_ Bump eslint-plugin-jsdoc from 50.6.3 to 61.5.0 (#87)
- _(deps-dev)_ Bump @wordpress/api-fetch from 7.35.0 to 7.36.0 (#90)
- _(deps-dev)_ Bump @wordpress/scripts from 30.11.0 to 31.1.0 (#86)
- _(deps)_ Bump actions/checkout from 5 to 6 (#84)
- _(deps-dev)_ Bump php-stubs/woocommerce-stubs from 10.3.6 to 10.4.2 (#85)
- Add stubs for WC_Subscriptions_Cart (#83)
- Enable sourcemaps in production (#50)
- Include resources folder (#49)
- Release as zip file (#27)
- Remove da_DK from repository (#12)
- Package release (#10)
- Add missing colon (#9)
- Translate new keys to Danish (#8)
- Initial commit. Copied over code from old repo
- Initial commit

### 🚜 Refactor

- Add some missing type declarations (#108)
- Get assets paths based on shipmondo.php file (#105)
- Do not block activation when legacy is active (#102)
- _(ShipmondoApiService)_ Move own_agreement_only and quantity to SettingsController (#97)
- Use wp_json_encode instead of json_encode (#95)
- Remove nonce verification from update_order_meta (#94)
- Remove abstract Controller (#79)
- Cleanup frontend i18n declarations (#78)
- Use plugins_url instead of homebrewed code (#77)
- Remove dead code in traits (#75)
- Remove Loader class (#74)
- Remove unused Business trait (#59)
- Remove WC_Eval_Math polyfill (#57)
- Move setting guide html to template (#55)
- Inline api key notices (#54)
- Add return type for shipping method fields (#48)
- Set minimum php version to 7.3 (#32)
- Validate classic checkout SP input (#31)
- Change PHP namespace to ShipmondoShipping (#26)
- Remove dead code from MorningTrain theme (#21)
- Use multiselect instead of checkboxes (#11)
- Remove references to pakkelabels (#6)

### 📚 Documentation

- How to develop plugin (#107)
- Add external service terms to readme (#60)
- Set required PHP version to v7.4 (#30)

### 🎨 Styling

- Format legacy code (#45)
- Format plugin folder with mago (#35)
- Remove useless comments (#5)
- Convert more code to spaces instead of tabs
- Format everything with prettier
- Format admin page with prettier

### ⚙️ Miscellaneous Tasks

- Setup phpstan (#109)
- Add phpcs ignore to unfixable nonce verification fields (#98)
- Specify WooCommerce as dependency (#73)
- Ignore plugin-check false positives (#67)
- Setup plugin-check validation (#64)
- Reduce plugin tags to allowed limit (#43)
- Set WP tested version to 6.9 (#42)
- Update activation error message (#29)
- Change license and plugin name (#22)
- Change readme title (#20)
- Change plugin uri (#19)
- Add store page screenshots (#18)
- Change plugin name back to Shipmondo for WooCommerce (#15)
- Change plugin name to Shipmondo (#7)
- Gitignore vendor folder (#2)
- Setup env config
