Created
November 21, 2019 11:51
-
-
Save ipokkel/fbef9c7616aacbd18de856d587634116 to your computer and use it in GitHub Desktop.
User avatar and logo using PMPro Register Helper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php // Do NOT copy this line | |
/* | |
* Add WP User Avatar from Register Helper field during checkout. | |
* Add image as "logo" from Register Helper field during checkout. | |
*/ | |
add_action( 'added_user_meta', 'my_updated_user_meta', 10, 4 ); | |
add_action( 'updated_user_meta', 'my_updated_user_meta', 10, 4 ); | |
function my_updated_user_meta( $meta_id, $user_id, $meta_key, $meta_value ) { | |
// Change user_avatar to your Register Helper file upload name. | |
if ( 'user_avatar' == $meta_key ) { | |
$filename = $meta_value['fullpath']; | |
$filetype = wp_check_filetype( basename( $filename ), null ); | |
$wp_upload_dir = wp_upload_dir(); | |
$attachment = array( | |
'post_mime_type' => $filetype['type'], | |
'post_title' => preg_replace( '/\.[^.]+$/', '', wp_upload_dir() . $filename ), | |
'post_status' => 'inherit', | |
); | |
$attach_id = wp_insert_attachment( $attachment, $filename ); | |
// Make sure that this file is included, as wp_generate_attachment_metadata() depends on it. | |
require_once ABSPATH . 'wp-admin/includes/image.php'; | |
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename ); | |
wp_update_attachment_metadata( $attach_id, $attach_data ); | |
update_user_meta( $user_id, 'wp_user_avatar', $attach_id ); | |
} | |
} | |
add_filter( 'get_avatar', 'my_user_avatar_filter', 20, 5 ); | |
function my_user_avatar_filter( $avatar, $id_or_email, $size, $default, $alt ) { | |
$my_user = get_userdata( $id_or_email ); | |
if ( ! empty( $my_user ) ) { | |
$avatar_id = get_user_meta( $my_user->ID, 'wp_user_avatar', true ); | |
if ( ! empty( $avatar_id ) ) { | |
$avatar = wp_get_attachment_url( $avatar_id, $size ); | |
$avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; | |
} | |
} | |
return $avatar; | |
} | |
add_action( 'init', 'my_pmprorh_init_avatar_logo' ); | |
function my_pmprorh_init_avatar_logo() { | |
//don't break if Register Helper is not loaded | |
if ( ! function_exists( 'pmprorh_add_registration_field' ) ) { | |
return false; | |
} | |
//define the fields | |
$fields = array(); | |
$fields[] = new PMProRH_Field( | |
'user_avatar', // input name, will also be used as meta key | |
'file', // type of field | |
array( | |
'label' => 'Avatar', | |
'hint' => 'Recommended size is 100px X 100px', | |
'profile' => true, // show in user profile | |
'addmember' => true, | |
) | |
); | |
$fields[] = new PMProRH_Field( | |
'logo', // input field name, used as meta key | |
'file', // field type | |
array( | |
'label' => 'Logo', | |
'accept' => 'image/*', // accept all image types for file upload (http://www.w3schools.com/TAGs/att_input_accept.asp) | |
'profile' => true, | |
'addmember' => true, | |
) | |
); | |
//add the fields into a new checkout_boxes are of the checkout page | |
foreach ( $fields as $field ) { | |
pmprorh_add_registration_field( | |
'checkout_boxes', // location on checkout page | |
$field // PMProRH_Field object | |
); | |
} | |
//that's it. see the PMPro Register Helper readme for more information and examples. | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment