diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php index 4b2fc185aded..c12a1dd9dd61 100644 --- a/app/Http/Controllers/ClientPortal/InvitationController.php +++ b/app/Http/Controllers/ClientPortal/InvitationController.php @@ -270,18 +270,20 @@ class InvitationController extends Controller public function unsubscribe(Request $request, string $invitation_key) { - if($invite = InvoiceInvitation::where('key', $invitation_key)->first()){ + if($invite = InvoiceInvitation::withTrashed()->where('key', $invitation_key)->first()){ $invite->contact->send_email = false; $invite->contact->save(); - }elseif($invite = QuoteInvitation::where('key', $invitation_key)->first()){ + }elseif($invite = QuoteInvitation::withTrashed()->where('key', $invitation_key)->first()){ $invite->contact->send_email = false; $invite->contact->save(); - }elseif($invite = CreditInvitation::where('key', $invitation_key)->first()){ + }elseif($invite = CreditInvitation::withTrashed()->where('key', $invitation_key)->first()){ $invite->contact->send_email = false; $invite->contact->save(); } + else + return abort(404); - $data['logo'] = auth()->user()->company()->present()->logo(); + $data['logo'] = $invite->company->present()->logo(); return $this->render('generic.unsubscribe', $data); diff --git a/app/Mail/TemplateEmail.php b/app/Mail/TemplateEmail.php index 20296b2d7393..273d4b19749d 100644 --- a/app/Mail/TemplateEmail.php +++ b/app/Mail/TemplateEmail.php @@ -97,6 +97,7 @@ class TemplateEmail extends Mailable 'footer' => $this->build_email->getFooter(), 'whitelabel' => $this->client->user->account->isPaid() ? true : false, 'settings' => $settings, + 'unsubscribe_link' => $this->invitation->getUnsubscribeLink(), ]) ->view($template_name, [ 'greeting' => ctrans('texts.email_salutation', ['name' => $this->contact->present()->name()]), @@ -110,6 +111,7 @@ class TemplateEmail extends Mailable 'company' => $company, 'whitelabel' => $this->client->user->account->isPaid() ? true : false, 'logo' => $this->company->present()->logo($settings), + 'unsubscribe_link' => $this->invitation->getUnsubscribeLink(), ]) ->withSwiftMessage(function ($message) use($company){ $message->getHeaders()->addTextHeader('Tag', $company->company_key); diff --git a/app/Utils/Traits/Inviteable.php b/app/Utils/Traits/Inviteable.php index 2b85e8a84264..a9fa3346e874 100644 --- a/app/Utils/Traits/Inviteable.php +++ b/app/Utils/Traits/Inviteable.php @@ -54,6 +54,18 @@ trait Inviteable return $domain.'/client/pay/'.$this->key; } + public function getUnsubscribeLink() + { + if(Ninja::isHosted()){ + $domain = $this->company->domain(); + } + else + $domain = config('ninja.app_url'); + + return $domain.'/client/unsubscribe/'.$this->key; + + } + public function getLink() :string { $entity_type = Str::snake(class_basename($this->entityType())); diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 43f1620151d9..ffe0ffd314a2 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -4545,8 +4545,9 @@ $LANG = array( 'activity_124' => ':user restored recurring expense :recurring_expense', 'fpx' => "FPX", 'to_view_entity_set_password' => 'To view the :entity you need to set password.', + 'unsubscribe' => 'Unsubscribe', 'unsubscribed' => 'Unsubscribed', - 'Unsubscribed_text' => 'You have been removed from notifications for this document' + 'unsubscribed_text' => 'You have been removed from notifications for this document' ); return $LANG; diff --git a/resources/views/email/template/client.blade.php b/resources/views/email/template/client.blade.php index a020e48aa7e6..a2a7709ffdf7 100644 --- a/resources/views/email/template/client.blade.php +++ b/resources/views/email/template/client.blade.php @@ -177,6 +177,9 @@

@endif + @if(isset($unsubscribe_link)) +

{{ ctrans('texts.unsubscribe') }}

+ @endif diff --git a/resources/views/email/template/plain.blade.php b/resources/views/email/template/plain.blade.php index c896a646f184..194bb0662036 100644 --- a/resources/views/email/template/plain.blade.php +++ b/resources/views/email/template/plain.blade.php @@ -29,3 +29,6 @@

@endif @endisset +@if(isset($unsubscribe_link)) +

{{ ctrans('texts.unsubscribe') }}

+@endif \ No newline at end of file