<?php namespace App\Notifications; use App\Channels\Messages\SMS; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; use Illuminate\Support\Facades\Log; class OrderPickedShippedNotification extends Notification implements ShouldQueue { use Queueable; public $data; /** * Create a new notification instance. * * @return void */ public function __construct($data) { $this->data = $data; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail', 'sms']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { $mailMessage = (new MailMessage) ->view('admin.mails.order_picked_shipped', ['data' => $this->data]) ->replyTo('orders@jmtrophies.com') ->subject($this->data['subject_title']) ->attach($this->data['invoice_path']); if (!empty($notifiable->secondary_email)) { $mailMessage->cc($notifiable->secondary_email); } return $mailMessage; } public function toSms($notifiable) { if(!empty($notifiable->phone_number) && $notifiable->sms_notification == 1) { if (!empty($this->data["tracking_number"])){ $content = "Hi! It's J&M, Your order {$this->data["order_number"]} has been Picked/Shipped! Please see your tracking number here: {$this->data["tracking_number_digits"]}"; } else { $content = "Hi! It's J&M, Your order {$this->data["order_number"]} has been Picked/Shipped!"; } return (new SMS) ->content($content); } } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } }