PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
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-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-donor-register-email.php
223 lines
1 <?php
2 /**
3 * Donor Register Email
4 *
5 * @package Give
6 * @subpackage Classes/Emails
7 * @copyright Copyright (c) 2019, 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_Donor_Register_Email' ) ) :
18
19 /**
20 * Give_Donor_Register_Email
21 *
22 * @abstract
23 * @since 2.0
24 */
25 class Give_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
35 $args = array(
36 'id' => 'donor-register',
37 'label' => __( 'User Registration Information', 'give' ),
38 'description' => __( 'Sent to the donor when they register for an account on the site when giving.', 'give' ),
39 'notification_status' => 'enabled',
40 'form_metabox_setting' => false,
41 'recipient_group_name' => __( 'Donor', 'give' ),
42 'email_tag_context' => array( 'donor', 'general' ),
43 'default_email_subject' => sprintf(
44 /* translators: %s: site name */
45 esc_attr__( '[%s] Your username and password', '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 $this->load( $args );
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 * @return string
74 * @since 2.0
75 * @access public
76 */
77 function get_default_email_message() {
78 $message = esc_attr__( 'Dear {name}', 'give' ) . "\r\n\r\n";
79 $message .= esc_attr__( 'A user account has been created for you on {site_url}. You may access your account at anytime by using "{username}" to log in.', 'give' ) . "\r\n\r\n";
80 $message .= __( 'To reset your password, simply click the link below to create a new password:', 'give' ) . "\r\n\n";
81 $message .= '{reset_password_link}' . "\r\n\r\n";
82 $message .= __( 'You can log in to your account using the link below:', 'give' );
83 $message .= "\r\n\r\n";
84 $message .= '<a href="' . wp_login_url() . '"> ' . esc_attr__( 'Click Here to Log In &raquo;', 'give' ) . '</a>';
85 $message .= "\r\n\r\n";
86 $message .= __( 'Sincerely', 'give' ) . "\r\n" . '{sitename}';
87
88 /**
89 * Filter the default email message
90 *
91 * @since 2.0
92 */
93 return apply_filters(
94 "give_{$this->config['id']}_get_default_email_message",
95 $message,
96 $this
97 );
98 }
99
100 /**
101 * Setup and send new donor register notifications.
102 *
103 * @param int $user_id User ID.
104 * @param array $user_data User Information.
105 *
106 * @return string
107 * @since 2.0
108 * @access public
109 */
110 public function setup_email_notification( $user_id, $user_data ) {
111 if ( ! is_int( $user_id ) || ! $user_id ) {
112 wp_die(
113 esc_html__( 'Cheatin&#8217; uh?', 'give' ),
114 esc_html__( 'Error', 'give' ),
115 array(
116 'response' => 400,
117 )
118 );
119 }
120
121 $this->setup_email_data();
122
123 $this->recipient_email = $user_data['email'];
124
125 $this->send_email_notification(
126 array(
127 'user_id' => $user_id,
128 )
129 );
130 }
131
132 /**
133 * email preview header.
134 *
135 * @param string $email_preview_header
136 * @param Give_Donor_Register_Email $email
137 *
138 * @return bool
139 * @since 2.0
140 * @access public
141 */
142 public function email_preview_header( $email_preview_header, $email ) {
143 // Bailout.
144 if ( $this->config['id'] !== $email->config['id'] ) {
145 return $email_preview_header;
146 }
147
148 // Payment receipt switcher
149 $user_id = give_check_variable( give_clean( $_GET ), 'isset', 0, 'user_id' );
150
151 // Get payments.
152 $donors = new Give_API();
153 $donors = give_check_variable( $donors->get_donors(), 'empty', array(), 'donors' );
154 $options = array();
155
156 // Default option.
157 $options[0] = esc_html__( 'No donor(s) found.', 'give' );
158
159 // Provide nice human readable options.
160 if ( $donors ) {
161 $options[0] = esc_html__( '- Select a donor -', 'give' );
162 foreach ( $donors as $donor ) {
163 // Exclude customers for which wp user not exist.
164 if ( ! $donor['info']['user_id'] ) {
165 continue;
166 }
167 $options[ $donor['info']['user_id'] ] = esc_html( '#' . $donor['info']['donor_id'] . ' - ' . $donor['info']['email'] );
168 }
169 }
170
171 $request_url_data = wp_parse_url( $_SERVER['REQUEST_URI'] );
172 $query = $request_url_data['query'];
173
174 // Remove user id query param if set from request url.
175 $query = remove_query_arg( array( 'user_id' ), $query );
176
177 $request_url = esc_url_raw( home_url( '/?' . str_replace( '', '', $query ) ) );
178 ?>
179
180 <!-- Start constructing HTML output.-->
181 <div
182 style="margin:0;padding:10px 0;width:100%;background-color:#FFF;border-bottom:1px solid #eee; text-align:center;">
183
184 <script type="text/javascript">
185 function change_preview() {
186 var transactions = document.getElementById( "give_preview_email_user_id" );
187 var selected_trans = transactions.options[ transactions.selectedIndex ];
188 if ( selected_trans ) {
189 var url_string = "<?php echo $request_url; ?>&user_id=" + selected_trans.value;
190 window.location = url_string;
191 }
192 }
193 </script>
194
195 <label for="give_preview_email_user_id" style="font-size:12px;color:#333;margin:0 4px 0 0;">
196 <?php echo esc_html__( 'Preview email with a donor:', 'give' ); ?>
197 </label>
198
199 <?php
200 // The select field with 100 latest transactions
201 echo Give()->html->select(
202 array(
203 'name' => 'preview_email_user_id',
204 'selected' => $user_id,
205 'id' => 'give_preview_email_user_id',
206 'class' => 'give-preview-email-donor-id',
207 'options' => $options,
208 'chosen' => false,
209 'select_atts' => 'onchange="change_preview()"',
210 'show_option_all' => false,
211 'show_option_none' => false,
212 )
213 );
214 ?>
215 </div>
216 <?php
217 }
218 }
219
220 endif; // End class_exists check
221
222 return Give_Donor_Register_Email::get_instance();
223