CRM_Contribute_WorkflowMessage_ContributionOnlineReceipt
extends GenericWorkflowMessage
in package
uses
CRM_Contribute_WorkflowMessage_ContributionTrait
Receipt sent when confirming contribution add payment.
Add payment, complete order and the front end contribution form result in an email send using this, unless an event is involved. In addition the api contribution.sendconfirmation and the search task call this.
Tags
Table of Contents
Constants
- WORKFLOW = 'contribution_online_receipt'
Properties
- $contribution : array<string|int, mixed>|null
- The contribution.
- $contributionID : int
- $financialTrxn : array<string|int, mixed>|null
- Optional financial transaction (payment).
- $financialTrxnID : int
- $isShowLineItems : bool
- Should line items be displayed for the contribution.
- $isShowLineSubtotal : bool
- Is it a good idea to show the line item subtotal.
- $isShowTax : bool
- Is the site configured such that tax should be displayed.
- $lineItems : array<string|int, mixed>
- Line items associated with the contribution.
- $taxRateBreakdown : array<string|int, mixed>
- Tax rates paid.
- $_extras : array<string|int, mixed>
- The extras are an open-ended list of fields that will be passed-through to tpl, tokenContext, etc. This is the storage of last-resort for imported values that cannot be stored by other means.
- $bcc : string|null
- Additional recipients (multiple addresses).
- $cc : string|null
- Additional recipients (multiple addresses).
- $contact : array<string|int, mixed>|null
- $contactID : int|null
- The contact receiving this message.
- $from : string|null
- The email sender (single address).
- $isTest : bool
- $locale : string|null
- $replyTo : string|null
- The email sender's Reply-To (single address).
- $requestedLocale : string|null
- The language that was requested to be rendered.
- $template : array<string|int, mixed>|null
- The content of the message-template.
- $templateId : int|null
- $to : string|null
- The primary email recipient (single address).
- $userEnteredHTML : string
- Additional html to include in the receipt.
- $userEnteredText : string
- Additional text to include in the receipt.
- $order : CRM_Financial_BAO_Order
Methods
- __call() : static|mixed
- Magic function to provide getters/setters.
- __construct() : mixed
- WorkflowMessage constructor.
- addBcc() : $this
- Add another "BCC:" address.
- addCc() : $this
- Add another "CC:" address.
- assertValid() : mixed
- export() : array<string|int, mixed>|null
- getBcc() : array<string|int, mixed>|string
- Get the list of "Bcc:" addresses.
- getCc() : array<string|int, mixed>|string
- Get the list of "Cc:" addresses.
- getContact() : array<string|int, mixed>|null
- getContactID() : int|null
- getContribution() : array<string|int, mixed>|null
- getFields() : array<string|int, mixed>
- getFrom() : array<string|int, mixed>|string
- Get the "From:" address.
- getGroupName() : string|null
- getIsShowLineItems() : bool
- Get bool for whether a line item breakdown be displayed.
- getIsShowLineSubtotal() : bool
- Is it a good idea to show the line item subtotal.
- getLineItems() : array<string|int, mixed>
- Get the line items.
- getLocale() : string
- getReplyTo() : array<string|int, mixed>|string
- Get the "Reply-To:" address.
- getRequestedLocale() : string
- Get the requested locale.
- getTaxRateBreakdown() : array<string|int, mixed>
- Get the line items.
- getTo() : array<string|int, mixed>|string
- Get the list of "To:" addresses.
- getUserEnteredHTML() : string|null
- getUserEnteredText() : string|null
- getWorkflowName() : string|null
- import() : mixed
- renderTemplate() : array<string|int, mixed>
- resolveContent() : array<string|int, mixed>
- sendTemplate() : array<string|int, mixed>
- setBcc() : $this
- Set the "BCC:" list.
- setCc() : $this
- Set the "CC:" list.
- setContact() : $this
- setContactID() : $this
- setContribution() : $this
- Set contribution object.
- setFinancialTrxn() : $this
- Set contribution object.
- setFrom() : $this
- setLocale() : $this
- setOrder() : $this
- Set order object.
- setReplyTo() : $this
- setRequestedLocale() : $this
- Set the requested locale.
- setTo() : $this
- setUserEnteredHTML() : $this
- setUserEnteredText() : $this
- validate() : array<string|int, mixed>
- Determine if the data for this workflow message is complete/well-formed.
- exportExtraEnvelope() : void
- Get a list of key-value pairs to include the Smarty template context.
- exportExtraEnvelope_toAddress() : void
- Plugin to `WorkflowMessageInterface::export()` and handle toEmail/toName.
- exportExtraModelProps() : void
- Get a list of key-value pairs to include the array-coded version of the class.
- exportExtraTokenContext() : void
- Specify any tokens that should be exported as smarty variables.
- exportExtraTplParams() : void
- Extra variables to be exported to smarty based on being calculated.
- getFieldsByFormat() : array<string|int, mixed>|null
- getMagicProperties() : array<string|int, mixed>
- Get a list of class properties for which magic methods are supported.
- importExtraEnvelope() : void
- Given an import-array (in the envelope-format), pull out any interesting values.
- importExtraEnvelope_toAddress() : void
- Plugin to `WorkflowMessageInterface::import()` and handle toEmail/toName.
- importExtraModelProps() : void
- Given an import-array (in the class-format), pull out any interesting values.
- importExtraTokenContext() : void
- Given an import-array (in the token-context-format), pull out any interesting values.
- importExtraTplParams() : void
- Given an import-array (in the tpl-format), pull out any interesting values.
- validateExtra_contact() : mixed
- Must provide either 'int $contactId' or 'array $contact'
- validateExtra_localization() : mixed
- formatAddress() : array<string|int, mixed>|string|null
- Convert an address to the desired format.
- getOrder() : CRM_Financial_BAO_Order|null
- Get order, if available.
Constants
WORKFLOW
public
mixed
WORKFLOW
= 'contribution_online_receipt'
Properties
$contribution
The contribution.
public
array<string|int, mixed>|null
$contribution
Tags
$contributionID
public
int
$contributionID
Tags
$financialTrxn
Optional financial transaction (payment).
public
array<string|int, mixed>|null
$financialTrxn
Tags
$financialTrxnID
public
int
$financialTrxnID
Tags
$isShowLineItems
Should line items be displayed for the contribution.
public
bool
$isShowLineItems
This determination is based on whether the price set is quick config.
Tags
$isShowLineSubtotal
Is it a good idea to show the line item subtotal.
public
bool
$isShowLineSubtotal
This would be true if at least one line has a quantity > 1. Otherwise it is very repetitive.
Tags
$isShowTax
Is the site configured such that tax should be displayed.
public
bool
$isShowTax
$lineItems
Line items associated with the contribution.
public
array<string|int, mixed>
$lineItems
Tags
$taxRateBreakdown
Tax rates paid.
public
array<string|int, mixed>
$taxRateBreakdown
Generally this would look like
['10.00%' => 100]
To indicate that $100 was changed for 10% tax.
Tags
$_extras
The extras are an open-ended list of fields that will be passed-through to tpl, tokenContext, etc. This is the storage of last-resort for imported values that cannot be stored by other means.
protected
array<string|int, mixed>
$_extras
= []
Ex: ['tplParams' => ['assigned_value' => 'A', 'other_value' => 'B']]
$bcc
Additional recipients (multiple addresses).
protected
string|null
$bcc
Ex: '"Foo Bar" foo.bar@example.com, "Whiz Bang" whiz.bang@example.com' Ex: [['name' => 'Foo Bar', 'email' => 'foo.bar@example.com'], ['name' => 'Whiz Bang', 'email' => 'whiz.bang@example.com']]
Tags
$cc
Additional recipients (multiple addresses).
protected
string|null
$cc
Ex: '"Foo Bar" foo.bar@example.com, "Whiz Bang" whiz.bang@example.com' Ex: [['name' => 'Foo Bar', 'email' => 'foo.bar@example.com'], ['name' => 'Whiz Bang', 'email' => 'whiz.bang@example.com']]
Tags
$contact
protected
array<string|int, mixed>|null
$contact
Tags
$contactID
The contact receiving this message.
protected
int|null
$contactID
Tags
$from
The email sender (single address).
protected
string|null
$from
Ex: '"Foo Bar" foo.bar@example.com'
Tags
$isTest
protected
bool
$isTest
Tags
$locale
protected
string|null
$locale
Tags
$replyTo
The email sender's Reply-To (single address).
protected
string|null
$replyTo
Ex: '"Foo Bar" foo.bar@example.com'
Tags
$requestedLocale
The language that was requested to be rendered.
protected
string|null
$requestedLocale
This may not be the rendered locale - as the requested language might be available. This is primarily for extensions to use in custom workflow messages.
The use-case is a bit like this:
- Your organization serves many similar locales (eg es_MX+es_CR+es_HN or en_GB+en_US+en_NZ).
- You want to write one message (es_MX) for several locales (es_MX+es_CR+es_HN)
- You want to include some conditional content that adapts the recipient's requested locale (es_CR) -- even though the template was stored as es_MX. For example your front end website has more nuanced translations than your workflow messages and you wish to redirect the user to a page on your website.
Tags
$template
The content of the message-template.
protected
array<string|int, mixed>|null
$template
Ex: [ 'msg_subject' => 'Hello {contact.first_name}', 'msg_html' => '
Greetings and salutations, {contact.display_name}!
' ]Tags
$templateId
protected
int|null
$templateId
Tags
$to
The primary email recipient (single address).
protected
string|null
$to
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
The "To:" address is mapped to the "envelope" scope. The existing envelope format treats this as a pair of fields [toName,toEmail]. Consequently, we only support one "To:" address, and it uses a special import/export method.
$userEnteredHTML
Additional html to include in the receipt.
protected
string
$userEnteredHTML
Tags
$userEnteredText
Additional text to include in the receipt.
protected
string
$userEnteredText
Tags
$order
private
CRM_Financial_BAO_Order
$order
Methods
__call()
Magic function to provide getters/setters.
public
__call(string $method, array<string|int, mixed> $arguments) : static|mixed
Parameters
- $method : string
- $arguments : array<string|int, mixed>
Tags
Return values
static|mixed__construct()
WorkflowMessage constructor.
public
__construct([array<string|int, mixed> $imports = [] ]) : mixed
Parameters
- $imports : array<string|int, mixed> = []
-
List of values to import. Ex: ['tplParams' => [...tplValues...], 'tokenContext' => [...tokenData...]] Ex: ['modelProps' => [...classProperties...]]
addBcc()
Add another "BCC:" address.
public
addBcc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thisaddCc()
Add another "CC:" address.
public
addCc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thisassertValid()
public
final assertValid([mixed $strict = FALSE ]) : mixed
Parameters
- $strict : mixed = FALSE
Tags
export()
public
export([string|null $format = NULL ]) : array<string|int, mixed>|null
Parameters
- $format : string|null = NULL
Tags
Return values
array<string|int, mixed>|nullgetBcc()
Get the list of "Bcc:" addresses.
public
getBcc([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —List of addresses. Ex: 'First first@example.com, second@example.com' Ex: [['name' => 'First', 'email' => 'first@example.com'], ['email' => 'second@example.com']]
getCc()
Get the list of "Cc:" addresses.
public
getCc([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —List of addresses. Ex: 'First first@example.com, second@example.com' Ex: [['name' => 'First', 'email' => 'first@example.com'], ['email' => 'second@example.com']]
getContact()
public
getContact() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetContactID()
public
getContactID() : int|null
Return values
int|nullgetContribution()
public
getContribution() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetFields()
public
getFields() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getFrom()
Get the "From:" address.
public
getFrom([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —The "From" address. If none set, this will be empty ([]). Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getGroupName()
public
getGroupName() : string|null
It is not recommended that new things depend on the group-name. However, the plumbing still passes-through the group-name.
Return values
string|nullgetIsShowLineItems()
Get bool for whether a line item breakdown be displayed.
public
getIsShowLineItems() : bool
Tags
Return values
boolgetIsShowLineSubtotal()
Is it a good idea to show the line item subtotal.
public
getIsShowLineSubtotal() : bool
This would be true if at least one line has a quantity > 1. Otherwise it is very repetitive.
Tags
Return values
boolgetLineItems()
Get the line items.
public
getLineItems() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getLocale()
public
getLocale() : string
Return values
stringgetReplyTo()
Get the "Reply-To:" address.
public
getReplyTo([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —The "From" address. If none set, this will be empty ([]). Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getRequestedLocale()
Get the requested locale.
public
getRequestedLocale() : string
This may differ from the rendered locale (e.g. if a translation is not available). It is not used in core but extensions may leverage this information.
Return values
stringgetTaxRateBreakdown()
Get the line items.
public
getTaxRateBreakdown() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getTo()
Get the list of "To:" addresses.
public
getTo([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Note: This returns only
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getUserEnteredHTML()
public
getUserEnteredHTML() : string|null
Return values
string|nullgetUserEnteredText()
public
getUserEnteredText() : string|null
Return values
string|nullgetWorkflowName()
public
getWorkflowName() : string|null
Return values
string|nullimport()
public
import(string $format, array<string|int, mixed> $values) : mixed
Parameters
- $format : string
- $values : array<string|int, mixed>
Tags
renderTemplate()
public
final renderTemplate([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>resolveContent()
public
resolveContent() : array<string|int, mixed>
Return values
array<string|int, mixed>sendTemplate()
public
final sendTemplate([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>setBcc()
Set the "BCC:" list.
public
setBcc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thissetCc()
Set the "CC:" list.
public
setCc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thissetContact()
public
setContact([array<string|int, mixed>|null $contact = ]) : $this
Parameters
- $contact : array<string|int, mixed>|null =
Return values
$thissetContactID()
public
setContactID([int|null $contactID = ]) : $this
Parameters
- $contactID : int|null =
Return values
$thissetContribution()
Set contribution object.
public
setContribution(array<string|int, mixed> $contribution) : $this
Parameters
- $contribution : array<string|int, mixed>
Return values
$thissetFinancialTrxn()
Set contribution object.
public
setFinancialTrxn(array<string|int, mixed> $financialTrxn) : $this
Parameters
- $financialTrxn : array<string|int, mixed>
Return values
$thissetFrom()
public
setFrom(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetLocale()
public
setLocale(string|null $locale) : $this
Parameters
- $locale : string|null
Return values
$thissetOrder()
Set order object.
public
setOrder(CRM_Financial_BAO_Order $order) : $this
Note this is only supported for core use (specifically in example work flow) as the contract might change.
Parameters
- $order : CRM_Financial_BAO_Order
Return values
$thissetReplyTo()
public
setReplyTo(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetRequestedLocale()
Set the requested locale.
public
setRequestedLocale(string|null $requestedLocale) : $this
Parameters
- $requestedLocale : string|null
Return values
$thissetTo()
public
setTo(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetUserEnteredHTML()
public
setUserEnteredHTML([string $html = ]) : $this
Parameters
- $html : string =
Return values
$thissetUserEnteredText()
public
setUserEnteredText([string $text = ]) : $this
Parameters
- $text : string =
Return values
$thisvalidate()
Determine if the data for this workflow message is complete/well-formed.
public
validate() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —A list of errors and warnings. Each record defines
- severity: string, 'error' or 'warning'
- fields: string[], list of fields implicated in the error
- name: string, symbolic name of the error/warning
- message: string, printable message describing the problem
exportExtraEnvelope()
Get a list of key-value pairs to include the Smarty template context.
protected
exportExtraEnvelope(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
-
Modifiable list of export-values.
exportExtraEnvelope_toAddress()
Plugin to `WorkflowMessageInterface::export()` and handle toEmail/toName.
protected
exportExtraEnvelope_toAddress(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
Tags
exportExtraModelProps()
Get a list of key-value pairs to include the array-coded version of the class.
protected
exportExtraModelProps(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
-
Modifiable list of export-values.
exportExtraTokenContext()
Specify any tokens that should be exported as smarty variables.
protected
exportExtraTokenContext(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
exportExtraTplParams()
Extra variables to be exported to smarty based on being calculated.
protected
exportExtraTplParams(array<string|int, mixed> &$export) : void
We export isShowTax to denote whether invoicing is enabled but hopefully at some point we will separate the assumption that invoicing and tax are a package.
Parameters
- $export : array<string|int, mixed>
Tags
getFieldsByFormat()
protected
getFieldsByFormat(mixed $format) : array<string|int, mixed>|null
Parameters
- $format : mixed
Return values
array<string|int, mixed>|nullgetMagicProperties()
Get a list of class properties for which magic methods are supported.
protected
static getMagicProperties() : array<string|int, mixed>
Return values
array<string|int, mixed> —List of supported properties, keyed by property name. Array(string $propertyName => bool $true).
importExtraEnvelope()
Given an import-array (in the envelope-format), pull out any interesting values.
protected
importExtraEnvelope(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraEnvelope_toAddress()
Plugin to `WorkflowMessageInterface::import()` and handle toEmail/toName.
protected
importExtraEnvelope_toAddress(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
Tags
importExtraModelProps()
Given an import-array (in the class-format), pull out any interesting values.
protected
importExtraModelProps(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraTokenContext()
Given an import-array (in the token-context-format), pull out any interesting values.
protected
importExtraTokenContext(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraTplParams()
Given an import-array (in the tpl-format), pull out any interesting values.
protected
importExtraTplParams(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
validateExtra_contact()
Must provide either 'int $contactId' or 'array $contact'
protected
validateExtra_contact(array<string|int, mixed> &$errors) : mixed
Parameters
- $errors : array<string|int, mixed>
Tags
validateExtra_localization()
protected
validateExtra_localization(mixed &$errors) : mixed
Parameters
- $errors : mixed
formatAddress()
Convert an address to the desired format.
private
formatAddress(string $newFormat, array<string|int, mixed>|string $mixed) : array<string|int, mixed>|string|null
Parameters
- $newFormat : string
-
Ex: 'rfc822', 'records', 'record'
- $mixed : array<string|int, mixed>|string
Return values
array<string|int, mixed>|string|nullgetOrder()
Get order, if available.
private
getOrder() : CRM_Financial_BAO_Order|null
The order is used within the class to calculate line items etc.