Documentation

CRM_Event_WorkflowMessage_ParticipantConfirm extends GenericWorkflowMessage
in package
uses CRM_Event_WorkflowMessage_ParticipantTrait

Notification that a registration has been cancelled.

Tags
support

template-only

see
CRM_Event_BAO_Participant::sendTransitionParticipantMail

Table of Contents

Constants

WORKFLOW  = 'participant_confirm'

Properties

$currentParticipant  : array<string|int, mixed>
The current participant (if there are multiple this is the one being emailed).
$eventID  : int
$isPrimary  : bool
Is this the primary participant.
$isShowParticipantCount  : bool
Should a participant count column be shown.
$participant  : array<string|int, mixed>|null
The participant record.
$participantCount  : bool
What is the participant count, if 'specifically configured'.
$participantID  : int
$participants  : array<string|int, mixed>
Line items indexed by the participant.
$_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
$participantContacts  : array<string|int, mixed>
Details of the participant contacts.
$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
getContactID()  : int|null
getCurrentParticipant()  : array<string|int, mixed>
Get the line items and tax information indexed by participant.
getFields()  : array<string|int, mixed>
getFrom()  : array<string|int, mixed>|string
Get the "From:" address.
getGroupName()  : string|null
getIsPrimary()  : bool
Is the participant the primary participant.
getIsShowParticipantCount()  : bool
It is a good idea to show the participant count column.
getLocale()  : string
getParticipant()  : array<string|int, mixed>
Get the participant record.
getParticipantCount()  : mixed
Get the count of participants, where count is used in the line items.
getParticipants()  : array<string|int, mixed>
Get the line items and tax information indexed by participant.
getPrimaryParticipantID()  : int
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
setContactID()  : $this
setEventID()  : CRM_Event_WorkflowMessage_ParticipantTrait
setFrom()  : $this
setLocale()  : $this
setParticipant()  : $this
Set participant object.
setParticipantContacts()  : CRM_Event_WorkflowMessage_ParticipantTrait
setParticipantID()  : mixed
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
Define tokens to be exported as smarty values.
exportExtraTplParams()  : void
Get a list of key-value pairs to include the Smarty template context.
getFieldsByFormat()  : array<string|int, mixed>|null
getFieldsToLoadForParticipant()  : array<string|int, mixed>
Get the participant fields we need to load.
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.
getParticipantContact()  : mixed
isCiviContributeEnabled()  : bool

Constants

Properties

$currentParticipant

The current participant (if there are multiple this is the one being emailed).

public array<string|int, mixed> $currentParticipant

This uses the same format as the participants array.

Tags
scope

tplParams as participant

$eventID

public int $eventID
Tags
scope

tokenContext as eventId, tplParams as eventID

$isPrimary

Is this the primary participant.

public bool $isPrimary
Tags
scope

tplParams as isPrimary

$isShowParticipantCount

Should a participant count column be shown.

public bool $isShowParticipantCount

This would be true if there is a line item on the receipt with more than one participant in it. Otherwise it's confusing to show.

Tags
scope

tplParams as isShowParticipantCount

$participant

The participant record.

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

tokenContext as participant

$participantCount

What is the participant count, if 'specifically configured'.

public bool $participantCount

See getter notes.

Tags
scope

tplParams as participantCount

$participantID

public int $participantID
Tags
scope

tokenContext as participantId, tplParams as participantID

$participants

Line items indexed by the participant.

public array<string|int, mixed> $participants

The format is otherwise the same as lineItems which is also available on the template. The by-participant re-keying permits only including the current participant for non-primary participants and creating a by-participant table for the primary participant.

Tags
scope

tplParams as participants

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

$participantContacts

Details of the participant contacts.

protected array<string|int, mixed> $participantContacts

This would normally be loaded but exists to allow the example to set them.

$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

getCurrentParticipant()

Get the line items and tax information indexed by participant.

public getCurrentParticipant() : array<string|int, mixed>

We will likely add profile data to this too. This is so we can iterate through participants as the primary participant needs to show them all (and the others need to be able to filter).

Tags
throws
CRM_Core_Exception
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

getIsShowParticipantCount()

It is a good idea to show the participant count column.

public getIsShowParticipantCount() : bool

This would be true if there is a line item on the receipt with more than one participant in it. Otherwise it's confusing to show.

Tags
throws
CRM_Core_Exception
Return values
bool

getParticipant()

Get the participant record.

public getParticipant() : array<string|int, mixed>
Tags
throws
CRM_Core_Exception
Return values
array<string|int, mixed>

getParticipantCount()

Get the count of participants, where count is used in the line items.

public getParticipantCount() : mixed

This might be the case where a line item represents a table of 6 people.

Where the price field value does not record the participant count we ignore.

This lack of specifying it is a bit unclear but seems to be 'presumed 1'. From the templates point of view it is not information to present if not configured.

Tags
throws
CRM_Core_Exception

getParticipants()

Get the line items and tax information indexed by participant.

public getParticipants() : array<string|int, mixed>

We will likely add profile data to this too. This is so we can iterate through participants as the primary participant needs to show them all (and the others need to be able to filter).

Tags
throws
CRM_Core_Exception
Return values
array<string|int, mixed>

getPrimaryParticipantID()

public getPrimaryParticipantID() : int
Return values
int

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

setContactID()

public setContactID([int|null $contactID = ]) : $this
Parameters
$contactID : int|null =
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

setParticipant()

Set participant object.

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

Define tokens to be exported as smarty values.

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

exportExtraTplParams()

Get a list of key-value pairs to include the Smarty template context.

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

Values returned here will override any defaults.

Parameters
$export : array<string|int, mixed>

Modifiable list of export-values.

getFieldsByFormat()

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

getFieldsToLoadForParticipant()

Get the participant fields we need to load.

protected getFieldsToLoadForParticipant() : array<string|int, mixed>
Return values
array<string|int, mixed>

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

isCiviContributeEnabled()

private isCiviContributeEnabled() : bool
Return values
bool

        
On this page

Search results