Documentation

CRM_Contribute_WorkflowMessage_RecurringEdit extends GenericWorkflowMessage
in package
uses CRM_Contribute_WorkflowMessage_RecurringTrait

Generic base-class for describing the inputs for a workflow email template.

Tags
support

template-only

Table of Contents

Constants

WORKFLOW  = 'contribution_recurring_edit'

Properties

$contact  : array<string|int, mixed>|null
The recurring contribution contact.
$contributionRecur  : array<string|int, mixed>|null
The recurring contribution.
$contributionRecurId  : int
$receiptFromEmail  : string|null
Smarty template historically defined a property 'receipt_from_email'.
$_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).
$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.

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
getContact()  : array<string|int, mixed>
getContactID()  : int|null
getContributionRecur()  : array<string|int, mixed>
getFields()  : array<string|int, mixed>
getFrom()  : array<string|int, mixed>|string
Get the "From:" address.
getGroupName()  : string|null
getLocale()  : string
getReplyTo()  : array<string|int, mixed>|string
Get the "Reply-To:" address.
getRequestedLocale()  : string
Get the requested locale.
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
setContact()  : $this
setContactID()  : $this
setContributionRecur()  : $this
Set recurring contribution object.
setFrom()  : $this
setLocale()  : $this
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
Export tokens to smarty as 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.

Constants

WORKFLOW

public mixed WORKFLOW = 'contribution_recurring_edit'

Properties

$contact

The recurring contribution contact.

public array<string|int, mixed>|null $contact
Tags
scope

tokenContext

required

$contributionRecur

The recurring contribution.

public array<string|int, mixed>|null $contributionRecur
Tags
scope

tokenContext as contribution_recur

required

$contributionRecurId

public int $contributionRecurId
Tags
scope

tokenContext as contribution_recurId

$receiptFromEmail

Smarty template historically defined a property 'receipt_from_email'.

public string|null $receiptFromEmail

(Note the asymmetric lack of 'receipt_from_name'.)

TODO: This should probably be deprecated/converted/reconciled with $this->from in the basic AddressingTrait.

Tags
scope

tplParams as receipt_from_email

$_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
scope

envelope

$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
scope

envelope

$contactID

The contact receiving this message.

protected int|null $contactID
Tags
scope

tokenContext as contactId, tplParams as contactID

fkEntity

Contact

$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:

  1. Your organization serves many similar locales (eg es_MX+es_CR+es_HN or en_GB+en_US+en_NZ).
  2. You want to write one message (es_MX) for several locales (es_MX+es_CR+es_HN)
  3. 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
scope

tokenContext

$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
scope

envelope as messageTemplate

$templateId

protected int|null $templateId
Tags
scope

envelope as messageTemplateID

$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
scope

tplParams as userText

$userEnteredText

Additional text to include in the receipt.

protected string $userEnteredText
Tags
scope

tplParams as userTextPlain

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
throws
CRM_Core_Exception
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
$this

addCc()

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
$this

getBcc()

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>|null

getContact()

public getContact() : array<string|int, mixed>
Return values
array<string|int, mixed>

getContributionRecur()

public getContributionRecur() : array<string|int, mixed>
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|null

getReplyTo()

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
string

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']

resolveContent()

public resolveContent() : array<string|int, mixed>
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
$this

setCc()

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
$this

setContact()

public setContact([array<string|int, mixed>|null $contact = ]) : $this
Parameters
$contact : array<string|int, mixed>|null =
Return values
$this

setContact()

public setContact([array<string|int, mixed> $contact = ]) : $this
Parameters
$contact : array<string|int, mixed> =
Return values
$this

setContactID()

public setContactID([int|null $contactID = ]) : $this
Parameters
$contactID : int|null =
Return values
$this

setContributionRecur()

Set recurring contribution object.

public setContributionRecur(array<string|int, mixed> $contributionRecur) : $this
Parameters
$contributionRecur : array<string|int, mixed>
Return values
$this

setFrom()

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
$this

setLocale()

public setLocale(string|null $locale) : $this
Parameters
$locale : string|null
Return values
$this

setReplyTo()

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
$this

setRequestedLocale()

Set the requested locale.

public setRequestedLocale(string|null $requestedLocale) : $this
Parameters
$requestedLocale : string|null
Return values
$this

setTo()

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
$this

setUserEnteredHTML()

public setUserEnteredHTML([string $html = ]) : $this
Parameters
$html : string =
Return values
$this

setUserEnteredText()

public setUserEnteredText([string $text = ]) : $this
Parameters
$text : string =
Return values
$this

validate()

Determine if the data for this workflow message is complete/well-formed.

public validate() : array<string|int, mixed>
Tags
see
WorkflowMessageInterface::validate()
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
see
ReflectiveWorkflowTrait::export

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()

Export tokens to smarty as variables.

protected exportExtraTokenContext(array<string|int, mixed> &$export) : void

The key represents the smarty token and the value is the token as requested from the token processor.

The token is 'the entire part between the curly quotes' eg.

'{contribution_recur.amount|crmMoney}.

Unlike using the contribution directly it will default to 'raw' formatting.

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
Parameters
$export : array<string|int, mixed>

getFieldsByFormat()

protected getFieldsByFormat(mixed $format) : array<string|int, mixed>|null
Parameters
$format : mixed
Return values
array<string|int, mixed>|null

getMagicProperties()

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
see
ReflectiveWorkflowTrait::import

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_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|null

        
On this page

Search results