bp_avatar_handle_capture( string $data = '', int $item_id )
Handle avatar webcam capture.
Description
Parameters
- $data
-
(Optional) Base64 encoded image.
Default value: ''
- $item_id
-
(Required) Item to associate.
Return
(bool) True on success, false on failure.
Source
File: bp-core/bp-core-avatars.php
function bp_avatar_handle_capture( $data = '', $item_id = 0 ) {
if ( empty( $data ) || empty( $item_id ) ) {
return false;
}
/**
* Filters whether or not to handle avatar webcam capture.
*
* If you want to override this function, make sure you return false.
*
* @since BuddyPress 2.5.1
*
* @param bool $value Whether or not to crop.
* @param string $data Base64 encoded image.
* @param int $item_id Item to associate.
*/
if ( ! apply_filters( 'bp_avatar_pre_handle_capture', true, $data, $item_id ) ) {
return true;
}
$avatar_dir = bp_core_avatar_upload_path() . '/avatars';
// It's not a regular upload, we may need to create this folder.
if ( ! file_exists( $avatar_dir ) ) {
if ( ! wp_mkdir_p( $avatar_dir ) ) {
return false;
}
}
/**
* Filters the Avatar folder directory.
*
* @since BuddyPress 2.3.0
*
* @param string $avatar_dir Directory for storing avatars.
* @param int $item_id ID of the item being acted on.
* @param string $value Avatar type.
* @param string $value Avatars word.
*/
$avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', $avatar_dir . '/' . $item_id, $item_id, 'user', 'avatars' );
// It's not a regular upload, we may need to create this folder.
if( ! is_dir( $avatar_folder_dir ) ) {
if ( ! wp_mkdir_p( $avatar_folder_dir ) ) {
return false;
}
}
$original_file = $avatar_folder_dir . '/webcam-capture-' . $item_id . '.png';
if ( file_put_contents( $original_file, $data ) ) {
$avatar_to_crop = str_replace( bp_core_avatar_upload_path(), '', $original_file );
// Crop to default values.
$crop_args = array( 'item_id' => $item_id, 'original_file' => $avatar_to_crop, 'crop_x' => 0, 'crop_y' => 0 );
return bp_core_avatar_handle_crop( $crop_args );
} else {
return false;
}
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.3.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.