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