Esempio n. 1
0
/**
 * 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;
}
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
 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;
}