October 24, 2024
Chicago 12, Melborne City, USA
PHP

Setting Up SMS Notification API with wp_remote_post in WooCommerce when placing new & updating order


I have this free plugin for notifying users via SMS when there is an Order Status change/Order Note in WooCommerce, it is working well with the current API Integrated in codes below, So i need to twist it with another SMS Provider API and also i need when a user place a new order should also get SMS Notification

Below is the Simple Codes of a Plugin (CODE 1)

 <?php

/**
 * Plugin Name: Techipress SMS Notifier
 * Plugin URI: https://github.com/omukiguy/techiepress-sms-notifier
 * Author: Techipress
 * Author URI: https://github.com/omukiguy/techiepress-sms-notifier
 * Description: Send SMS Notifications from Woocommerce Order Notes and Order Status Changes.
 * Version: 0.0.1
 */
 
 // Event of a new email for the order - change in status
 add_action( 'woocommerce_order_status_changed', 'techiepress_send_sms_on_new_order_status', 10, 4 );
 
 // Event of the order note
 add_action( 'woocommerce_new_customer_note_notification', 'techiepress_send_sms_on_new_order_notes', 10, 1 );
 
 
 function techiepress_send_sms_on_new_order_status( $order_id, $old_status, $new_status, $order  ) {
     // Get the order Object
     $my_order = wc_get_order( $order_id );
     
     $firstname = $my_order->get_billing_first_name(); // firstname
     $phone     = $my_order->get_billing_phone(); // Phone
     $shopname  = get_option( 'woocommerce_email_from_name');
     
     $default_sms_message = "Thank you $firstname for shopping with $shopname. Your Order #$orderid is $new_status";
     
     techiepress_send_sms_to_customer( $phone, $default_sms_message, $shopname );
     
 }
 
 function techiepress_send_sms_on_new_order_notes( $email_args ) {
     
     $order = wc_get_order( $email_args['order_id'] );
     $note  = $email_args['customer_note'];
     
     $phone     = $order->get_billing_phone(); // Phone
     $shopname  = get_option( 'woocommerce_email_from_name');
     
     techiepress_send_sms_to_customer( $phone, $note, $shopname );
 }
 
 function techiepress_send_sms_to_customer( $phone="NULL", $default_sms_message, $shopname ) {
    
    if ( 'NULL' === $phone ) {
        return;
    }
    
    $msgdata = array(
        'method' => 'SendSms',
        'userdata' => array(
            'username' => 'Liz',
            'password' => 'Plugin',
        ),
        'msgdata' => array(
            array(
                'number' => $phone,
                'message' => $default_sms_message,
                'senderid' => $shopname,
            )
        )
    );
    
    $url="http://sms.sukumasms.com/api/v1/json/";

    $arguments = array(
        'method' => 'POST',
        'body' => json_encode( $msgdata ),
    );

    $response = wp_remote_post( $url, $arguments );
    
    if ( is_wp_error( $response ) ) {
        $error_message = $response->get_error_message();
        return "Something went wrong: $error_message";
    }
     
 }

This below is an API of a new SMS Provider For Post Request

Method-1: Using POST Request (CODE 2)

Post Request JSON Format 
{ 
"api_id":   yourapiid, 
"api_password": yourapipassword, 
"sms_type": T, 
"encoding": T, 
"sender_id":  ASMSC, 
"phonenumber": 255714900900, 
"templateid": null, 
"textmessage":test message, 
"V1":   null, 
"V2":   null, 
"V3":   null, 
"V4":   null, 
"V5": null, 
"ValidityPeriodInSeconds":  60, 
"uid":"xyz", 
"callback_url":"https://example.com/", 
"pe_id":NULL, 
"template_id":NULL 
}

There Sample GET Format look like this

https://api.sprintsmsservice.com/api/SendSMS?api_id=APIUSERNAME&api_password=APIPASSWORD&sms_type=T&encoding=T&sender_id=ChonryOTP&phonenumber=255714892151&textmessage=test

And i think this is there URL

https://api.sprintsmsservice.com/api/SendSMS

So I’m seeking for a help on how to remove existing API in the Plugin Codes (CODE 1) and intergrate with a new SMS Provider API (CODE 2) as I’m not an expert with PHP and WooCommerce so any help will be appreciated



You need to sign in to view this answers

Leave feedback about this

  • Quality
  • Price
  • Service

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video