PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / emails / template.php
give / includes / emails Last commit date
actions.php 6 years ago class-give-email-tags.php 9 months ago class-give-emails.php 6 years ago functions.php 6 years ago template.php 3 years ago
template.php
243 lines
1 <?php
2 /**
3 * Email Template
4 *
5 * @package Give
6 * @subpackage Emails
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Gets all the email templates that have been registered. The list is extendable
19 * and more templates can be added.
20 *
21 * This is simply a wrapper to Give_Email_Templates->get_templates()
22 *
23 * @since 1.0
24 * @return array $templates All the registered email templates.
25 */
26 function give_get_email_templates() {
27 $templates = new Give_Emails();
28
29 return $templates->get_templates();
30 }
31
32 /**
33 * Email Template Tags.
34 *
35 * @todo Modify this function to remove payment id dependency.
36 *
37 * @since 1.0
38 *
39 * @param string $message Message with the template tags.
40 * @param array $payment_data Payment Data.
41 * @param int $payment_id Payment ID.
42 * @param bool $admin_notice Whether or not this is a notification email.
43 *
44 * @return string $message Fully formatted message
45 */
46 function give_email_template_tags( $message, $payment_data, $payment_id, $admin_notice = false ) {
47 return give_do_email_tags( $message, $payment_id );
48 }
49
50 /**
51 * Email Preview Template Tags.
52 *
53 * Provides sample content for the preview email functionality within settings > email.
54 *
55 * @since 1.0
56 *
57 * @param string $message Email message with template tags.
58 *
59 * @return string $message Fully formatted message
60 */
61 function give_email_preview_template_tags( $message ) {
62
63 $user = wp_get_current_user();
64 $gateway = 'PayPal';
65 $donation_id = rand( 1, 100 );
66 $receipt_link = give_get_receipt_link( $donation_id );
67 $receipt_link_url = give_get_receipt_url( $donation_id );
68 $price = give_currency_filter(
69 give_format_amount(
70 10.50,
71 array(
72 'sanitize' => false,
73 )
74 )
75 );
76
77 $message = str_replace( '{name}', $user->display_name, $message );
78 $message = str_replace( '{fullname}', $user->display_name, $message );
79 $message = str_replace( '{username}', $user->user_login, $message );
80 $message = str_replace( '{user_email}', $user->user_email, $message );
81 $message = str_replace( '{billing_address}', "123 Test Street, Unit 222\nSomewhere Town, CA, 92101", $message );
82 $message = str_replace( '{date}', date( give_date_format(), current_time( 'timestamp' ) ), $message );
83 $message = str_replace( '{amount}', $price, $message );
84 $message = str_replace( '{price}', $price, $message );
85 $message = str_replace( '{donation}', esc_html__( 'Sample Donation Form Title', 'give' ), $message );
86 $message = str_replace( '{form_title}', esc_html__( 'Sample Donation Form Title - Sample Donation Level', 'give' ), $message );
87 $message = str_replace( '{payment_method}', $gateway, $message );
88 $message = str_replace( '{sitename}', get_bloginfo( 'name' ), $message );
89 $message = str_replace( '{payment_id}', $donation_id, $message );
90 $message = str_replace( '{receipt_link}', $receipt_link, $message );
91 $message = str_replace( '{receipt_link_url}', $receipt_link_url, $message );
92 $message = str_replace( '{pdf_receipt}', '<a href="#">Download Receipt</a>', $message );
93
94 return wpautop( apply_filters( 'give_email_preview_template_tags', $message ) );
95 }
96
97
98
99 /**
100 * Output Email Template Preview Buttons.
101 *
102 * @access private
103 * @since 1.0
104 * @since 1.8 Field arguments param added.
105 *
106 * @param array $field Field arguments.
107 *
108 * @return array
109 */
110 function give_email_preview_buttons_callback( $field ) {
111 $field_id = str_replace( '_preview_buttons', '', $field['id'] );
112
113 ob_start();
114
115 echo sprintf(
116 '<a href="%1$s" class="button-secondary" target="_blank">%2$s</a>',
117 esc_url(
118 wp_nonce_url(
119 add_query_arg(
120 array(
121 'give_action' => 'preview_email',
122 'email_type' => $field_id,
123 ),
124 home_url()
125 ),
126 'give-preview-email'
127 )
128 ),
129 $field['name']
130 );
131
132 echo sprintf(
133 ' <a href="%1$s" aria-label="%2$s" class="button-secondary">%3$s</a>',
134 esc_url(
135 wp_nonce_url(
136 add_query_arg(
137 array(
138 'give_action' => 'send_preview_email',
139 'email_type' => $field_id,
140 'give-messages[]' => 'sent-test-email',
141 )
142 ),
143 'give-send-preview-email'
144 )
145 ),
146 esc_attr__( 'Send Test Email.', 'give' ),
147 esc_html__( 'Send Test Email', 'give' )
148 );
149
150 echo ob_get_clean();
151 }
152
153
154 /**
155 * Give Preview Email Header.
156 *
157 * Displays a header bar with the ability to change donations to preview actual data within the preview. Will not display if
158 *
159 * @since 2.14.0 reduce number of queries
160 * @since 1.6
161 */
162 function give_get_preview_email_header() {
163
164 // Payment receipt switcher
165 $payment_count = give_count_payments()->publish;
166 $payment_id = give_check_variable( give_clean( $_GET ), 'isset', 0, 'preview_id' );
167
168 if ( $payment_count <= 0 ) {
169 return false;
170 }
171
172 // Get payments.
173 $donations = new Give_Payments_Query(
174 array(
175 'number' => 100,
176 )
177 );
178 $donations = $donations->get_payments();
179 $options = [];
180
181 // Default option.
182 $options[0] = esc_html__( 'No donations found.', 'give' );
183
184 // Provide nice human readable options.
185 /** @var Give_Payment[] $donations */
186 if ( $donations ) {
187 $options[0] = esc_html__( '- Select a donation -', 'give' );
188 foreach ( $donations as $donation ) {
189
190 $options[ $donation->ID ] = sprintf(
191 '#%1$s - %2$s - %3$s',
192 $donation->ID,
193 $donation->email,
194 $donation->number
195 );
196 }
197 }
198
199 // Start constructing HTML output.
200 $transaction_header = '<div style="margin:0;padding:10px 0;width:100%;background-color:#FFF;border-bottom:1px solid #eee; text-align:center;">';
201
202 // Remove payment id query param if set from request url.
203 $request_url_data = wp_parse_url( $_SERVER['REQUEST_URI'] );
204 $query = $request_url_data['query'];
205 $query = remove_query_arg( array( 'preview_id' ), $query );
206
207 $request_url = esc_url_raw( home_url( '/?' . str_replace( '', '', $query ) ) );
208
209 $transaction_header .= '<script>
210 function change_preview(){
211 var transactions = document.getElementById("give_preview_email_payment_id");
212 var selected_trans = transactions.options[transactions.selectedIndex];
213 if (selected_trans){
214 var url_string = "' . $request_url . '&preview_id=" + selected_trans.value;
215 window.location = url_string;
216 }
217 }
218 </script>';
219
220 $transaction_header .= '<label for="give_preview_email_payment_id" style="font-size:12px;color:#333;margin:0 4px 0 0;">' . esc_html__( 'Preview email with a donation:', 'give' ) . '</label>';
221
222 // The select field with 100 latest transactions
223 $transaction_header .= Give()->html->select(
224 array(
225 'name' => 'preview_email_payment_id',
226 'selected' => $payment_id,
227 'id' => 'give_preview_email_payment_id',
228 'class' => 'give-preview-email-payment-id',
229 'options' => $options,
230 'chosen' => false,
231 'select_atts' => 'onchange="change_preview()"',
232 'show_option_all' => false,
233 'show_option_none' => false,
234 )
235 );
236
237 // Closing tag
238 $transaction_header .= '</div>';
239
240 return apply_filters( 'give_preview_email_receipt_header', $transaction_header );
241
242 }
243