Need a clean way to allow your shoppers to ship to multiple addresses?
WooCommerce Ship to Multiple Addresses lets you do that easily, and your shoppers never need to leave the checkout page.
Your shoppers can put whatever they want to buy in the cart, then at checkout they can optionally choose to have various items sent to different shipping addresses. And they can even split the quantity of item across multiple addresses.
It’s easy to use and highly intuitive, your shoppers are gonna love it.
Watch the video overview to see how it works, or you can check out the screenshots below too.
Partial list of features
Shoppers can opt to ship items in their order to multiple locations
Works with all shipping methods
Stores unlimited addresses for logged in customers and guest shoppers
Easy to set up and configure
Easy for shoppers to use
Shoppers never need to leave the checkout page to manage addresses and shipping
Automatically disable multi-address shipping for specific products, or all products under specific conditions
Automatically splits the cart into packages so the shopper can choose a shipping method for each destination
Shoppers can optionally add a shipping note for each address they’re shipping items to
Automatically stores shipping selections in the order and order email messages – available for review by admins and shoppers
Admins can optionally set a separate shipment status for each parcel destination in an order, and you can optionally enable a shipment status update email to be sent to shoppers.
Adds a shipping address book editor in the My Account page
Admins can manage a customer’s shipping address book when editing their account in the WordPress admin area
Automatically split your orders into separate orders, one per shipping address, with our Split Orders with Multiple Addresses addon to make creating shipping labels much easier!Works with our Phone Orders & Manual Orders extensionWorks with our PDF Invoices & Packing Slips Pro extension (iterates multi-shipment info in invoices, and generates individual packing slips per address in an order)
Have a look at some screenshots:
Here’s a quick look at the general settings:
Here’s a typical checkout page showing the “Ship to multiple addresses?” prompt at the top and the address dropdown list selectors above the billing and shipping fields.
When the shopper clicks the link to ship to multiple addresses the address and destination management form appears in a lightbox, the shopper never needs to leave the checkout page. Here’s what the management form looks like:
Have a look at admin view of order shipping details. It shows shipping method, destination, and items that should be sent to the destination.
Here’s a sample shipment status update email sent to the shopper.
Shoppers can see the shipment status of their items when review the order in their My Account page area. Here’s a sample of what it may look like when the shopper views an order’s details.
Use send us a message, or call us – the phone number is listed on our contact page.
Compatibility: WooCommerce 3.0 and newer
Latest version: 2.4.2
We keep all of our software up to date with the latest versions of WooCommerce and WordPress.
If you don't see any recent changes below it's because none have become necessary!
Version 2.4.2 - December 2, 2024
Change priority of action woocommerce_after_calculate_totals to 1 to avoid incorrect recurring charge totals when subscriptions is in use on the site and regular products and subscription products are in the cart at the same time.
Version 2.4.1 - December 10, 2023
Adjust HPOS declaration code to resolve edge case where it is not load soon enough
Updated link to IgniteWoo Licenses page
Version 2.4 - November 29, 2023
Declare WooCommerce HPOS compatibility
Do not insert multi-address details into emails if "Split Orders to Multiple Addresses" is enabled on the site
Version 2.3.26 - April 3, 2023
Added filter for user ID when getting address list
Version 2.3.25 - March 28, 2023
Reinitialize selectize after splitting items or combining split items
Version 2.3.24 - October 12, 2022
Move address form inline Javascript into multi-address.js file
Version 2.3.23 - August 28, 2022
For not logged in users, ensure first address in the address list remains chosen if selected, use isset() instead of empty() for detection
Version 2.3.22 - March 23, 2022
PHP 8.x tweak: Ensure $split_items[ $key ] is an array before trying to renumber the array
After displaying the address book in the My Account area remove the action to avoid having the hook run twice
Clear address form after submitting a new address at checkout
Uncheck "Ship to a different address" checkbox and hide WC shipping address form after saving multiple address selections
Ensure "states" update when a country is selected in the new address form
Remove reference to undefined $split_item_key when getting the list of available addresses
Version 2.3.20 - October 22, 2021
Updated the integration class to ensure arrays are defined is not already set
Version 2.3.19 - September 1, 2021
Ensure that the email class file only loads once
Version 2.3.18 - August 9, 2021
New filter: 'ignitewoo_multi_ship_package_address_display', allows modifying the package title
Version 2.3.17 - July 13, 2021
Updated "add new address" functionality in the admin area as seen when editing a user account
Version 2.3.16 - July 8, 2021
Moved popup modal HTML into template files: address-modal.php and cart-items-table.php
Version 2.3.15 - June 28, 2021
Ensure that enable_for_cart() return true during final test when multiple address shipping should be allowed
Version 2.3.14 - June 23, 2021
WC 5.x settings compatibility
Ensure the "dismiss" action for the split order plugin notice works across all admin pages
Version 2.3.13 - October 22, 2020
Show variation name in the address dialog when variable products are in the cart
Version 2.3.12 - October 9, 2020
Ensure that the "first name" data is saved, mistakenly not saved in v2.3.11
Version 2.3.11 - October 8, 2020
Ensure the field names for adding a new address are unique so that they don't conflict with WC JS code
Version 2.3.10 - September 15, 2020
Test $address_id via isset() instead of empty() to ensure non-logged in user address is detected with zero offset key number
Version 2.3.9 - August 14, 2020
Do not clear address selection session data if the logged in user has no addresses, no session data would exist anyway
Version 2.3.8 - August 12, 2020
Do not assume 4th param is passed to the WC woocommerce_before_template_part action hook
Version 2.3.7 - August 10, 2020
Use a fallback way of determining a shipping module's class name when a module doesn't support zones, this helps with adjusting the shipping taxes based on the actual shipping destination of a package
Version 2.3.6 - August 7, 2020
Ensure proper checking is done when splitting items when multiple items are in the cart, some already split.
Remove cart item address selections when the cart contents is changed
Modified a "<?php//" comment statement to avoid PHP warnings, needs a space between php and //
Version 2.3.5 - August 7, 2020
Ensure that shipping rate taxes are calculated based on the package destination
Version 2.3.4 - August 6, 2020
Updated the split/combine item logic to ensure item quantities for split items don't become negative numbers
Version 2.3.3 - August 4, 2020
Add back the "Delete address" functionality inadvertantly removed from the checkout page in a previous version
Ensure addresses for all items are selected before trying to save selections
Version 2.3.2 - August 1, 2020
New feature: shoppers can add a note for each address they're shipping items to
Changed modal code to use different Javascript and CSS
Ensure an address is selected for each item
Version 2.3.1 - July 28, 2020
WooCommerce 4.x compatibility
Modified address selectors to use single dropdown lists with search ability
Removed Select2.js, switched to Selectize.js
Version 2.3 - June 29, 2020
New feature: Optionally add shipping email and shipping phone fields to shipping addresses
New feature: Administrators can manage user shipping addresses in WP admin area
New feature: Capability to choose the quantity when splitting items to multiple addresses
Added support for IgniteWoo's new "WooCommerce Split Orders with Multiple Addresses" plugin
Version 2.2.13 - June 11, 2020
Compatibility: Ensure user is switched for Ajax security checks when using Phone/Manual Orders
Version 2.2.12 - March 2, 2020
Changed HTML types for the popup Save/Close buttons to input type="button"
Version 2.2.11 - Version 2.2.11 - February 6, 2020
WC 3.9 compatibility (add id attr into the shipping address dropdown select element)
Version 2.2.10 - August 21, 2019
Ensure WC session exists before attempting to read session data
Version 2.2.9 - July 29, 2019
Correct a typo in a variable for what should be $cart_item
Ensure correct method is called to get the tax class when the site uses WC Subscriptions
Version 2.2.8 - May 16, 2019
Close quote around the class tag for the "Split quantity" text wrapper
Version 2.2.7 - March 27, 2019
Ensure WC session exists before trying to read the address list from the session
Version 2.2.6 - February 1, 2019
Calculate tax rates for package destinations if taxes are set to be calculated based on shipping address
Version 2.2.5 - January 29, 2019
Fixed regression error created in v2.2.4 where not all addresses for order items were saved
Added global variable to store instance of the class file, useful for developers that want to hook in etc.
Version 2.2.4 - January 16, 2019
Replace deprecated "woocommerce_add_shipping_order_item" action hook
Version 2.2.3 - December 19, 2018
Changed the address selection JS to use SelectWoo instead of jQuery UI SelectMenu
Version 2.2.2 - December 12, 2018
Adjust security checks when using IgniteWoo's Manual & Phone Orders extension
Ensure billing fields load into the edit address form when the site is set always ship to the billing address
Version 2.2.1 - December 5, 2018
Ensure script loads even if there's only one item in the cart so the address book selectors work on the checkout page
Show address book on My Account page even if the primary shipping address is not set
Version 2.2 - December 4, 2018
Updated support for IgniteWoo's Phone & Manual Orders extension
Update hidden order item meta to ensure our custom fields don't show
Strip slashes from address information when displayed on screen
Added new address book editor to the My Account page
Version 2.1.11 - October 31, 2018
Updated getting the package contents cost for each package, tallies the price of each item in the package
Version 2.1.10 - October 21, 2018
Added support for IgniteWoo's Cart Based Flat Rates extension, when it's used in "Cart Subtotal" mode
Version 2.1.9 - October 23, 2017
Adjusted array and string handling for PHP 7.1
Added address selection and removal links into the order review section of the checkout page
Version 2.1.8 - August 29, 2017
PHP version backward compatibility
Version 2.1.7 - June 21, 2017
Adjusted JS window size positioning for better mobile support
Adjusted CSS z-index for better Select2 support
Version 2.1.6 - April 25, 2017
WooCommerce 3.x compatibility
Version 2.1.5 - March 30, 2017
Update CSS and JS to be give a more mobile friendy display
Version 2.1.4 - February 6, 2017
Updated cart contents checking call to consider multiple quantities when only a single line item is in the cart - Thanks Dan Troy!
Version 2.1.3 - October 26, 2016
Store package info in the order for use with IgniteWoo's PDF Invoices & Packing Slips extension
Version 2.1.2 - October 24, 2016
Moved the integrations hook
Version 2.1.1 - October 19, 2016
Moved admin intergration JS for Select2
Version 2.1 - October 18, 2016
Initial public release
Version 2.0 - October 7, 2016
Private testing
Added suppoort for guest shoppers
Version 1.0 - October 1, 2016
Initial development and testing
From: 59.00 / year
A clean, easy way to allow your shoppers to set multiple addresses at checkout for the items in their cart.
All of our plugins come with great support via email and phone.