WooCommerce Ship to Multiple Addresses WooCommerce Ship to Multiple Addresses

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 extension

Works 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:

WooCommerce Ship to Multiple Addresses - Plugin Settings
WooCommerce Ship to Multiple Addresses – Plugin 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.

WooCommerce Ship to Multiple Addresses - Checkout Page
WooCommerce Ship to Multiple Addresses – Checkout Page

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:

WooCommerce Ship to Multiple Addresses - Address and Package Destination Management
WooCommerce Ship to Multiple Addresses – Address and Package Destination Management

Have a look at admin view of order shipping details. It shows shipping method, destination, and items that should be sent to the destination.

WooCommerce Ship to Multiple Addresses - Backend Order View
WooCommerce Ship to Multiple Addresses – Backend Order View

Here’s a sample shipment status update email sent to the shopper.

WooCommerce Ship to Multiple Addresses - Shipment Status Email Notification
WooCommerce Ship to Multiple Addresses – Shipment Status Email Notification


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.

WooCommerce Ship to Multiple Addresses - Shopper's Order Details
WooCommerce Ship to Multiple Addresses – Shopper’s Order Details


So there ya go! We hope you like it.

Be sure our companion plugins Split Orders with Multiple Addresses to make creating shipping labels much easier!

Comes with great support via email and phone.


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.1



WooCommerce Ship to Multiple Addresses - Address and Package Destination ManagementWooCommerce Ship to Multiple Addresses - Checkout PageWooCommerce Ship to Multiple Addresses - Shopper's Order DetailsWooCommerce Ship to Multiple Addresses - Backend Order ViewWooCommerce Ship to Multiple Addresses - Shipment Status Email NoticationWooCommerce Ship to Multiple Addresses - Plugin Settings

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.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

Ask a Question:


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.

Subscription options

A subscription entitles you to 1 year of updates and support. Each individual web site requires a license key, so choose the right license for your needs.