Last active
February 4, 2019 06:18
-
-
Save ericnicolaas/7cc99114413aee1d0ac8d7ec05e4a1ad to your computer and use it in GitHub Desktop.
Add an email tag for a custom Charitable campaign field
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* In Easy Digital Downloads, you can add your own email tags to include | |
* in purchase receipts & notifications. | |
* | |
* In this example, we add a tag that allows you to display the value of | |
* a custom 'campaign_email_content' field in Charitable. This is an optional | |
* follow-up to a tutorial published on our blog. | |
* | |
* @see https://www.wpcharitable.com/tutorial-how-to-add-campaign-specific-content-to-the-donation-receipt-email/ | |
*/ | |
/** | |
* Register the tag. | |
* | |
* Note that the first parameter passed to the edd_add_email_tag() function | |
* will be the name of the tag. | |
* | |
* @see http://docs.easydigitaldownloads.com/article/497-edd-add-email-tag | |
* | |
* @param int $payment_id | |
*/ | |
add_action( 'edd_add_email_tags', function( $payment_id ) { | |
/** | |
* Add the tag. | |
* | |
* This function receives three parameters: | |
* | |
* $tag_name The name of the tag that you will use to display it in your email. So in this case, you | |
* would use this tag in your email like this: {campaign_email_content} | |
* $tag_description A description of what the tag shows. | |
* $callback A callback function that is responsible for getting the value of the tag. This receives a | |
* $payment_id variable as a parameter. | |
*/ | |
edd_add_email_tag( 'campaign_email_content', 'Display campaign-specific text', function( $payment_id ) { | |
$output = ''; | |
/** | |
* Get all campaign donations linked to a particular payment. | |
*/ | |
$campaign_donations = Charitable_EDD_Payment::get_instance()->get_campaign_donations_through_payment( $payment_id ); | |
if ( ! $campaign_donations ) { | |
return $output; | |
} | |
/** | |
* Get the campaign that received the donation. | |
*/ | |
$campaign_id = current( $campaign_donations )->campaign_id; | |
$campaign = charitable_get_campaign( $campaign_id ); | |
/** | |
* Set the `value` of our field to the campaign's email content. | |
*/ | |
$output = $campaign->get( 'campaign_email_content' ); | |
return $output; | |
} ); | |
} ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment