If you want to add user profile image by custom URL and add custom fields of profile image like first name, last name in your woo-commerce registration form then see our code below, you can also get this code in a custom user profile image URL plug-in.

<?php

/**
* Show the new image field in the user profile page.
*
* @param object $user User object.
*/
function wet_profile_img_fields( $user ) {
if ( ! current_user_can( ‘upload_files’ ) ) {
return;
}

// vars
$url = get_the_author_meta( ‘wet_meta’, $user->ID );
$upload_url = get_the_author_meta( ‘wet_upload_meta’, $user->ID );
$upload_edit_url = get_the_author_meta( ‘wet_upload_edit_meta’, $user->ID );
$button_text = $upload_url ? ‘Change Image’ : ‘Change Image’;

if ( $upload_url ) {
$upload_edit_url = get_site_url() . $upload_edit_url;
}
?>

<div id=”wet_container”>
<h3><?php _e( ‘User Profile Photo’, ‘user-profile-photo’ ); ?></h3>

<table class=”form-table”>
<tr>
<td>
<!– Outputs the image after save –>
<div id=”current_img”>
<?php if ( $upload_url ): ?>
<img class=”wet-current-img” src=”<?php echo esc_url( $upload_url ); ?>”/>

<div class=”edit_options uploaded”>
<a class=”remove_img”>
<span><?php _e( ‘Remove’, ‘user-profile-photo’ ); ?></span>
</a>

<a class=”edit_img” href=”<?php echo esc_url( $upload_edit_url ); ?>” target=”_blank”>
<span><?php _e( ‘Edit’, ‘user-profile-photo’ ); ?></span>
</a>
</div>
<?php elseif ( $url ) : ?>
<img class=”wet-current-img” src=”<?php echo esc_url( $url ); ?>”/>
<div class=”edit_options single”>
<a class=”remove_img”>
<span><?php _e( ‘Remove’, ‘user-profile-photo’ ); ?></span>
</a>
</div>
<?php else : ?>
<img class=”wet-current-img placeholder”
src=”<?php echo esc_url( plugins_url( ‘user-profile-photo/img/placeholder.gif’ ) ); ?>”/>
<?php endif; ?>
</div>

<!– External URL –>

<input type=”radio” id=”external_option” name=”img_option” value=”external” class=”tog” checked>
<label
for=”external_option”><?php _e( ‘Use External URL’, ‘user-profile-photo’ ); ?></label><br>
</div>

<!– Outputs the text field and displays the URL of the image retrieved by the media uploader –>
<div id=”wet_external”>
<input class=”regular-text” type=”text” name=”wet_meta” id=”wet_meta”
value=”<?php echo esc_url_raw( $url ); ?>”/>
</div>

<!– Outputs the save button –>
<span class=”description”>
<?php
_e(
‘use a custom url for your user profile photo.’,
‘user-profile-photo’
);
?>
</span>
<p class=”description”>
<?php _e( ‘Update Profile to save your changes.’, ‘user-profile-photo’ ); ?>
</p>
</td>
</tr>
</table><!– end form-table –>
</div> <!– end #wet_container –>

<?php
// Enqueue the WordPress Media Uploader.
wp_enqueue_media();
}

add_action( ‘show_user_profile’, ‘wet_profile_img_fields’ );
add_action( ‘edit_user_profile’, ‘wet_profile_img_fields’ );

/**
* Save the new user CUPP url.
*
* @param int $user_id ID of the user’s profile being saved.
*/
function wet_save_img_meta( $user_id ) {
if ( ! current_user_can( ‘upload_files’, $user_id ) ) {
return;
}

$values = array(
// String value. Empty in this case.
‘wet_meta’ => filter_input( INPUT_POST, ‘wet_meta’, FILTER_SANITIZE_STRING ),

‘wet_upload_meta’ => filter_input( INPUT_POST, ‘wet_upload_meta’, FILTER_SANITIZE_URL ),

‘wet_upload_edit_meta’ => filter_input( INPUT_POST, ‘wet_upload_edit_meta’, FILTER_SANITIZE_URL ),
);

foreach ( $values as $key => $value ) {
update_user_meta( $user_id, $key, $value );
}
}

add_action( ‘personal_options_update’, ‘wet_save_img_meta’ );
add_action( ‘edit_user_profile_update’, ‘wet_save_img_meta’ );

/**
* Retrieve the appropriate image size
*
* @param int $user_id Default: $post->post_author. Will accept any valid user ID passed into this parameter.
* @param string $size Default: ‘thumbnail’. Accepts all default WordPress sizes and any custom sizes made by
* the add_image_size() function.
*
* @return string (Url) Use this inside the src attribute of an image tag or where you need to call the image url.
*/
function get_wet_meta( $user_id, $size = ‘thumbnail’ ) {
global $post;

if ( ! $user_id || ! is_numeric( $user_id ) ) {

$user_id = $post->post_author;
}
$baseurlim = esc_url( plugins_url( ‘user-profile-photo/img/placeholder.gif’ ) );
// Finally, check for image from an external URL. If none exists, return an empty string.
$attachment_ext_url = esc_url( get_the_author_meta( ‘wet_meta’, $user_id ) );

return $attachment_ext_url ? $attachment_ext_url : $baseurlim;
}

 

