Title: SendGround
Author: sendground
Published: <strong>September 11, 2026</strong>
Last modified: September 11, 2026

---

Search plugins

![](https://ps.w.org/sendground/assets/banner-772x250.png?rev=3691780)

![](https://ps.w.org/sendground/assets/icon-256x256.png?rev=3691780)

# SendGround

 By [sendground](https://profiles.wordpress.org/sendground/)

[Download](https://downloads.wordpress.org/plugin/sendground.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/sendground/#description)
 * [Reviews](https://wordpress.org/plugins/sendground/#reviews)
 *  [Installation](https://wordpress.org/plugins/sendground/#installation)
 * [Development](https://wordpress.org/plugins/sendground/#developers)

 [Support](https://wordpress.org/support/plugin/sendground/)

## Description

SendGround is a last-mile delivery platform. This plugin connects your WooCommerce
store to it, so an order you have been paid for reaches your courier without anyone
retyping an address.

**What it does**

 * Offers SendGround delivery at checkout, as a shipping method in the zones you
   choose. One method shows every service SendGround quotes for that cart and that
   address — same day, next day, a scheduled day — each with its own name, price
   and arrival, and the buyer picks. Or it shows a single service, at a price you
   set.
 * Sends an order to SendGround when it reaches the status you nominate: as soon
   as it is paid, once you have packed it, or when you mark it done.
 * Leaves orders alone when there is nothing to deliver: a cart of downloads, or
   a customer collecting at your store.
 * Records the tracking code that comes back, and shows it on the order screen, 
   on the customer’s order page, and inside the emails your store already sends.
 * Emails the buyer at the three moments of a delivery, each editable and each with
   its own switch: when the order gets its tracking code, when the courier collects
   it, and when it is delivered.
 * Moves the order on when the parcel is delivered, and writes what happened as 
   a note, so your order list reflects the round trip without anyone watching a 
   dashboard.
 * Adds a note to the order when something goes wrong, saying what, so you can fix
   it and let the order try again.
 * Cancels the delivery in SendGround when you cancel an order that was already 
   sent, and tells you when SendGround cancels one, leaving the order ready to be
   sent again.
 * Prints the shipping labels: one order from its screen or the list, or many at
   once as a single PDF from the orders list.
 * Lets you ask SendGround to report an order again, one or many at a time, when
   a report did not reach your store.
 * Gives you a tracking page on your own site: put the `[sendground_tracking]` shortcode
   on any page and buyers follow their shipment there, by code.

**Your courier’s brand, not ours**

SendGround is the platform your courier runs on. You and your buyers deal with your
courier, so that is who you both see: once the store is connected, the option at
checkout, the tracking page and the emails carry your courier’s own name and logo,
and so do the “Send to…” button, the order notes and the Tracking column in your
admin. “SendGround” stays only where the platform itself is meant: the plugin’s 
name, the token, the connection. Until the store connects, everything says SendGround.

**How prices work**

By default each option carries the price SendGround quotes for that order, taxes
included: your SendGround rates decide, and nothing is typed in WooCommerce. A quoted
price can be shaped without leaving the zone: an amount added on top for packaging
or handling, a floor and a ceiling on what the buyer pays, and a cart amount from
which delivery is free. Prefer your own price? Pick one service on the zone and 
give it a fixed cost, the same way you set every other rate; SendGround’s arrival
promise is still shown next to it.

#### External service

This plugin requires an account with **SendGround** (https://www.sendground.com),
a third-party delivery service. It does nothing on its own: without an account and
its API token, no data leaves your store.

Once connected, the plugin sends SendGround the details of an order it needs to 
deliver, at the moment that order reaches the status you chose in the settings (
_Processing_ unless you change it):

 * your WooCommerce order number, as a reference
 * the delivery name, address, and contact phone
 * the items on the order, by SKU, or the parcels the checkout quote predicted, 
   depending on how your account is configured
 * the pickup day the buyer chose, for a scheduled service
 * any note the customer left at checkout
 * the amount the courier has to collect at the door, when the buyer chose cash 
   on delivery
 * the coordinates of the delivery address, when the buyer pinned it at checkout

It also asks SendGround, once per order, how your account is configured, so the 
order is built the way your courier expects, and, when connecting, who your courier
is: the name and logo shown to buyers.

When you cancel an order that was already sent, the plugin tells SendGround to cancel
the delivery, and reads the order back once to see whether it could.

While a buyer is at checkout, the plugin asks SendGround for a quote of the delivery,
so the option can show when it would arrive and, if you choose, what it costs. That
request carries the town of the delivery address (city, state, postal code and country)
or the pin the buyer placed, and the items in the cart with their size and weight,
or the number of parcels. No name, contact details or payment details travel with
it.

Nothing else is sent. Payment details are never sent.

SendGround reports back to your store when a parcel is collected, delivered, could
not be delivered, or when the delivery is cancelled. Those reports are signed with
a key issued to your store alone, and one that does not verify is refused.

Service terms: https://www.sendground.com/terms
 Privacy policy: https://www.sendground.
com/privacy-policy

#### Google Maps (optional)

If you switch on _Location on the map_ in the settings and enter a Google Maps API
key, your checkout loads **Google Maps Platform** (https://mapsplatform.google.com)
in the buyer’s browser, to offer an address search and a map where the buyer can
drag a pin to their door. What the buyer types in that search box, and the place
they choose, go to Google under your key and your Google account. The coordinates
of the pin are stored on the order and sent to SendGround with it, so the courier
goes to the exact spot.

With the map off, or without a key, nothing is loaded from Google and the checkout
is left exactly as it is.

Google Maps Platform terms: https://cloud.google.com/maps-platform/terms
 Google
privacy policy: https://policies.google.com/privacy

## Screenshots

[⌊Every service your courier quotes, as options at checkout: name, price and arrival,
with the courier's own logo, and the map where the buyer pins the door.⌉⌊Every service
your courier quotes, as options at checkout: name, price and arrival, with the courier's
own logo, and the map where the buyer pins the door.⌉[

Every service your courier quotes, as options at checkout: name, price and arrival,
with the courier’s own logo, and the map where the buyer pins the door.

[⌊The settings screen: connection, hand-over moment, map, delivery options and the
reports coming back, explained step by step.⌉⌊The settings screen: connection, hand-
over moment, map, delivery options and the reports coming back, explained step by
step.⌉[

The settings screen: connection, hand-over moment, map, delivery options and the
reports coming back, explained step by step.

[⌊The orders list with the Tracking and Label columns: the code of each shipment,
its label a click away, what could not be sent and why, and the button to send it.⌉⌊
The orders list with the Tracking and Label columns: the code of each shipment, 
its label a click away, what could not be sent and why, and the button to send it
.⌉[

The orders list with the Tracking and Label columns: the code of each shipment, 
its label a click away, what could not be sent and why, and the button to send it.

[⌊The tracking page buyers see on your own site, with the courier's brand, the shipment's
status and what happened so far.⌉⌊The tracking page buyers see on your own site,
with the courier's brand, the shipment's status and what happened so far.⌉[

The tracking page buyers see on your own site, with the courier’s brand, the shipment’s
status and what happened so far.

## Installation

 1. Install and activate the plugin.
 2. Ask your courier for the API token they issued for your store.
 3. Go to **WooCommerce  SendGround**, paste the token, and save. The token is checked
    straight away, so you know at once whether it works.
 4. Go to **WooCommerce  Settings  Shipping** and add _SendGround_ to the zones you
    deliver to. One method per zone is enough: it offers every service SendGround quotes.
 5. Optionally, switch on _Location on the map_ in the same settings screen and add
    a Google Maps API key, so buyers can find their address and pin their door at checkout.

The next order that reaches your chosen status is sent automatically.

## FAQ

### Which orders get sent?

Once SendGround is offered on a shipping zone, the ones whose buyer chose it — nothing
else. Until then, any order that has something to deliver: an order whose items 
are all downloads never needed shipping, and one being collected at your store is
not going anywhere.

### When exactly is an order sent?

At the status you nominate in the settings. _Processing_ — paid — suits a store 
that packs as it sells. A store that picks from a warehouse can use _Ready to ship_,
a status this plugin adds, and hand each order over once the parcel exists.

### What if an order fails to send?

A SendGround that is briefly unavailable is retried on its own, waiting longer each
time. Anything else — a token that was rejected, an order SendGround refused — is
written as a note on the order, and the orders list shows it as _Failed_ in the 
Tracking column, with the reason on hover and a _Send to SendGround_ link. Fix the
cause and send it from there, from the order screen (_Send to SendGround_ in the
order actions), or for many at once with the _Send to SendGround_ bulk action; a
filter narrows the list to the orders not sent or failed. Orders already sent, and
orders with nothing to deliver, are skipped and counted.

### Can the same order be sent twice?

No. Each order carries its own key, so a retry returns the delivery that already
exists rather than creating a second one.

### What happens if I cancel an order?

If the order was already sent, the plugin tells SendGround to cancel the delivery,
so no courier goes. SendGround cancels it unless a parcel is already on its way,
in which case someone there recovers it first and the order is told once it is cancelled.
If SendGround cancels a delivery on its side, the order gets a note and shows “Delivery
cancelled” in the Tracking column, with the “Send to SendGround” button back, in
case it should ship after all. Refunding an order does not cancel its delivery; 
cancel the order if the parcel should not go.

### Do buyers see the name “SendGround”?

No. Once connected, everything a buyer sees carries your courier’s own name and 
logo: the delivery option at checkout, the tracking page, the emails. In your admin
the same: you send orders to your courier, and the notes say what your courier reported.“
SendGround” is the name of the plugin and of the platform your token comes from,
nothing more. Name an option yourself on the shipping zone if you prefer your own
wording.

### Do I need to change my shipping settings?

No. Your shipping zones, methods and prices stay exactly as they are. Adding SendGround
as a delivery option is worth doing — it is what lets a buyer choose it, and it 
tells the plugin which orders are yours to deliver — but nothing breaks if you don’t.

### Why would I add a Google Maps key?

A typed address is a guess about a door: a long block, a house behind another, a
street that shares its name with one in the next town. Switch on _Location on the
map_ in the settings and paste a key, and buyers who choose SendGround see an address
search and a map at checkout, and can drag the pin to exactly where they are. The
courier gets those coordinates instead of a reading of the street name. The key 
is yours, created in Google Cloud and restricted to your website, and Google bills
your account — a store of ordinary size stays within the free monthly allowance.
Both the classic and the block checkout get the search and the pin. An address typed
without the search, or one saved from an earlier order, is placed on the map from
its text: found at its door number, the pin counts as the buyer’s and they are only
invited to drag it if it is off; found only as a street or a town, the buyer is 
asked to tap their door, and nothing is sent until they do. A customer with an account
keeps their pin for the next order, as long as the street is still the same.

If you would rather not leave it to chance, the settings let you require it: a buyer
who chooses SendGround then has to pick their address from the search, or drag or
confirm the pin, before the order goes through. Should the map fail to load in a
buyer’s browser, the order is accepted anyway and the address is read by SendGround
as usual.

### Can buyers see SendGround’s own price and delivery time?

Yes. A SendGround method on a shipping zone works one of three ways: every service
SendGround quotes, one option each, at the price SendGround quotes for that order
to that address, taxes included (the default); one service you pick, at SendGround’s
quoted price; or one service at a fixed cost you set. Whichever way, the arrival
SendGround promises (“Arrives tomorrow before 13:00”) is shown next to the option,
so buyers choose knowing when. On a taxable rate a quoted price is booked as net
plus tax, so your tax report sees the tax on delivery; the total the buyer pays 
is the quote to the cent. The quote is made at the door when the buyer has placed
a pin, and at the town of the address otherwise. A cart whose products all carry
dimensions and weight is quoted by its products: SendGround predicts the boxes it
will ship in, prices those, and the order is created with them. A scheduled service
adds a day picker under the options: the buyer chooses the day, SendGround confirms
it or names the nearest day it can serve, and the order is created for that day.

### What happens when SendGround cannot find the buyer’s town?

With the map on, the SendGround options are held back and the map opens first, asking
the buyer to tap their door; the options appear as soon as the pin is placed. With
the map off, a fixed-price option is offered as before and SendGround reads the 
address once the order arrives; an option priced by quote is not offered, since 
there is no quote to price it with.

### I also offer pickup at my store. Do buyers have to fill in an address first?

Not with the block checkout. Turn on **Local pickup** under WooCommerce  Settings
Shipping  Local pickup, rather than adding the older “Local pickup” rate to a zone:
the checkout then asks “Ship or pick up?” before the address, and a buyer who picks
up never sees the address form, the search or the map. The map itself only opens
once a buyer has chosen a SendGround delivery option, right under the shipping options.

### What about cash on delivery?

An order paid with WooCommerce’s cash on delivery is sent with its total as the 
amount to collect at the door, so the courier knows what to ask for and SendGround
shows it as a collection. A store that takes payment on delivery through another
gateway can set the amount with the `sendground_collect_on_delivery_amount` filter.

### How do I print the shipping labels?

Each sent order has a “Download label” button in the Label column of the orders 
list and a “Print the shipping label” link on its screen, both opening the label
as a PDF. To print a batch, select the orders in the list and choose “Print shipping
labels” from the bulk actions: one PDF with every label, ready for the printer. 
The label is offered until the courier collects the parcel; after that there is 
nothing left to put it on.

### A report from SendGround never arrived. What do I do?

Select the orders and choose “Refresh from SendGround” from the bulk actions, or
use the order action of the same name on one order. SendGround reports the order’s
current state again, through the same signed path, and the notes and status changes
arrive within a minute.

### Can buyers track their shipment on my site?

Yes. Put the `[sendground_tracking]` shortcode on any page. Buyers type the code
from their order confirmation and see the shipment’s status and its events, with
a link to SendGround’s own tracking page. A link with `?code=` opens the page already
filled in.

### How does the order know it was delivered?

SendGround tells your store, and the plugin moves the order and adds a note. Your
store has to be reachable from the internet for that, over https. If it is not, 
orders still go out; only the reports coming back are lost, and the settings screen
says so when you connect.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SendGround” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ sendground ](https://profiles.wordpress.org/sendground/)

“SendGround” has been translated into 2 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/sendground/contributors)
for their contributions.

[Translate “SendGround” into your language.](https://translate.wordpress.org/projects/wp-plugins/sendground)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/sendground/), check
out the [SVN repository](https://plugins.svn.wordpress.org/sendground/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/sendground/) by 
[RSS](https://plugins.trac.wordpress.org/log/sendground/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First release: offer SendGround at checkout, send paid orders, show their tracking,
   and move each order on as it is picked up, delivered, or an attempt fails.
 * Address search and a map pin at checkout, with the store’s own Google Maps key,
   so the courier gets the exact door.
 * Live quotes at checkout: SendGround’s delivery promise next to each option, and,
   when the store chooses, its price.
 * Cancellation in both directions: cancelling an order cancels its delivery in 
   SendGround, and a delivery cancelled in SendGround is noted on the order.
 * “Refresh from SendGround”, for one order or many, when a report never arrived.
 * Shipping labels printed one by one from the list, or many at once as a single
   PDF.
 * A “shipment ready” email with the tracking code, the moment the order is handed
   over.
 * A tracking page on the store’s own site, with the `[sendground_tracking]` shortcode.
 * Quoted prices can carry an added amount, a floor, a ceiling, and be free from
   a cart amount.
 * The courier’s own name and logo in front of buyers and in the merchant’s orders,
   read from its account when the store connects.
 * A switch to log every exchange with SendGround, for support.

## Meta

 *  Version **1.0.0**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (UK)](https://en-gb.wordpress.org/plugins/sendground/), [English (US)](https://wordpress.org/plugins/sendground/),
   and [Spanish (Ecuador)](https://es-ec.wordpress.org/plugins/sendground/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/sendground)
 * Tags
 * [delivery](https://wordpress.org/plugins/tags/delivery/)[logistics](https://wordpress.org/plugins/tags/logistics/)
   [shipping](https://wordpress.org/plugins/tags/shipping/)[tracking](https://wordpress.org/plugins/tags/tracking/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/sendground/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/sendground/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/sendground/reviews/)

## Contributors

 *   [ sendground ](https://profiles.wordpress.org/sendground/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/sendground/)