supporters: Add sustainer confirmation email
This commit is contained in:
parent
48048f349a
commit
a51a7e2099
3 changed files with 38 additions and 1 deletions
17
conservancy/supporters/mail.py
Normal file
17
conservancy/supporters/mail.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from django.core.mail import EmailMessage
|
||||||
|
from django.template.loader import render_to_string
|
||||||
|
|
||||||
|
|
||||||
|
def make_stripe_email(order) -> EmailMessage:
|
||||||
|
subject = 'Thanks for your sustainer payment!'
|
||||||
|
email_body = render_to_string(
|
||||||
|
'supporters/mail/sustainer_thanks.txt',
|
||||||
|
{'order': order},
|
||||||
|
).strip()
|
||||||
|
message = EmailMessage(
|
||||||
|
subject,
|
||||||
|
email_body,
|
||||||
|
'Software Freedom Conservancy <sustainers@sfconservancy.org>',
|
||||||
|
[order.email],
|
||||||
|
)
|
||||||
|
return message
|
|
@ -0,0 +1,18 @@
|
||||||
|
Hi {{ order.name }},
|
||||||
|
|
||||||
|
Thanks so much for being a sustainer! Your support is what makes our work possible.
|
||||||
|
|
||||||
|
Order: #{{ order.id }}
|
||||||
|
Payment: ${{ order.amount }}{% if order.recurring %} {{ order.get_recurring_display }}{% endif %}
|
||||||
|
Acknowledge me on the list of sustainers: {{ order.acknowledge_publicly|yesno }}
|
||||||
|
Add me to the announcements email list: {{ order.add_to_mailing_list|yesno }}
|
||||||
|
T-shirt: {{ order.get_tshirt_size_display }}{% if order.tshirt_size %}
|
||||||
|
Postal address:
|
||||||
|
{{ order.street }}
|
||||||
|
{{ order.city }} {{ order.state }} {{ order.zip_code }}
|
||||||
|
{{ order.country }}{% endif %}
|
||||||
|
{% if order.recurring == 'month' and order.tshirt_size %}
|
||||||
|
Please note that you may not receive the T-shirt until you've paid at least $60.{% endif %}
|
||||||
|
|
||||||
|
Kind regards,
|
||||||
|
Software Freedom Conservancy
|
|
@ -8,7 +8,7 @@ from django.utils import timezone
|
||||||
import stripe
|
import stripe
|
||||||
|
|
||||||
from .. import ParameterValidator
|
from .. import ParameterValidator
|
||||||
from . import forms
|
from . import forms, mail
|
||||||
from .models import Supporter, SustainerOrder
|
from .models import Supporter, SustainerOrder
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -138,6 +138,8 @@ def fulfill_checkout(session_id):
|
||||||
order.payment_id = checkout_session['invoice']['payment_intent']
|
order.payment_id = checkout_session['invoice']['payment_intent']
|
||||||
order.save()
|
order.save()
|
||||||
logger.info(f'Marked sustainer order {order.id} (order.email) as paid')
|
logger.info(f'Marked sustainer order {order.id} (order.email) as paid')
|
||||||
|
email = mail.make_stripe_email(order)
|
||||||
|
email.send()
|
||||||
except SustainerOrder.DoesNotExist:
|
except SustainerOrder.DoesNotExist:
|
||||||
logger.info('No action')
|
logger.info('No action')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue