def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: products = order.lines.all() product_titles = "" for product in products: product_titles = product_titles + " " + product.product.title #product = order.lines.first().product receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration ) send_notification( order.user, 'COURSE_PURCHASED', { 'course_title': product_titles, 'order_number': order.number, 'receipt_page_url': receipt_page_url, }, order.site ) else: logger.info('Currently support receipt emails for order with one item.')
def send_email(self, order): """ Sends an email with enrollment code order information. """ # Note (multi-courses): Change from a course_name to a list of course names. product = order.lines.first().product course = Course.objects.get(id=product.attr.course_key) receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration ) send_notification( order.user, 'ORDER_WITH_CSV', context={ 'contact_url': order.site.siteconfiguration.build_lms_url('/contact'), 'course_name': course.name, 'download_csv_link': order.site.siteconfiguration.build_ecommerce_url( reverse('coupons:enrollment_code_csv', args=[order.number]) ), 'enrollment_code_title': product.title, 'lms_url': order.site.siteconfiguration.build_lms_url(), 'order_number': order.number, 'partner_name': order.site.siteconfiguration.partner.name, 'receipt_page_url': receipt_page_url, }, site=order.site )
def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product provider_id = getattr(product.attr, 'credit_provider', None) if not provider_id: logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has not provider.', product.id) return elif product.get_product_class().name == 'Seat': provider_data = get_provider_data(provider_id) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': get_lms_url( '/commerce/checkout/receipt/?orderNum={}'. format(order.number)), 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], }) else: logger.info( 'Currently support receipt emails for order with one item.')
def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product provider_id = getattr(product.attr, 'credit_provider', None) if not provider_id: logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has not provider.', product.id ) return elif product.get_product_class().name == 'Seat': provider_data = get_provider_data(provider_id) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': get_lms_url( '/commerce/checkout/receipt/?basket_id={}'.format(order.basket.id) ), 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], } ) else: logger.info('Currently support receipt emails for order with one item.')
def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product credit_provider_id = getattr(product.attr, 'credit_provider', None) if not credit_provider_id: logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has no provider.', product.id) return elif product.is_seat_product: provider_data = get_credit_provider_details( access_token=order.site.siteconfiguration.access_token, credit_provider_id=credit_provider_id, site_configuration=order.site.siteconfiguration) receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': receipt_page_url, 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], }, order.site) else: logger.info( 'Currently support receipt emails for order with one item.')
def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product provider_id = getattr(product.attr, 'credit_provider', None) if not provider_id: stripped_title = product.title.replace("Seat in ", "", 1) stripped_title = stripped_title.replace( "with professional certificate", "") stripped_title = stripped_title.replace( "with verified certificate", "") send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': stripped_title, 'receipt_page_url': get_lms_url('{}?orderNum={}'.format( settings.RECEIPT_PAGE_PATH, order.number)), 'credit_hours': str(order.total_excl_tax), 'credit_provider': 'Credit provider', }, threadlocals.get_current_request().site) logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has no provider.', product.id) return elif product.get_product_class().name == 'Seat': provider_data = get_provider_data(provider_id) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': get_lms_url('{}?orderNum={}'.format( settings.RECEIPT_PAGE_PATH, order.number)), 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], }, threadlocals.get_current_request().site) else: logger.info( 'Currently support receipt emails for order with one item.')
def send_transaction_declined_email(self, basket, transaction_status, course_title): """ send email to the user after receiving a transcation notification with decilened/error status. Arguments: basket: transaction relevant basket. transaction_status: Error or Declined. course_title: course for which transaction was performed. """ send_notification( basket.owner, 'TRANSACTION_REJECTED', { 'course_title': course_title, 'transaction_status': transaction_status, }, basket.site)
def send_order_completion_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product if product.get_product_class().name == 'Seat': send_notification( order.user, 'COURSE_PURCHASED', { 'course_title': product.title, 'full_name': order.user.get_full_name(), 'lms_dashboard': get_lms_url('dashboard'), 'lms_courses': get_lms_url('courses') }, order.site) else: logger.info( 'Currently support receipt emails for order with one item.')
def send_confirm_purchase_email(sender, order=None, request=None, **kwargs): product = order.lines.first().product recipient = request.POST.get('req_bill_to_email', order.user.email) if request else order.user.email receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration ) send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': "Test", 'receipt_page_url': receipt_page_url, 'credit_hours': 20, 'credit_provider': "test", }, order.site, recipient )
def send_course_purchase_email(sender, order=None, request=None, **kwargs): # pylint: disable=unused-argument """ Send seat purchase notification email """ if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): if len(order.lines.all()) != ORDER_LINE_COUNT: logger.info( 'Currently support receipt emails for order with one item.') return product = order.lines.first().product if product.is_seat_product or product.is_course_entitlement_product: recipient = request.POST.get( 'req_bill_to_email', order.user.email) if request else order.user.email receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration) credit_provider_id = getattr(product.attr, 'credit_provider', None) if credit_provider_id: provider_data = get_credit_provider_details( credit_provider_id=credit_provider_id, site_configuration=order.site.siteconfiguration) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': receipt_page_url, 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], }, order.site, recipient) elif getattr(product.attr, 'certificate_type', None) == 'credit': logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has no provider.', product.id) elif order.basket.total_incl_tax != 0: send_notification( order.user, 'COURSE_PURCHASED', { 'course_title': product.title, 'receipt_page_url': receipt_page_url, }, order.site, recipient)
def send_course_purchase_email(sender, order=None, **kwargs): # pylint: disable=unused-argument """Send course purchase notification email when a course is purchased.""" if waffle.switch_is_active('ENABLE_NOTIFICATIONS'): # We do not currently support email sending for orders with more than one item. if len(order.lines.all()) == ORDER_LINE_COUNT: product = order.lines.first().product credit_provider_id = getattr(product.attr, 'credit_provider', None) if not credit_provider_id: logger.error( 'Failed to send credit receipt notification. Credit seat product [%s] has no provider.', product.id ) return elif product.get_product_class().name == 'Seat': provider_data = get_credit_provider_details( access_token=order.site.siteconfiguration.access_token, credit_provider_id=credit_provider_id, site_configuration=order.site.siteconfiguration ) receipt_page_url = get_receipt_page_url( order_number=order.number, site_configuration=order.site.siteconfiguration ) if provider_data: send_notification( order.user, 'CREDIT_RECEIPT', { 'course_title': product.title, 'receipt_page_url': receipt_page_url, 'credit_hours': product.attr.credit_hours, 'credit_provider': provider_data['display_name'], }, order.site ) else: logger.info('Currently support receipt emails for order with one item.')