/** * 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; }
/** * 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); }