/** * Set type for a member. * custom to set member types on save_post * * @param int $user_id ID of the user. * @param string $member_type Member type. * @param bool $append Optional. True to append this to existing types for user, * false to replace. Default: false. * @return See {@see bp_set_object_terms()}. */ function bmt_set_member_type($user_id, $member_type, $append = false) { $retval = bp_set_object_terms($user_id, $member_type, 'bp_member_type', $append); // Bust the cache if the type has been updated. if (!is_wp_error($retval)) { wp_cache_delete($user_id, 'bp_member_member_type'); /** * Fires just after a user's member type has been changed. * * @since BuddyPress (2.2.0) * * @param int $user_id ID of the user whose member type has been updated. * @param string $member_type Member type. * @param bool $append Whether the type is being appended to existing types. */ do_action('bmt_set_member_type', $user_id, $member_type, $append); } return $retval; }
/** * Set type for a member. * * @since 2.2.0 * * @param int $user_id ID of the user. * @param string $member_type Member type. * @param bool $append Optional. True to append this to existing types for user, * false to replace. Default: false. * @return array $retval See {@see bp_set_object_terms()}. */ function bp_set_member_type($user_id, $member_type, $append = false) { // Pass an empty $member_type to remove a user's type. if (!empty($member_type) && !bp_get_member_type_object($member_type)) { return false; } $retval = bp_set_object_terms($user_id, $member_type, bp_get_member_type_tax_name(), $append); // Bust the cache if the type has been updated. if (!is_wp_error($retval)) { wp_cache_delete($user_id, 'bp_member_member_type'); /** * Fires just after a user's member type has been changed. * * @since 2.2.0 * * @param int $user_id ID of the user whose member type has been updated. * @param string $member_type Member type. * @param bool $append Whether the type is being appended to existing types. */ do_action('bp_set_member_type', $user_id, $member_type, $append); } return $retval; }
/** * Set type for a group. * * @since 2.6.0 * @since 2.7.0 $group_type parameter also accepts an array of group types now. * * @param int $group ID of the group. * @param string|array $group_type Group type or array of group types to set. * @param bool $append Optional. True to append this to existing types for group, * false to replace. Default: false. * @return array $retval See bp_set_object_terms(). */ function bp_groups_set_group_type($group_id, $group_type, $append = false) { // Pass an empty group type to remove group's type. if (!empty($group_type) && is_string($group_type) && !bp_groups_get_group_type_object($group_type)) { return false; } // Cast as array. $group_type = (array) $group_type; // Validate group types. foreach ($group_type as $type) { // Remove any invalid group types. if (is_null(bp_groups_get_group_type_object($type))) { unset($group_type[$type]); } } $retval = bp_set_object_terms($group_id, $group_type, 'bp_group_type', $append); // Bust the cache if the type has been updated. if (!is_wp_error($retval)) { wp_cache_delete($group_id, 'bp_groups_group_type'); /** * Fires just after a group type has been changed. * * @since 2.6.0 * * @param int $group_id ID of the group whose group type has been updated. * @param string|array $group_type Group type or array of group types. * @param bool $append Whether the type is being appended to existing types. */ do_action('bp_groups_set_group_type', $group_id, $group_type, $append); } return $retval; }
public function test_groups_get_type_should_not_return_unregistered_types() { $g = $this->factory->group->create(array('creator_id' => self::$u1)); bp_groups_register_group_type('foo'); bp_groups_set_group_type($g, 'foo'); // Directly set a type that hasn't been registered. bp_set_object_terms($g, 'ugh', 'bp_group_type', true); $type = bp_groups_get_group_type($g, false); $this->assertEquals(array('foo'), $type); }
public function test_bp_get_member_type_should_not_return_unregistered_types() { $u1 = $this->factory->user->create(); bp_register_member_type('foo'); bp_set_member_type($u1, 'foo'); // Directly set a type that hasn't been registered. bp_set_object_terms($u1, 'ugh', bp_get_member_type_tax_name(), true); $type = bp_get_member_type($u1, false); $this->assertEquals(array('foo'), $type); }
/** * Set type for a rendez-vous. * * @package Rendez Vous * @subpackage Functions * * @since Rendez Vous (1.2.0) * * @param int $rendez_vous_id ID of the rendez-vous. * @param string $type Rendez-vous type. * @return See {@see bp_set_object_terms()}. */ function rendez_vous_set_type($rendez_vous_id, $type) { if (!empty($type) && !rendez_vous_term_exists($type)) { return false; } $retval = bp_set_object_terms($rendez_vous_id, $type, 'rendez_vous_type'); // Clear cache. if (!is_wp_error($retval)) { wp_cache_delete($rendez_vous_id, 'rendez_vous_type'); do_action('rendez_vous_set_type', $rendez_vous_id, $type); } return $retval; }