PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.1
GiveWP – Donation Plugin and Fundraising Platform v3.0.1
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 / admin / emails / class-new-donor-register-email.php
give / includes / admin / emails Last commit date
abstract-email-notification.php 4 years ago ajax-handler.php 6 years ago backward-compatibility.php 6 years ago class-donation-receipt-email.php 4 years ago class-donor-note-email.php 6 years ago class-donor-register-email.php 3 years ago class-email-access-email.php 6 years ago class-email-notification-table.php 3 years ago class-email-notification-util.php 6 years ago class-email-notifications.php 4 years ago class-email-setting-field.php 3 years ago class-new-donation-email.php 6 years ago class-new-donor-register-email.php 3 years ago class-new-offline-donation-email.php 6 years ago class-offline-donation-instruction-email.php 6 years ago filters.php 3 years ago
class-new-donor-register-email.php
234 lines
1 <?php
2 /**
3 * New Donor Register Email
4 *
5 * @package Give
6 * @subpackage Classes/Emails
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 2.0
10 */
11
12 // Exit if access directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 if ( ! class_exists( 'Give_New_Donor_Register_Email' ) ) :
18
19 /**
20 * Give_New_Donor_Register_Email
21 *
22 * @abstract
23 * @since 2.0
24 */
25 class Give_New_Donor_Register_Email extends Give_Email_Notification {
26
27 /**
28 * Create a class instance.
29 *
30 * @access public
31 * @since 2.0
32 */
33 public function init() {
34 $this->load(
35 array(
36 'id' => 'new-donor-register',
37 'label' => __( 'New User Registration', 'give' ),
38 'description' => __( 'Sent to designated recipient(s) when a new user registers on the site via a donation form.', 'give' ),
39 'has_recipient_field' => true,
40 'notification_status' => 'enabled',
41 'has_preview_header' => true,
42 'email_tag_context' => array( 'donor', 'general' ),
43 'form_metabox_setting' => false,
44 'default_email_subject' => sprintf(
45 /* translators: %s: site name */
46 esc_attr__( '[%s] New User Registration', 'give' ),
47 get_bloginfo( 'name' )
48 ),
49 'default_email_message' => $this->get_default_email_message(),
50 'default_email_header' => __( 'New User Registration', 'give' ),
51 )
52 );
53
54 // Setup action hook.
55 add_action(
56 "give_{$this->config['id']}_email_notification",
57 array( $this, 'setup_email_notification' ),
58 10,
59 2
60 );
61
62 add_filter(
63 'give_email_preview_header',
64 array( $this, 'email_preview_header' ),
65 10,
66 2
67 );
68 }
69
70 /**
71 * Get default email message.
72 *
73 * @since 2.0
74 * @access public
75 *
76 * @return string
77 */
78 function get_default_email_message() {
79 $message = esc_attr__( 'New user registration on your site {sitename}:', 'give' ) . "\r\n\r\n";
80 $message .= esc_attr__( 'Username: {username}', 'give' ) . "\r\n\r\n";
81 $message .= esc_attr__( 'Email: {user_email}', 'give' ) . "\r\n";
82
83 /**
84 * Filter the default email message
85 *
86 * @since 2.0
87 */
88 return apply_filters(
89 "give_{$this->config['id']}_get_default_email_message",
90 $message,
91 $this
92 );
93 }
94
95 /**
96 * Send new donor register notifications.
97 *
98 * @since 2.0
99 * @access public
100 *
101 * @param int $user_id User ID.
102 * @param array $user_data User Information.
103 *
104 * @return string
105 */
106 public function setup_email_notification( $user_id, $user_data ) {
107 if ( ! is_int( $user_id ) || ! $user_id ) {
108 wp_die(
109 esc_html__( 'Cheatin&#8217; uh?', 'give' ),
110 esc_html__( 'Error', 'give' ),
111 array(
112 'response' => 400,
113 )
114 );
115 }
116
117 $this->setup_email_data();
118
119 $this->send_email_notification(
120 array(
121 'user_id' => $user_id,
122 )
123 );
124 }
125
126
127 /**
128 * email preview header.
129 *
130 * @since 2.0
131 * @access public
132 *
133 * @param string $email_preview_header
134 * @param Give_New_Donor_Register_Email $email
135 * @return string
136 */
137 public function email_preview_header( $email_preview_header, $email ) {
138 // Bailout.
139 if ( $this->config['id'] !== $email->config['id'] ) {
140 return $email_preview_header;
141 }
142
143 // Payment receipt switcher
144 $user_id = give_check_variable( give_clean( $_GET ), 'isset', 0, 'user_id' );
145
146 // Get payments.
147 $donors = new Give_API();
148 $donors = give_check_variable( $donors->get_donors(), 'empty', array(), 'donors' );
149 $options = array();
150
151 // Default option.
152 $options[0] = esc_html__( 'No donor(s) found.', 'give' );
153
154 // Provide nice human readable options.
155 if ( $donors ) {
156 $options[0] = esc_html__( '- Select a donor -', 'give' );
157 foreach ( $donors as $donor ) {
158 // Exclude customers for which wp user not exist.
159 if ( ! $donor['info']['user_id'] ) {
160 continue;
161 }
162 $options[ $donor['info']['user_id'] ] = esc_html( '#' . $donor['info']['donor_id'] . ' - ' . $donor['info']['email'] );
163 }
164 }
165
166 $request_url_data = wp_parse_url( $_SERVER['REQUEST_URI'] );
167 $query = $request_url_data['query'];
168
169 // Remove user id query param if set from request url.
170 $query = remove_query_arg( array( 'user_id' ), $query );
171
172 $request_url = esc_url_raw( home_url( '/?' . str_replace( '', '', $query ) ) );
173 ?>
174 <script type="text/javascript">
175 function change_preview() {
176 var transactions = document.getElementById("give_preview_email_user_id");
177 var selected_trans = transactions.options[transactions.selectedIndex];
178 if (selected_trans) {
179 var url_string = "<?php echo $request_url; ?>&user_id=" + selected_trans.value;
180 window.location = url_string;
181 }
182 }
183 </script>
184
185 <style type="text/css">
186 .give_preview_email_user_id_main {
187 margin: 0;
188 padding: 10px 0;
189 width: 100%;
190 background-color: #FFF;
191 border-bottom: 1px solid #eee;
192 text-align: center;
193 }
194
195 .give_preview_email_user_id_label {
196 font-size: 12px;
197 color: #333;
198 margin: 0 4px 0 0;
199 }
200 </style>
201
202 <!-- Start constructing HTML output.-->
203 <div class="give_preview_email_user_id_main">
204
205 <label for="give_preview_email_user_id" class="give_preview_email_user_id_label">
206 <?php echo esc_html__( 'Preview email with a donor:', 'give' ); ?>
207 </label>
208
209 <?php
210 // The select field with 100 latest transactions
211 echo Give()->html->select(
212 array(
213 'name' => 'preview_email_user_id',
214 'selected' => $user_id,
215 'id' => 'give_preview_email_user_id',
216 'class' => 'give-preview-email-donor-id',
217 'options' => $options,
218 'chosen' => false,
219 'select_atts' => 'onchange="change_preview()"',
220 'show_option_all' => false,
221 'show_option_none' => false,
222 )
223 );
224 ?>
225 <!-- Closing tag-->
226 </div>
227 <?php
228 }
229 }
230
231 endif; // End class_exists check
232
233 return Give_New_Donor_Register_Email::get_instance();
234