. namespace core_sms\task; use core\task\adhoc_task; use core_sms\message; /** * Ad-hoc task to send an SMS. * * Please note: sensitive SMS should not be sent from this task, it's already handled via the SMS api to exclude them. * * @package core_sms * @copyright 2025 Safat Shahin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class send_sms_task extends adhoc_task { #[\Override] public function execute(): void { $smsdata = $this->get_custom_data(); $manager = \core\di::get(\core_sms\manager::class); $message = $manager->get_message( filter: ['id' => $smsdata->messageid], ); $manager->send_message( message: $message, async: false, ); } /** * Queue the SMS. * * @param message $message The message object. */ public static function queue( message $message, ): void { $task = new self(); $task->set_custom_data( [ 'messageid' => $message->id, ] ); \core\task\manager::queue_adhoc_task($task); } }