/**
* WordPress Avatar Filter
*
*/
function wet_avatar( $avatar, $identifier, $size, $alt ) {
if ( $user = wet_get_user_by_id_or_email( $identifier ) ) {
if ( $custom_avatar = get_wet_meta( $user->ID, ‘thumbnail’ ) ) {
return “<img alt='{$alt}’ src='{$custom_avatar}’ class=’avatar avatar-{$size} photo’ height='{$size}’ width='{$size}’ />”;
}
}

return $avatar;
}

add_filter( ‘get_avatar’, ‘wet_avatar’, 1, 5 );

/**
* Get a WordPress User by ID or email
*
* @param int|object|string $identifier User object, ID or email address.
*
* @return WP_User
*/
function wet_get_user_by_id_or_email( $identifier ) {
// If an integer is passed.
if ( is_numeric( $identifier ) ) {
return get_user_by( ‘id’, (int) $identifier );
}

// If the WP_User object is passed.
if ( is_object( $identifier ) && property_exists( $identifier, ‘ID’ ) ) {
return get_user_by( ‘id’, (int) $identifier->ID );
}

// If the WP_Comment object is passed.
if ( is_object( $identifier ) && property_exists( $identifier, ‘user_id’ ) ) {
return get_user_by( ‘id’, (int) $identifier->user_id );
}

return get_user_by( ’email’, $identifier );
}

function wooc_extra_register_fields() {
?>
<p class=”form-row form-row-first”>
<label for=”reg_billing_first_name”><?php _e( ‘First name’, ‘woocommerce’ ); ?> <span class=”required”>*</span></label>
<input type=”text” class=”input-text” name=”billing_first_name” id=”reg_billing_first_name” value=”<?php if ( ! empty( $_POST[‘billing_first_name’] ) ) esc_attr_e( $_POST[‘billing_first_name’] ); ?>” />
</p>

<p class=”form-row form-row-last”>
<label for=”reg_billing_last_name”><?php _e( ‘Last name’, ‘woocommerce’ ); ?> <span class=”required”>*</span></label>
<input type=”text” class=”input-text” name=”billing_last_name” id=”reg_billing_last_name” value=”<?php if ( ! empty( $_POST[‘billing_last_name’] ) ) esc_attr_e( $_POST[‘billing_last_name’] ); ?>” />
</p>

<div class=”clear”></div>

<p class=”form-row form-row-wide”>
<label for=”reg_billing_phone”><?php _e( ‘Profile Image URL’, ‘woocommerce’ ); ?> </label>
<input type=”text” class=”input-text” name=”wet_upload_meta” id=”reg_billing_phone” value=”<?php if ( ! empty( $_POST[‘wet_upload_meta’] ) ) esc_attr_e( $_POST[‘wet_upload_meta’] ); ?>” />
</p>

<?php
}
add_action( ‘woocommerce_register_form_start’, ‘wooc_extra_register_fields’ );

// 2. VALIDATE FIELDS

add_filter( ‘woocommerce_registration_errors’, ‘bbloomer_validate_name_fields’, 10, 3 );

function bbloomer_validate_name_fields( $errors, $username, $email ) {
if ( isset( $_POST[‘billing_first_name’] ) && empty( $_POST[‘billing_first_name’] ) ) {
$errors->add( ‘billing_first_name_error’, __( ‘<strong>Error</strong>: First name is required!’, ‘woocommerce’ ) );
}
if ( isset( $_POST[‘billing_last_name’] ) && empty( $_POST[‘billing_last_name’] ) ) {
$errors->add( ‘billing_last_name_error’, __( ‘<strong>Error</strong>: Last name is required!.’, ‘woocommerce’ ) );
}
return $errors;
}

function wooc_save_extra_register_fields( $customer_id ) {

if ( isset( $_POST[‘billing_first_name’] ) ) {
update_user_meta( $customer_id, ‘billing_first_name’, sanitize_text_field( $_POST[‘billing_first_name’] ) );
}
if ( isset( $_POST[‘billing_last_name’] ) ) {
update_user_meta( $customer_id, ‘billing_last_name’, sanitize_text_field( $_POST[‘billing_last_name’] ) );
}

if ( isset( $_POST[‘wet_upload_meta’] ) ) {
// WooCommerce billing phone
update_user_meta( $customer_id, ‘wet_upload_meta’, $_POST[‘wet_upload_meta’] );
update_user_meta( $customer_id, ‘wet_meta’, $_POST[‘wet_upload_meta’] );

}
}
add_action( ‘woocommerce_created_customer’, ‘wooc_save_extra_register_fields’ );

?>

More Article


0 thoughts on “How to add user profile image by custom URL and custom fields in woocommerce”

Leave a Reply

Related Article

Blog

Om Beach: Gokarna, Karnataka, India

The modest sanctuary town of Gokarna gloats a modest bunch of shorelines worth going by, yet Om Beach named because of its normal similarity of the Om image makes our rundown on account of its Read more…

Blog

Chowpatty Beach: Mumbai, Maharashtra, India

Chowpatty Beach is an unquestionable requirement visit for sightseers going by Mumbai, particularly amid Ganesh Chaturthi, a Hindu celebration celebrated out of appreciation for the divinity Ganesha. The celebration, which ordinarily happens in August or Read more…

Blog

Could White Wine increase Your Melanoma Risk?

Another review raises the likelihood that individuals who appreciate a glass of white wine each day may confront a somewhat lifted danger of melanoma. Add up to liquor admission was connected with a 14 percent Read more…