Ejemplo n.º 1
0
 /**
  * Check for and handle form submission.
  *
  * @return bool Have settings been updated?
  * @since 3.0
  * @static
  */
 protected static function maybe_save()
 {
     // Fetch existing settings
     $settings = $existing_settings = DP_Welcome_Pack::get_settings();
     $updated = false;
     // Has the Friend invitation feature been toggled on/off?
     if (!empty($_POST['dpw_friendstoggle'])) {
         if ('on' == $_POST['dpw_friendstoggle']) {
             $settings['dpw_friendstoggle'] = true;
         } else {
             $settings['dpw_friendstoggle'] = false;
         }
     }
     // Has the Group invitation feature been toggled on/off?
     if (!empty($_POST['dpw_groupstoggle'])) {
         if ('on' == $_POST['dpw_groupstoggle']) {
             $settings['dpw_groupstoggle'] = true;
         } else {
             $settings['dpw_groupstoggle'] = false;
         }
     }
     // Has the Start Page feature been toggled on/off?
     if (!empty($_POST['dpw_startpagetoggle'])) {
         if ('on' == $_POST['dpw_startpagetoggle']) {
             $settings['dpw_startpagetoggle'] = true;
         } else {
             $settings['dpw_startpagetoggle'] = false;
         }
     }
     // Has the Welcome Message feature been toggled on/off?
     if (!empty($_POST['dpw_welcomemsgtoggle'])) {
         if ('on' == $_POST['dpw_welcomemsgtoggle']) {
             $settings['dpw_welcomemsgtoggle'] = true;
         } else {
             $settings['dpw_welcomemsgtoggle'] = false;
         }
     }
     // Has the email customisation feature been toggled on/off?
     if (!empty($_POST['dpw_emailtoggle'])) {
         if ('on' == $_POST['dpw_emailtoggle']) {
             $settings['dpw_emailtoggle'] = true;
         } else {
             $settings['dpw_emailtoggle'] = false;
         }
     }
     // Has the list of friends (to send invites to) been updated?
     if (!empty($_POST['friends'])) {
         $settings['friends'] = array_map('absint', (array) $_POST['friends']);
     }
     // Has the list of groups (to send invites to) been updated?
     if (!empty($_POST['groups'])) {
         $settings['groups'] = array_map('absint', (array) $_POST['groups']);
     }
     // Has the Start Page URL been updated?
     if (!empty($_POST['startpage'])) {
         $settings['startpage'] = sanitize_text_field(wp_kses_data($_POST['startpage']));
     }
     // Has the Welcome Message body text been updated?
     if (!empty($_POST['welcomemsg'])) {
         $settings['welcomemsg'] = stripslashes(wp_filter_kses($_POST['welcomemsg']));
     }
     // Has the Welcome Message subject text been updated?
     if (!empty($_POST['welcomemsgsubject'])) {
         $settings['welcomemsgsubject'] = stripslashes(sanitize_text_field(wp_filter_kses($_POST['welcomemsgsubject'])));
     }
     // Has the Welcome Message sender (who the message is sent from) been updated?
     if (!empty($_POST['welcomemsgsender'])) {
         $settings['welcomemsgsender'] = absint($_POST['welcomemsgsender']);
     }
     // If the new settings are different from the existing settings, then they've been changed. Save them to the database!
     if ($settings != $existing_settings) {
         check_admin_referer('dpw-admin', 'dpw-admin-nonce');
         bp_update_option('welcomepack', $settings);
         $updated = true;
     }
     return $updated;
 }
Ejemplo n.º 2
0
 /**
  * The main workhorse where the friends, groups and welcome message features happens.
  * Triggers when a user account is activated.
  *
  * @param int $user_id ID of the new user
  * @since 3.0
  */
 function user_activated($user_id)
 {
     $settings = DP_Welcome_Pack::get_settings();
     // Is the Friend invitations component enabled?
     if (!empty($settings['dpw_friendstoggle']) && bp_is_active('friends') && !empty($settings['friends'])) {
         // Send friend requests
         foreach ((array) $settings['friends'] as $friend_id) {
             friends_add_friend((int) $friend_id, $user_id, constant('WELCOME_PACK_AUTOACCEPT_INVITATIONS'));
         }
     }
     // Is the Group invitations component enabled?
     if (!empty($settings['dpw_groupstoggle']) && bp_is_active('groups') && !empty($settings['groups'])) {
         foreach ((array) $settings['groups'] as $group_id) {
             $group = new BP_Groups_Group((int) $group_id);
             // Send group invites
             groups_invite_user(array('user_id' => $user_id, 'group_id' => (int) $group_id, 'inviter_id' => $group->creator_id, 'is_confirmed' => constant('WELCOME_PACK_AUTOACCEPT_INVITATIONS')));
             groups_send_invites($group->creator_id, (int) $group_id);
         }
     }
     // Is the Welcome Message component enabled?
     if (!empty($settings['dpw_welcomemsgtoggle']) && bp_is_active('messages') && !empty($settings['welcomemsgsender']) && !empty($settings['welcomemsgsubject']) && !empty($settings['welcomemsg'])) {
         messages_new_message(array('sender_id' => $settings['welcomemsgsender'], 'recipients' => $user_id, 'subject' => apply_filters('dpw_keyword_replacement', $settings['welcomemsgsubject'], $user_id), 'content' => apply_filters('dpw_keyword_replacement', $settings['welcomemsg'], $user_id)));
     }
     // Call an action for third-parties to hook into
     do_action('dpw_user_activated', $user_id);
 }