PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 2.0.2
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v2.0.2
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
profile-builder / features / email-confirmation / email-confirmation.php

email-confirmation.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 2.0.2, at features/email-confirmation/email-confirmation.php

525 lines 24.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 //functions needed for the email-confirmation on single-sites (to create the "_signups" table)
3 function wppb_signup_schema( $oldVal, $newVal ){
4 // Declare these as global in case schema.php is included from a function.
5 global $wpdb, $wp_queries, $charset_collate;
6
7 if ($newVal['emailConfirmation'] == 'yes'){
8
9 //The database character collate.
10 $charset_collate = '';
11
12 if ( ! empty( $wpdb->charset ) )
13 $charset_collate = "DEFAULT CHARACTER SET ".$wpdb->charset;
14 if ( ! empty( $wpdb->collate ) )
15 $charset_collate .= " COLLATE ".$wpdb->collate;
16 $tableName = $wpdb->prefix.'signups';
17
18 $sql = "
19 CREATE TABLE $tableName (
20 domain varchar(200) NOT NULL default '',
21 path varchar(100) NOT NULL default '',
22 title longtext NOT NULL,
23 user_login varchar(60) NOT NULL default '',
24 user_email varchar(100) NOT NULL default '',
25 registered datetime NOT NULL default '0000-00-00 00:00:00',
26 activated datetime NOT NULL default '0000-00-00 00:00:00',
27 active tinyint(1) NOT NULL default '0',
28 activation_key varchar(50) NOT NULL default '',
29 meta longtext,
30 KEY activation_key (activation_key),
31 KEY domain (domain)
32 ) $charset_collate;";
33
34 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
35 $res = dbDelta($sql);
36 }
37 }
38 add_action( 'update_option_wppb_general_settings', 'wppb_signup_schema', 10, 2 );
39
40
41 //function to add new tab in the default WP userlisting with all the users who didn't confirm their account yet
42 function wppb_add_pending_users_header_script(){
43 ?>
44 <script type="text/javascript">
45 jQuery(document).ready(function() {
46 jQuery.post( ajaxurl , { action:"wppb_get_unconfirmed_email_number"}, function(response) {
47 jQuery('.wrap ul.subsubsub').append('<span id="separatorID"> |</span> <li class="listUsersWithUncofirmedEmail"><a class="unconfirmedEmailUsers" href="?page=unconfirmed_emails"><?php _e('Users with Unconfirmed Email Address', 'profilebuilder');?></a> <font id="unconfirmedEmailNo" color="grey">('+response.number+')</font></li>');
48 });
49 });
50
51 function confirmECActionBulk( URL, message ) {
52 if ( confirm(message) )
53 window.location=URL;
54 }
55
56 // script to create a confirmation box for the user upon approving/unapproving a user
57 function confirmECAction( URL, todo, user_email, actionText ) {
58 actionText = '<?php _e( 'Do you want to', 'profilebuilder' ); ?>' + ' ' + actionText;
59
60 if (confirm(actionText)) {
61 jQuery.post( ajaxurl , { action:"wppb_handle_email_confirmation_cases", URL:URL, todo:todo, user_email:user_email}, function(response) {
62 if (jQuery.trim(response) == 'ok')
63 window.location=URL;
64
65 else
66 alert( jQuery.trim(response) );
67 });
68 }
69 }
70 </script>
71 <?php
72 }
73
74 function wppb_get_unconfirmed_email_number(){
75 global $wpdb;
76
77 header( 'Content-type: application/json' );
78 die( json_encode( array( 'number' => (int)$wpdb->get_var( "SELECT COUNT(*) FROM ".$wpdb->prefix."signups WHERE active = 0" ) ) ) );
79 }
80
81
82 function wppb_handle_email_confirmation_cases() {
83 global $current_user;
84 global $wpdb;
85
86 //die($current_user);
87 $url = trim($_POST['URL']);
88 $todo = trim($_POST['todo']);
89 $user_email = trim($_POST['user_email']);
90
91 if ( current_user_can( 'delete_users' ) )
92 if ( ( $todo != '' ) && ( $user_email != '' ) ){
93
94 $results = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "signups WHERE active = 0 AND user_email = %s", $user_email ) );
95
96 if ( count( $results ) != 1 )
97 die( __( "There was an error performing that action!", "profilebuilder" ) );
98
99 elseif ( $todo == 'delete' ){
100 $sql_result = $wpdb->delete( $wpdb->prefix.'signups', array( 'user_login' => $results[0]->user_login, 'user_email' => $results[0]->user_email ) );
101 if ( $sql_result )
102 die( 'ok' );
103
104 else
105 die( __( "The selected user couldn't be deleted", "profilebuilder" ) );
106
107 }elseif ( $todo == 'confirm' ){
108 die( wppb_manual_activate_signup( $results[0]->activation_key ) );
109
110 }elseif ( $todo == 'resend' ){
111 $sql_result = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "signups WHERE user_login = %s AND user_email = %s", $results[0]->user_login, $results[0]->user_email ), ARRAY_A );
112
113 if ( $sql_result ){
114 wppb_signup_user_notification( trim( $sql_result['user_login'] ), trim( $sql_result['user_email'] ), $sql_result['activation_key'], $sql_result['meta'] );
115
116 die( __( "Email notification resent to user", "profilebuilder" ) );
117 }
118
119 }
120 }
121
122 die( __("You either don't have permission for that action or there was an error!", "profilebuilder") );
123 }
124
125
126
127 // FUNCTIONS USED BOTH ON THE REGISTRATION PAGE AND THE EMAIL CONFIRMATION TABLE
128
129 // Hook to add AP user meta after signup autentification
130 add_action( 'wpmu_activate_user', 'wppb_add_meta_to_user_on_activation', 10, 3 );
131
132 //function that adds AP user meta after signup autentification and it is also used when editing the user uprofile
133 function wppb_add_meta_to_user_on_activation( $user_id, $password, $meta ){
134 $user = new WP_User( $user_id );
135
136 //copy the data from the meta field (default fields)
137 if( !empty( $meta['first_name'] ) )
138 update_user_meta( $user_id, 'first_name', $meta['first_name'] );
139 if( !empty( $meta['last_name'] ) )
140 update_user_meta( $user_id, 'last_name', $meta['last_name'] );
141 if( !empty( $meta['nickname'] ) )
142 update_user_meta( $user_id, 'nickname', $meta['nickname'] );
143 if( !empty( $meta['user_url'] ) )
144 update_user_meta( $user_id, 'user_url', $meta['user_url'] );
145 if( !empty( $meta['aim'] ) )
146 update_user_meta( $user_id, 'aim', $meta['aim'] );
147 if( !empty( $meta['yim'] ) )
148 update_user_meta( $user_id, 'yim', $meta['yim'] );
149 if( !empty( $meta['jabber'] ) )
150 update_user_meta( $user_id, 'jabber', $meta['jabber'] );
151 if( !empty( $meta['description'] ) )
152 update_user_meta( $user_id, 'description', $meta['description'] );
153
154 if( !empty( $meta['role'] ) )
155 $user->set_role( $meta['role'] ); //update the users role (s)he registered for
156
157 //copy the data from the meta fields (custom fields)
158 $manage_fields = get_option( 'wppb_manage_fields', 'not_set' );
159 if ( $manage_fields != 'not_set' ){
160 foreach ( $manage_fields as $key => $value){
161 switch ( $value['field'] ) {
162 case 'Input':{
163 if ( isset( $meta[$value['meta-name']] ) )
164 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
165 break;
166 }
167 case 'Input (Hidden)':{
168 if ( isset( $meta[$value['meta-name']] ) )
169 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
170 break;
171 }
172 case 'Checkbox':{
173 if ( isset( $meta[$value['meta-name']] ) )
174 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
175 break;
176 }
177 case 'Checkbox (Terms and Conditions)':{
178 if ( isset( $meta[$value['meta-name']] ) )
179 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
180 break;
181 }
182 case 'Radio':{
183 if ( isset( $meta[$value['meta-name']] ) )
184 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
185 break;
186 }
187 case 'Select':{
188 if ( isset( $meta[$value['meta-name']] ) )
189 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
190 break;
191 }
192 case 'Select (Country)':{
193 if ( isset( $meta[$value['meta-name']] ) )
194 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
195 break;
196 }
197 case 'Select (Multiple)':{
198 if ( isset( $meta[$value['meta-name']] ) )
199 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
200 break;
201 }
202 case 'Select (Timezone)':{
203 if ( isset( $meta[$value['meta-name']] ) )
204 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
205 break;
206 }
207 case 'Datepicker':{
208 if ( isset( $meta[$value['meta-name']] ) )
209 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
210 break;
211 }
212 case 'Textarea':{
213 if ( isset( $meta[$value['meta-name']] ) )
214 update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
215 break;
216 }
217 case 'Upload':{
218 if ( isset( $meta[$value['meta-name']] ) ){
219 $wp_upload_array = wp_upload_dir(); // Array of key => value pairs
220
221 $file = trim( $meta[$value['meta-name']] );
222 $file_name = substr( $file, strpos( $file, '_attachment_')+12 );
223
224 $random_user_number = apply_filters( 'wppb_register_wpmu_upload_random_user_number2', substr( md5( $user->data->user_email ), 0, 12 ), $user, $meta );
225
226 $old_path_on_disk = $wp_upload_array['basedir'].'/profile_builder/attachments/'.substr( $file, strpos( $file, 'wpmuRandomID_') );
227 if ( PHP_OS == "WIN32" || PHP_OS == "WINNT" )
228 $old_path_on_disk = str_replace( '\\', '/', $old_path_on_disk );
229
230 $new_path_on_disk = $wp_upload_array['basedir'].'/profile_builder/attachments/userID_'.$user_id.'_attachment_'.$file_name;
231 if ( PHP_OS == "WIN32" || PHP_OS == "WINNT" )
232 $new_path_on_disk = str_replace( '\\', '/', $new_path_on_disk );
233
234 if ( rename( $old_path_on_disk, $new_path_on_disk ) )
235 update_user_meta( $user_id, $value['meta-name'], $wp_upload_array['baseurl'].'/profile_builder/attachments/userID_'.$user_id.'_attachment_'.$file_name );
236
237 }
238 break;
239 }
240 case 'Avatar':{
241 if ( isset( $meta[$value['meta-name']] ) ){
242 $wp_upload_array = wp_upload_dir(); // Array of key => value pairs
243
244 $file = trim( $meta[$value['meta-name']] );
245 $file_name = substr( $file, strpos( $file, '_originalAvatar_')+16 );
246
247 $random_user_number = apply_filters( 'wppb_register_wpmu_avatar_random_user_number2', substr( md5( $user->data->user_email ), 0, 12 ), $user, $meta );
248
249 $old_path_on_disk = $wp_upload_array['basedir'].'/profile_builder/avatars/'.substr( $file, strpos( $file, 'wpmuRandomID_') );
250 if ( PHP_OS == "WIN32" || PHP_OS == "WINNT" )
251 $old_path_on_disk = str_replace( '\\', '/', $old_path_on_disk );
252
253 $new_path_on_disk = $wp_upload_array['basedir'].'/profile_builder/avatars/userID_'.$user_id.'_originalAvatar_'.$file_name;
254 if ( PHP_OS == "WIN32" || PHP_OS == "WINNT" )
255 $new_path_on_disk = str_replace( '\\', '/', $new_path_on_disk );
256
257 if ( rename( $old_path_on_disk, $new_path_on_disk ) ){
258 $wp_filetype = wp_check_filetype(basename( $file_name ), null );
259 $attachment = array('post_mime_type' => $wp_filetype['type'],
260 'post_title' => $file_name,
261 'post_content' => '',
262 'post_status' => 'inherit'
263 );
264
265 $attach_id = wp_insert_attachment( $attachment, $new_path_on_disk );
266
267 $avatar = image_downsize( $attach_id, 'thumbnail' );
268
269 update_user_meta( $user_id, $value['meta-name'], $avatar[0] );
270 update_user_meta( $user_id, 'avatar_directory_path_'.$value['id'], $new_path_on_disk );
271 update_user_meta( $user_id, 'resized_avatar_'.$value['id'].'_relative_path', $new_path_on_disk );
272 wppb_resize_avatar( $user_id );
273 }
274 }
275 break;
276 }
277 }
278 }
279 }
280 }
281
282
283 // function to add the new user to the signup table if email confirmation is selected as active or it is a wpmu installation
284 function wppb_signup_user( $username, $user_email, $meta = '' ) {
285 global $wpdb;
286
287 // Format data
288 $user = preg_replace( '/\s+/', '', sanitize_user( $username, true ) );
289 $user_email = sanitize_email( $user_email );
290 $activation_key = substr( md5( time() . rand() . $user_email ), 0, 16 );
291 $meta = serialize( $meta );
292
293 if ( is_multisite() )
294 $wpdb->insert( $wpdb->signups, array('domain' => '', 'path' => '', 'title' => '', 'user_login' => $user, 'user_email' => $user_email, 'registered' => current_time('mysql', true), 'activation_key' => $activation_key, 'meta' => $meta ) );
295 else
296 $wpdb->insert( $wpdb->prefix.'signups', array('domain' => '', 'path' => '', 'title' => '', 'user_login' => $user, 'user_email' => $user_email, 'registered' => current_time('mysql', true), 'activation_key' => $activation_key, 'meta' => $meta ) );
297
298 do_action ( 'wppb_signup_user', $username, $user_email, $activation_key, $meta );
299
300 wppb_signup_user_notification( $username, $user_email, $activation_key, $meta );
301 }
302
303 /**
304 * Notify user of signup success.
305 *
306 * Filter 'wppb_signup_user_notification_filter' to bypass this function or
307 * replace it with your own notification behavior.
308 *
309 * Filter 'wppb_signup_user_notification_email' and
310 * 'wppb_signup_user_notification_subject' to change the content
311 * and subject line of the email sent to newly registered users.
312 *
313 * @param string $user The user's login name.
314 * @param string $user_email The user's email address.
315 * @param array $meta By default, an empty array.
316 * @param string $activation_key The activation key created in wppb_signup_user()
317 * @return bool
318 */
319 function wppb_signup_user_notification( $user, $user_email, $activation_key, $meta = '' ) {
320 if ( !apply_filters( 'wppb_signup_user_notification_filter', $user, $user_email, $activation_key, $meta ) )
321 return false;
322
323 $wppb_general_settings = get_option( 'wppb_general_settings' );
324 $admin_email = get_site_option( 'admin_email' );
325
326 if ( $admin_email == '' )
327 $admin_email = 'support@' . $_SERVER['SERVER_NAME'];
328
329 $from_name = apply_filters ( 'wppb_signup_user_notification_email_from_field', get_bloginfo( 'name' ) );
330
331 $message_headers = apply_filters ( 'wppb_signup_user_notification_from', "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n" );
332
333 $registration_page_url = ( ( isset( $wppb_general_settings['activationLandingPage'] ) && ( trim( $wppb_general_settings['activationLandingPage'] ) != '' ) ) ? add_query_arg( array('activation_key' => $activation_key ), get_permalink( $wppb_general_settings['activationLandingPage'] ) ) : 'not_set' );
334 if ( $registration_page_url == 'not_set' ){
335 global $post;
336 if( !empty( $post->ID ) )
337 $permalink = get_permalink( $post->ID );
338 else
339 $permalink = get_bloginfo( 'url' );
340
341 if( !empty( $post->post_content ) )
342 $post_content = $post->post_content;
343 else
344 $post_content = '';
345
346 $registration_page_url = ( ( strpos( $post_content, '[wppb-register' ) !== false ) ? add_query_arg( array('activation_key' => $activation_key ), $permalink ) : add_query_arg( array('activation_key' => $activation_key ), get_bloginfo( 'url' ) ) );
347 }
348
349 $subject = sprintf( apply_filters( 'wppb_signup_user_notification_email_subject', __( '[%1$s] Activate %2$s', 'profilebuilder'), $user_email, $user, $activation_key, $registration_page_url, $meta, $from_name, 'wppb_user_emailc_registr_w_email_confirm_email_subject' ), $from_name, $user );
350 $message = sprintf( apply_filters( 'wppb_signup_user_notification_email_content', __( "To activate your user, please click the following link:\n\n%s%s%s\n\nAfter you activate it you will receive yet *another email* with your login.", "profilebuilder" ), $user_email, $user, $activation_key, $registration_page_url, $meta, $from_name, 'wppb_user_emailc_registr_w_email_confirm_email_content' ), '<a href="'.$registration_page_url.'">', $registration_page_url, '</a>.' );
351
352 wppb_mail( $user_email, $subject, $message, $from_name, '', $user, '', $user_email, 'register_w_email_confirmation', $registration_page_url, $meta );
353
354 return true;
355 }
356
357
358 /**
359 * Activate a signup.
360 *
361 *
362 * @param string $activation_key The activation key provided to the user.
363 * @return array An array containing information about the activated user and/or blog
364 */
365 function wppb_manual_activate_signup( $activation_key ) {
366 global $wpdb;
367
368 if ( is_multisite() )
369 $signup = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->signups WHERE activation_key = %s", $activation_key ) );
370 else
371 $signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."signups WHERE activation_key = %s", $activation_key) );
372
373 if ( !empty( $signup ) && !$signup->active ){
374 $meta = unserialize( $signup->meta );
375 $user_login = esc_sql( $signup->user_login );
376 $user_email = esc_sql( $signup->user_email );
377 $password = base64_decode( $meta['user_pass'] );
378
379 $user_id = username_exists($user_login);
380
381 if ( ! $user_id )
382 $user_id = wppb_create_user( $user_login, $password, $user_email );
383 else
384 $user_already_exists = true;
385
386 if ( !$user_id )
387 return __( 'Could not create user!', 'profilebuilder' );
388
389 elseif ( isset( $user_already_exists ) && ( $user_already_exists == true ) )
390 return __( 'That username is already activated!', 'profilebuilder' );
391
392 else{
393 $now = current_time('mysql', true);
394
395 $retVal = ( is_multisite() ? $wpdb->update( $wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $activation_key) ) : $wpdb->update( $wpdb->prefix.'signups', array('active' => 1, 'activated' => $now), array('activation_key' => $activation_key) ) );
396
397 wppb_add_meta_to_user_on_activation( $user_id, '', $meta );
398
399 // if admin approval is activated, then block the user untill he gets approved
400 $wppb_general_settings = get_option( 'wppb_general_settings' );
401 if( isset( $wppb_general_settings['adminApproval'] ) && ( $wppb_general_settings['adminApproval'] == 'yes' ) ){
402 wp_set_object_terms( $user_id, array( 'unapproved' ), 'user_status', false);
403 clean_object_term_cache( $user_id, 'user_status' );
404 }
405
406 wppb_notify_user_registration_email( get_bloginfo( 'name' ), $user_login, $user_email, 'sending', $password, ( isset( $wppb_general_settings['adminApproval'] ) ? $wppb_general_settings['adminApproval'] : 'no' ) );
407
408 do_action('wppb_activate_user', $user_id, $password, $meta);
409
410 return ( $retVal ? 'ok' : __( 'There was an error while trying to activate the user', 'profilebuilder' ) );
411 }
412 }
413 }
414
415 /**
416 * Create a user.
417 *
418 * @param string $user_name The new user's login name.
419 * @param string $password The new user's password.
420 * @param string $email The new user's email address.
421 * @return mixed Returns false on failure, or int $user_id on success
422 */
423 function wppb_create_user( $user_name, $password, $email) {
424 $user_name = preg_replace( '/\s+/', '', sanitize_user( $user_name, true ) );
425
426 $user_id = wp_create_user( $user_name, $password, $email );
427 if ( is_wp_error($user_id) )
428 return false;
429
430 // Newly created users have no roles or caps until they are added to a blog.
431 delete_user_option( $user_id, 'capabilities' );
432 delete_user_option( $user_id, 'user_level' );
433
434 do_action( 'wppb_new_user', $user_id );
435
436 return $user_id;
437 }
438
439 //send an email to the admin regarding each and every new subscriber, and - if selected - to the user himself
440 function wppb_notify_user_registration_email( $bloginfo, $user_name, $email, $send_credentials_via_email, $password, $adminApproval ){
441 //send email to the admin
442 $message_from = apply_filters( 'wppb_register_from_email_message_admin_email', $bloginfo );
443
444 $message_subject = '['.$message_from.'] '.__( 'A new subscriber has (been) registered!', 'profilebuilder' );
445 $message_subject = apply_filters ('wppb_register_admin_email_subject_without_admin_approval', $message_subject, $email, $password, $message_from, 'wppb_admin_emailc_default_registration_email_subject' );
446
447 $message_content = sprintf( __( 'New subscriber on %1$s.<br/><br/>Username:%2$s<br/>E-mail:%3$s<br/>', 'profilebuilder'), $message_from, $user_name, $email );
448
449 if ( $adminApproval == 'yes' ){
450 $message_subject = apply_filters( 'wppb_register_admin_email_subject_with_admin_approval', $message_subject, $email, $password, $message_from, 'wppb_admin_emailc_registration_with_admin_approval_email_subject' );
451
452 $message_content .= '<br/>' . __( 'The "Admin Approval" feature was activated at the time of registration, so please remember that you need to approve this user before he/she can log in!', 'profilebuilder') ."\r\n";
453 $message_content = apply_filters( 'wppb_register_admin_email_message_with_admin_approval', $message_content, $email, $password, $message_from, 'wppb_admin_emailc_registration_with_admin_approval_email_content' );
454 }else
455 $message_content = apply_filters( 'wppb_register_admin_email_message_without_admin_approval', $message_content, $email, $password, $message_from, 'wppb_admin_emailc_default_registration_email_content' );
456
457
458 if ( trim( $message_content ) != '' )
459 wppb_mail( get_option('admin_email'), $message_subject, $message_content, $message_from );
460
461
462
463 //send an email to the newly registered user, if this option was selected
464 if ( isset( $send_credentials_via_email ) && ( $send_credentials_via_email == 'sending' ) ){
465 $user_message_from = apply_filters( 'wppb_register_from_email_message_user_email', $bloginfo );
466
467 $user_message_subject = sprintf( __( '[%1$s] Your new account information', 'profilebuilder' ), $user_message_from, $user_name, $password );
468 $user_message_subject = apply_filters( 'wppb_register_user_email_subject_without_admin_approval', $user_message_subject, $email, $password, $user_message_subject, 'wppb_user_emailc_default_registration_email_subject' );
469
470 $user_message_content = sprintf( __( 'Welcome to %1$s!<br/><br/><br/>Your username is:%2$s and password:%3$s', 'profilebuilder' ), $user_message_from, $user_name, $password );
471
472 if ( $adminApproval == 'yes' ){
473 $user_message_subject = apply_filters( 'wppb_register_user_email_subject_with_admin_approval', $user_message_subject, $email, $password, $user_message_subject, 'wppb_user_emailc_registration_with_admin_approval_email_subject' );
474
475 $user_message_content .= '<br/><br/>' . __( 'Before you can access your account, an administrator needs to approve it. You will be notified via email.', 'profilebuilder' );
476 $user_message_content = apply_filters( 'wppb_register_user_email_message_with_admin_approval', $user_message_content, $email, $password, $user_message_subject, 'wppb_user_emailc_registration_with_admin_approval_email_content' );
477
478 }else
479 $user_message_content = apply_filters( 'wppb_register_user_email_message_without_admin_approval', $user_message_content, $email, $password, $user_message_subject, 'wppb_user_emailc_default_registration_email_content' );
480
481 $message_sent = wppb_mail( $email, $user_message_subject, $user_message_content, $user_message_from );
482
483 return ( ( $message_sent ) ? 2 : 1 );
484 }
485 }
486 // END FUNCTIONS USED BOTH ON THE REGISTRATION PAGE AND THE EMAIL CONFIRMATION TABLE
487
488
489 // Set up the AJAX hooks
490 add_action( 'wp_ajax_wppb_get_unconfirmed_email_number', 'wppb_get_unconfirmed_email_number' );
491 add_action( 'wp_ajax_wppb_handle_email_confirmation_cases', 'wppb_handle_email_confirmation_cases' );
492
493 if ( is_multisite() ){
494
495 if (strpos($_SERVER['SCRIPT_NAME'], 'users.php')){ //global $pagenow doesn't seem to work
496 add_action( 'admin_head', 'wppb_add_pending_users_header_script' );
497
498 }
499 if ( file_exists ( WPPB_PLUGIN_DIR . '/features/admin-approval/admin-approval.php' ) )
500 add_action( 'user_register', 'wppb_update_user_status_on_admin_registration' );
501
502 }else{
503 $wppb_general_settings = get_option( 'wppb_general_settings', 'not_found' );
504
505 if( $wppb_general_settings != 'not_found' )
506 if( !empty($wppb_general_settings['emailConfirmation'] ) && ( $wppb_general_settings['emailConfirmation'] == 'yes' ) ){
507 global $pagenow;
508
509 if ( $pagenow == 'users.php' ){
510 add_action( 'admin_head', 'wppb_add_pending_users_header_script' );
511
512 }
513 if ( file_exists ( WPPB_PLUGIN_DIR . '/features/admin-approval/admin-approval.php' ) )
514 add_action( 'user_register', 'wppb_update_user_status_on_admin_registration' );
515 }
516 }
517
518 // function to delete the users from the _signups table also
519 function wppb_delete_user_from_signups( $user_id ) {
520 global $wpdb;
521
522 $user = get_user_by( 'id', $user_id );
523 $wpdb->delete( $wpdb->prefix.'signups', array( 'user_email' => $user->user_email ) );
524 }
525 add_action( 'delete_user', 'wppb_delete_user_from_signups' );