Send automatic SMS alerts to customers when orders are placed, shipped, or on hold — using your own Android phone and 30 lines of PHP.
Download App Free View API DocsAny WooCommerce order status change can trigger an automatic SMS to your customer — instantly.
Send an SMS the moment a customer places an order: "Your order #1234 has been received. Thank you!"
Notify customers when the order is on its way: "Your order has shipped! Tracking: ABC123."
Let customers know their order is pending: "Your order is on hold pending payment confirmation."
Close the loop when an order is complete: "Your order has been delivered. We hope you enjoy it!"
Proactively notify customers about cancellations or refunds — before they contact support.
Trigger SMS on any WooCommerce event: abandoned cart, coupon use, review request, back-in-stock alerts.
From zero to sending WooCommerce SMS notifications in under 15 minutes.
Download SMS Gateway Master from Google Play. Sign in with your Google account. Go to Settings → API Key and copy your unique key. Keep it secret — it authenticates all API calls.
Open wp-content/themes/your-theme/functions.php (or a custom plugin file) and add the function below. Replace YOUR_API_KEY_HERE with your key.
/**
* SMS Gateway Master — helper function for WooCommerce
* Docs: https://sms-gateway-ae7e1.web.app/documentation.html
*/
function sms_gateway_send( string $phone, string $message ): bool {
$api_key = 'YOUR_API_KEY_HERE'; // replace with your key
$endpoint = 'https://us-central1-sms-gateway-ae7e1.cloudfunctions.net/api_sms_send';
$response = wp_remote_post( $endpoint, [
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => $api_key,
],
'body' => wp_json_encode([
'phoneNumber' => $phone,
'message' => $message,
]),
'timeout' => 10,
]);
return ! is_wp_error( $response )
&& 200 === wp_remote_retrieve_response_code( $response );
}
Add the hooks below to the same functions.php file. Each hook fires when an order reaches the specified status and sends an SMS to the customer's billing phone number.
// ── Order placed / processing ──────────────────────────────
add_action( 'woocommerce_order_status_processing', function( $order_id ) {
$order = wc_get_order( $order_id );
$phone = $order->get_billing_phone();
$name = $order->get_billing_first_name();
$total = $order->get_formatted_order_total();
if ( $phone ) {
sms_gateway_send(
$phone,
"Hi {$name}! Your order #{$order_id} ({$total}) has been received. Thank you for shopping with us!"
);
}
});
// ── Order completed / shipped ───────────────────────────────
add_action( 'woocommerce_order_status_completed', function( $order_id ) {
$order = wc_get_order( $order_id );
$phone = $order->get_billing_phone();
$name = $order->get_billing_first_name();
if ( $phone ) {
sms_gateway_send(
$phone,
"Hi {$name}! Your order #{$order_id} has been completed/shipped. We hope you enjoy your purchase!"
);
}
});
// ── Order on hold ───────────────────────────────────────────
add_action( 'woocommerce_order_status_on-hold', function( $order_id ) {
$order = wc_get_order( $order_id );
$phone = $order->get_billing_phone();
$name = $order->get_billing_first_name();
if ( $phone ) {
sms_gateway_send(
$phone,
"Hi {$name}! Your order #{$order_id} is currently on hold pending payment confirmation. Please contact us if you have questions."
);
}
});
woocommerce_order_status_pending, woocommerce_order_status_processing, woocommerce_order_status_on-hold, woocommerce_order_status_completed, woocommerce_order_status_cancelled, woocommerce_order_status_refunded, woocommerce_order_status_failed. You can hook into all of them.$order->get_billing_phone(). Make sure customers enter phone in international format during checkout (e.g. +40712345678). You can enforce this with a checkout validation hook or the built-in WooCommerce phone field.7-day free trial. No credit card. Working in under 15 minutes.
Download on Google Play See Pricing