PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.39
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.39
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
userswp / widgets / user-avatar.php

user-avatar.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.2.39, at widgets/user-avatar.php

150 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5
6 /**
7 * UsersWP user avatar widget.
8 *
9 * @since 1.1.2
10 */
11 class UWP_User_Avatar_Widget extends WP_Super_Duper {
12
13 /**
14 * Register the user avatar widget with WordPress.
15 *
16 */
17 public function __construct() {
18
19
20 $options = array(
21 'textdomain' => 'userswp',
22 'block-icon' => 'admin-site',
23 'block-category' => 'widgets',
24 'block-keywords' => "['userswp','user']",
25 'class_name' => __CLASS__,
26 'base_id' => 'uwp_user_avatar',
27 'name' => __( 'UWP > User Avatar', 'userswp' ),
28 'no_wrap' => true,
29 'widget_ops' => array(
30 'classname' => 'uwp-user-avatar bsui',
31 'description' => esc_html__( 'Displays user avatar image for user.', 'userswp' ),
32 ),
33 'arguments' => array(
34 'size' => array(
35 'title' => __( 'Avatar size:', 'userswp' ),
36 'desc' => __( 'Avatar image size in px. Default is 50px.', 'userswp' ),
37 'type' => 'number',
38 'desc_tip' => true,
39 'default' => '50',
40 'group' => __( "Design", "userswp" ),
41 ),
42 'link' => array(
43 'title' => __( "Link to profile?:", 'userswp' ),
44 'desc' => __( 'Link avatar image to user\'s profile page.', 'userswp' ),
45 'type' => 'checkbox',
46 'desc_tip' => true,
47 'value' => '1',
48 'default' => '0',
49 'advanced' => true
50 ),
51 'allow_change' => array(
52 'title' => __( 'Allow to change avatar:', 'userswp' ),
53 'desc' => __( 'Allow user to change avatar image in profile page.', 'userswp' ),
54 'type' => 'checkbox',
55 'desc_tip' => true,
56 'value' => '1',
57 'default' => 1,
58 'advanced' => true
59 ),
60 'user_id' => array(
61 'title' => __( 'User ID:', 'userswp' ),
62 'desc' => __( 'Leave blank to use current user ID or use post_author for current post author ID. For profile page use displayed_user. Input specific user ID for other pages.', 'userswp' ),
63 'type' => 'text',
64 'desc_tip' => true,
65 'default' => '',
66 'advanced' => true
67 ),
68 )
69
70 );
71
72
73 parent::__construct( $options );
74 }
75
76 /**
77 * The Super block output function.
78 *
79 * @param array $args
80 * @param array $widget_args
81 * @param string $content
82 *
83 * @return mixed|string|bool
84 */
85 public function output( $args = array(), $widget_args = array(), $content = '' ) {
86
87 global $post;
88
89 $defaults = array(
90 'size' => 50,
91 'link' => 0,
92 'allow_change' => 0,
93 );
94
95 $args = wp_parse_args( $args, $defaults );
96
97 $args['size'] = empty( $args['size'] ) ? 50 : $args['size'];
98 $args['link'] = 1 == $args['link'] ? 1 : 0;
99 $args['allow_change'] = ! empty( $args['allow_change'] ) ? $args['allow_change'] : 0;
100
101 if ( isset( $args['user_id'] ) && (int) $args['user_id'] > 0 ) {
102 $user = get_userdata( $args['user_id'] );
103 } else if ( isset( $args['user_id'] ) && 'post_author' == $args['user_id'] && $post instanceof WP_Post ) {
104 $user = get_userdata( $post->post_author );
105 } else if ( isset( $args['user_id'] ) && 'displayed_user' == $args['user_id'] ) {
106 $user = uwp_get_displayed_user();
107 } else {
108 $user = get_userdata( get_current_user_id() );
109 }
110
111 if ( ! empty( $user->ID ) ) {
112 $args['user_id'] = $user->ID;
113 }
114
115 if ( ! $args['user_id'] ) {
116 return '';
117 }
118
119 wp_enqueue_script( 'jcrop', array( 'jquery' ) );
120 wp_enqueue_script( 'jquery-ui-progressbar', array( 'jquery' ) );
121 wp_enqueue_style( 'jcrop' );
122 wp_enqueue_style( 'jquery-ui' );
123
124 ob_start();
125
126 add_filter( 'upload_dir', 'uwp_handle_multisite_profile_image', 10, 1 );
127 $uploads = wp_upload_dir();
128 remove_filter( 'upload_dir', 'uwp_handle_multisite_profile_image' );
129 $upload_url = $uploads['baseurl'];
130
131 $avatar = uwp_get_usermeta( $user->ID, 'avatar_thumb', '' );
132 if ( empty( $avatar ) ) {
133 $avatar = get_avatar_url( $user->user_email, array( 'size' => $args['size'] ) );
134 } else {
135 if ( strpos( $avatar, 'http:' ) === false && strpos( $avatar, 'https:' ) === false ) {
136 $avatar = $upload_url . $avatar;
137 }
138 }
139
140 $args['avatar_url'] = $avatar;
141
142 $design_style = ! empty( $args['design_style'] ) ? esc_attr( $args['design_style'] ) : uwp_get_option( "design_style", 'bootstrap' );
143 $template = $design_style ? $design_style . "/user-avatar.php" : "user-avatar.php";
144
145 uwp_get_template( $template, $args );
146
147 return ob_get_clean();
148 }
149
150 }