notices_enabled_pages ) ) { // Admin scripts add_action( 'admin_enqueue_scripts', [ $this, 'custom_admin_enqueue_scripts' ] ); // HTML render of notices add_action( 'admin_notices', [ $this, 'render_admin_error_notices' ] ); add_action( 'admin_notices', [ $this, 'render_admin_donation_notice' ] ); } } public static function init() { new self; } /** * Load CSS and JavaScript for wp-admin * * @since 1.0 * @return void */ public function custom_admin_enqueue_scripts() { // Get current user global $current_user; // Enqueue WordPress Media Library wp_enqueue_media(); // CSS for wp-admin wp_enqueue_style( 'sua', plugins_url( '/css/style.min.css', __FILE__ ), [], SUA_PLUGIN_VERSION, 'all' ); // JavaScript for wp-admin wp_enqueue_script( 'sua', plugins_url( '/js/scripts.js', __FILE__ ), [ 'jquery' ], SUA_PLUGIN_VERSION, true ); // Get default avatar URL by user_email $l10n = [ 'default_avatar_src' => $this->get_default_avatar_url_by_email( $current_user->user_email, $this->avatar_size ), 'default_avatar_srcset' => $this->get_default_avatar_url_by_email( $current_user->user_email, ( $this->avatar_size * 2 ) ) . ' 2x', 'input_name' => SUA_USER_META_KEY ]; wp_localize_script( 'sua', 'sua_obj', $l10n ); } /** * Default WordPress avatar URL by user email * * @since 2.8 * @return string */ private function get_default_avatar_url_by_email( $user_email = '', $size = 96 ) { // Check the email provided if ( empty($user_email) || !filter_var($user_email, FILTER_VALIDATE_EMAIL) ) { return null; } // Sanitize email and get md5 $user_email = sanitize_email( $user_email ); $md5_user_email = md5( $user_email ); // SSL Gravatar URL $url = 'https://secure.gravatar.com/avatar/' . $md5_user_email; // Add query args $url = add_query_arg( 's', $size, $url ); $url = add_query_arg( 'd', 'mm', $url ); $url = add_query_arg( 'r', 'g', $url ); return esc_url( $url ); } /** * Add table in user profile * * @since 1.0 * @return void */ public function render_custom_user_profile_fields( $user ) { // Get user meta $attachment_id = get_user_meta( $user->ID, SUA_USER_META_KEY, true ); ?>
|
ID, $this->avatar_size, '', $user->display_name, [ 'class' => 'sua-attachment-avatar' ] ); ?>
|
An error occurred while saving the transient. Please make sure this website can save transients.
', 'simple-user-avatar' ), esc_url( $this->reference_public_permalink ) ) ); break; } } } /** * Admin notice for donations, if transient not exists or is expired * * @since 2.6 * @return void */ public function render_admin_donation_notice() { // Get Current user global $current_user; // Get the transient $notice_is_expired = get_transient( SUA_TRANSIENT_NAME ); // Check the return of transient, if it's okay empty return if ( $notice_is_expired !== false && is_numeric($notice_is_expired) && $notice_is_expired == 1 ) { return; } // Set the nonce field $wp_nonce_field = wp_nonce_field( SUA_TRANSIENT_NAME, '_wpnonce', true, false ); $wp_nonce_field = preg_replace( '/id=("|\').*?("|\')/', '', $wp_nonce_field ); ?>