Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save greathmaster/940512fe64ea666fa368aa4639b3f50f to your computer and use it in GitHub Desktop.
Save greathmaster/940512fe64ea666fa368aa4639b3f50f to your computer and use it in GitHub Desktop.
Upload avatar image from the checkout using the PMPro Register Helper Add On. Needs to have WP User Avatar plugin (https://wordpress.org/plugins/wp-user-avatar/)
/*
* Add WP User Avatar from Register Helper field during checkout.
*/
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( '/\.[^.]+$/', '', basename( $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_action('added_user_meta', 'my_updated_user_meta', 10, 4);
function my_pmprorh_init_2()
{
//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
));
//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.
}
add_action("init", "my_pmprorh_init_2");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment