File: /home/pelakir/public_html/wp-content/plugins/digits/gateways/unisender.php
<?php
namespace SMSGateway;
require_once 'utils.php';
class Unisender {
public static $chunks = 50;
public static $supports_bulk = true;
public static $bulk_type = 'FIXED_MESSAGE';
// docs at: https://www.translatetheweb.com/?from=&to=en&dl=en&rr=HE&a=https%3a%2f%2fwww.unisender.com%2fru%2fsupport%2fapi%2fmessages%2fsendsms%2f
public static function sendSMS($gateway_fields, $mobile, $message, $test_call) {
$api_key = $gateway_fields['api_key'];
$sender = $gateway_fields['sender'];
$last_sent_or_results = self::process_sms($api_key, $sender, [0 => [$mobile => $message]], $test_call);
if ($test_call) return $last_sent_or_results[0];
if ($last_sent_or_results === -1) {
return false;
}
return true;
}
public static function process_sms($api_key, $sender, $messages, $test_call) {
$curl = curl_init();
$chunked_messages = array_chunk($messages, self::$chunks);
$results = [];
$failed_sent = [];
$fixed_message = '';
foreach($chunked_messages as $message_batch) {
$mobiles = [];
foreach($message_batch as $id => $message_descriptor) {
foreach($message_descriptor as $mobile => $message) {
$fixed_message = $message;
$mobiles[] = $mobile;
}
}
$post_params = array(
'api_key' => $api_key,
'format' => 'json',
'sender' => $sender,
'phone' => join(',', $mobiles),
'text' => $fixed_message,
);
curl_setopt($curl, CURLOPT_URL, 'https::/api.unisender.com/LANG/api/sendSms');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_params);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$curl_error = curl_errno($curl);
curl_close($curl);
if($test_call) {
$results[] = $result;
}
$is_success = 200 <= $code && $code < 300;
if ($is_success && $curl_error !== 0) {
} else {
$failed_sent += $mobiles;
}
}
if($test_call) return $results;
return \last_sent_from_failed($messages, $failed_sent);
}
public static function sendBulkSMS($gateway_fields, $messages, $test_call) {
$api_key = $gateway_fields['api_key'];
$sender = $gateway_fields['sender'];
return self::process_sms($api_key, $sender, $messages, $test_call);
}
}