App\Ninja\Mailers\ContactMailer::sendPaymentConfirmation PHP Méthode

sendPaymentConfirmation() public méthode

public sendPaymentConfirmation ( Payment $payment )
$payment app\models\Payment
    public function sendPaymentConfirmation(Payment $payment)
    {
        $account = $payment->account;
        $client = $payment->client;
        $account->loadLocalizationSettings($client);
        $invoice = $payment->invoice;
        $accountName = $account->getDisplayName();
        $emailTemplate = $account->getEmailTemplate(ENTITY_PAYMENT);
        $emailSubject = $invoice->account->getEmailSubject(ENTITY_PAYMENT);
        if ($payment->invitation) {
            $user = $payment->invitation->user;
            $contact = $payment->contact;
            $invitation = $payment->invitation;
        } else {
            $user = $payment->user;
            $contact = $client->contacts[0];
            $invitation = $payment->invoice->invitations[0];
        }
        $variables = ['account' => $account, 'client' => $client, 'invitation' => $invitation, 'amount' => $payment->amount];
        $data = ['body' => $this->templateService->processVariables($emailTemplate, $variables), 'link' => $invitation->getLink(), 'invoice' => $invoice, 'client' => $client, 'account' => $account, 'payment' => $payment, 'entityType' => ENTITY_INVOICE];
        if ($account->attachPDF()) {
            $data['pdfString'] = $invoice->getPDFString();
            $data['pdfFileName'] = $invoice->getFileName();
        }
        $subject = $this->templateService->processVariables($emailSubject, $variables);
        $data['invoice_id'] = $payment->invoice->id;
        $view = $account->getTemplateView('payment_confirmation');
        if ($user->email && $contact->email) {
            $this->sendTo($contact->email, $user->email, $accountName, $subject, $view, $data);
        }
        $account->loadLocalizationSettings();
    }

Usage Example

 /**
  * @param PaymentWasCreated $event
  */
 public function createdPayment(PaymentWasCreated $event)
 {
     // only send emails for online payments
     if (!$event->payment->account_gateway_id) {
         return;
     }
     $this->contactMailer->sendPaymentConfirmation($event->payment);
     $this->sendEmails($event->payment->invoice, 'paid', $event->payment);
     $this->pushService->sendNotification($event->payment->invoice, 'paid');
 }
All Usage Examples Of App\Ninja\Mailers\ContactMailer::sendPaymentConfirmation