PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.6.0
GiveWP – Donation Plugin and Fundraising Platform v2.6.0
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 6 years ago ajax-handler.php 6 years ago backward-compatibility.php 8 years ago class-donation-receipt-email.php 6 years ago class-donor-note-email.php 6 years ago class-donor-register-email.php 6 years ago class-email-access-email.php 6 years ago class-email-notification-table.php 6 years ago class-email-notification-util.php 7 years ago class-email-notifications.php 6 years ago class-email-setting-field.php 6 years ago class-new-donation-email.php 6 years ago class-new-donor-register-email.php 6 years ago class-new-offline-donation-email.php 6 years ago class-offline-donation-instruction-email.php 6 years ago filters.php 7 years ago
class-donor-register-email.php
218 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, $this
96 );
97 }
98
99 /**
100 * Setup and send new donor register notifications.
101 *
102 * @param int $user_id User ID.
103 * @param array $user_data User Information.
104 *
105 * @return string
106 * @since 2.0
107 * @access public
108 */
109 public function setup_email_notification( $user_id, $user_data ) {
110 if ( ! is_int( $user_id ) || ! $user_id ) {
111 wp_die( esc_html__( 'Cheatin&#8217; uh?', 'give' ), esc_html__( 'Error', 'give' ), array(
112 'response' => 400,
113 ) );
114 }
115
116 $this->setup_email_data();
117
118 $this->recipient_email = $user_data['email'];
119
120 $this->send_email_notification(
121 array(
122 'user_id' => $user_id,
123 )
124 );
125 }
126
127 /**
128 * email preview header.
129 *
130 * @param string $email_preview_header
131 * @param Give_Donor_Register_Email $email
132 *
133 * @return bool
134 * @since 2.0
135 * @access public
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 = home_url( '/?' . str_replace( '', '', $query ) );
173 ?>
174
175 <!-- Start constructing HTML output.-->
176 <div
177 style="margin:0;padding:10px 0;width:100%;background-color:#FFF;border-bottom:1px solid #eee; text-align:center;">
178
179 <script type="text/javascript">
180 function change_preview() {
181 var transactions = document.getElementById( "give_preview_email_user_id" );
182 var selected_trans = transactions.options[ transactions.selectedIndex ];
183 if ( selected_trans ) {
184 var url_string = "<?php echo $request_url; ?>&user_id=" + selected_trans.value;
185 window.location = url_string;
186 }
187 }
188 </script>
189
190 <label for="give_preview_email_user_id" style="font-size:12px;color:#333;margin:0 4px 0 0;">
191 <?php echo esc_html__( 'Preview email with a donor:', 'give' ); ?>
192 </label>
193
194 <?php
195 // The select field with 100 latest transactions
196 echo Give()->html->select(
197 array(
198 'name' => 'preview_email_user_id',
199 'selected' => $user_id,
200 'id' => 'give_preview_email_user_id',
201 'class' => 'give-preview-email-donor-id',
202 'options' => $options,
203 'chosen' => false,
204 'select_atts' => 'onchange="change_preview()"',
205 'show_option_all' => false,
206 'show_option_none' => false,
207 )
208 );
209 ?>
210 </div>
211 <?php
212 }
213 }
214
215 endif; // End class_exists check
216
217 return Give_Donor_Register_Email::get_instance();
218