martes, 2 de febrero de 2016

Tu dosis diaria de WordPress - Ayuda WordPress

Te damos la bienvenida a Ayuda WordPress
Ver este email en tu navegador

Ayuda WordPress

Recursos, themes, plugins y tutoriales en español

Estadísticas de acceso por usuario WordPress

Por Fernando el Feb 01, 2016 09:09 am

Normalmente uno no necesita controlar cuántas veces acceden sus usuarios, pero en entornos editoriales, tiendas online y blogs corporativos todo seguimiento es poco, así que vamos a ver cómo conocer las estadísticas de acceso de los usuarios de un sitio WordPress, bastante fácil dicho sea de paso.

rompiendo reloj de fichar

De hecho, solo tenemos que añadir unas líneas de código a nuestro plugin de utilidades, o sino también podemos crear un plugin solo para eso.

Las líneas a incluir serían las siguientes:

namespace Sitepoint\WordPressPlugin;  class Login_Counter {  	public function init() {  		add_action( 'wp_login', array( $this, 'count_user_login' ), 10, 2 );  		add_filter( 'manage_users_columns', array( $this, 'add_stats_columns' ) );  		add_filter( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 );  	}    	/**  	 * Guarda los accesos de usuario en la base de datos.  	 *  	 * @param string $user_login username  	 * @param object $user WP_User object  	 */  	public function count_user_login( $user_login, $user ) {  		$count = get_user_meta( $user->ID, 'sp_login_count', true );  		if ( ! empty( $count ) ) {  			$login_count = get_user_meta( $user->ID, 'sp_login_count', true );  			update_user_meta( $user->ID, 'sp_login_count', ( (int) $login_count + 1 ) );  		}  		else {  			update_user_meta( $user->ID, 'sp_login_count', 1 );  		}  	}    	/**  	 * Añade la columna de estadísticas al listado de usuarios en WordPress  	 *  	 * @param string $columns  	 *  	 * @return mixed  	 */  	public function add_stats_columns( $columns ) {  		$columns['login_stat'] = __( 'Accesos' );    		return $columns;  	}      	/**  	 * Rellena la columna de estadísticas con los valores.  	 *  	 * @param string $empty  	 * @param string $column_name  	 * @param int $user_id  	 *  	 * @return string|void  	 */  	public function fill_stats_columns( $empty, $column_name, $user_id ) {  		if ( 'login_stat' == $column_name ) {  			if ( get_user_meta( $user_id, 'sp_login_count', true ) !== '' ) {  				$login_count = get_user_meta( $user_id, 'sp_login_count', true );  				return "<strong>$login_count</strong>";  			}  			else {  				return __( 'No record found.' );  			}  		}  		return $empty;  	}    	/**  	 * Singleton class instance  	 * @return Login_Counter  	 */  	public static function get_instance() {  		static $instance;  		if ( ! isset( $instance ) ) {  			$instance = new self();  			$instance->init();  		}  		return $instance;  	}  }  Login_Counter::get_instance();

Por si quieres echarle un tiento a lo que hace cada parte … vayamos por partes:

1. Metemos los filtros y ganchos necesarios

public function init() {  		add_action( 'wp_login', array( $this, 'count_user_login' ), 10, 2 );  		add_filter( 'manage_users_columns', array( $this, 'add_stats_columns' ) );  		add_filter( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 );  	}

2. Creamos una tabla en la base de datos, donde guardamos los accesos de usuario

public function count_user_login( $user_login, $user ) {    		if ( ! empty( get_user_meta( $user->ID, 'sp_login_count', true ) ) ) {  			$login_count = get_user_meta( $user->ID, 'sp_login_count', true );  			update_user_meta( $user->ID, 'sp_login_count', ( (int) $login_count + 1 ) );  		} else {  			update_user_meta( $user->ID, 'sp_login_count', 1 );  		}  	}

3. Añadimos la columna que mostrará los accesos de cada usuario en el listado de usuarios de WordPress

public function add_stats_columns( $columns ) {  		$columns['login_stat'] = __( 'Accesos' );    		return $columns;  	}

4. Mostramos en la columna los accesos de cada usuario

public function fill_stats_columns( $empty, $column_name, $user_id ) {  		if ( 'login_stat' == $column_name ) {  			if ( get_user_meta( $user_id, 'sp_login_count', true ) !== '' ) {  				$login_count = get_user_meta( $user_id, 'sp_login_count', true );  				return "<strong>$login_count</strong>";  			}  			else {  				return __( 'No record found.' );  			}  		}  		return $empty;  	}

5. Cerramos y hacemos que todo funcione

public static function get_instance() {  		static $instance;  		if ( ! isset( $instance ) ) {  			$instance = new self();  			$instance->init();  		}    		return $instance;  	}  }    Login_Counter::get_instance();

Si lo prefieres, como apuntaba antes, puedes crear un plugin con todo el código, sería algo así:

<?php    /*  Plugin Name: Contador de accesos del usuario a WordPress  Plugin URI: http://sitepoint.com  Description: Cuenta el número de veces que los usuarios acceden a su cuenta WordPress.  Version: 1.0  Author: Agbonghama Collins  Author URI: http://w3guy.com  License: GPL2  */    namespace Sitepoint\WordPressPlugin;  class Login_Counter {  	public function init() {  		add_action( 'wp_login', array( $this, 'count_user_login' ), 10, 2 );  		add_filter( 'manage_users_columns', array( $this, 'add_stats_columns' ) );  		add_filter( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 );  	}      /**  * Guarda los accesos de usuario en la base de datos.  *  * @param string $user_login username  * @param object $user WP_User object  */    public function count_user_login( $user_login, $user ) { $count = get_user_meta( $user->ID, 'sp_login_count', true );  		if ( ! empty( $count ) ) {  			$login_count = get_user_meta( $user->ID, 'sp_login_count', true );  			update_user_meta( $user->ID, 'sp_login_count', ( (int) $login_count + 1 ) );  		}  		else {  			update_user_meta( $user->ID, 'sp_login_count', 1 );  		}  	}    	/**  	 * Añade la columna de estadísticas al listado de usuarios en WordPress  	 *  	 * @param string $columns  	 *  	 * @return mixed  	 */  	public function add_stats_columns( $columns ) {  		$columns['login_stat'] = __( 'Accesos' );    		return $columns;  	}    	/**  	 * Rellena la columna de estadísticas con los valores.  	 *  	 * @param string $empty  	 * @param string $column_name  	 * @param int $user_id  	 *  	 * @return string|void  	 */  	public function fill_stats_columns( $empty, $column_name, $user_id ) {  		if ( 'login_stat' == $column_name ) {  			if ( get_user_meta( $user_id, 'sp_login_count', true ) !== '' ) {  				$login_count = get_user_meta( $user_id, 'sp_login_count', true );  				return "<strong>$login_count</strong>";  			}  			else {  				return __( 'No record found.' );  			}  		}  		return $empty;  	}    	/**  	 * Singleton class instance  	 * @return Login_Counter  	 */  	public static function get_instance() {  		static $instance;  		if ( ! isset( $instance ) ) {  			$instance = new self();  			$instance->init();  		}  		return $instance;  	}  }  Login_Counter::get_instance();

Lo guardas en una carpeta con el nombre que quieras (sin espacios por favor), lo comprimes en ZIP y lo instalas desde WordPress a la manera habitual: Plugins -> Añadir nuevo -> Subir plugin.

contador acceso usuarios

¿Que prefieres tenerlo ya hecho?

Puedes descargarlo en GitHub o de aquí mismo…

Descargar “Contador de accesos de usuario a WordPress” contador-login-wordpress-1.zip – Descargado 13 veces – 24 kB

Visto en SitePoint


Verlo en el navegador »


Artículos recientes:

Des-actualizar plugins y temas
Guía y recursos WordPress para organizaciones sin ánimo de lucro
Cómo cargar estilos de manera eficaz en un tema hijo
¿Qué es una CDN? ¿la necesito para WordPress?
WordPress REST API ¿qué es? ¿cómo funciona?

Si quieres saber más sobre lo que ofrecemos en Ayuda WordPress echa un vistazo a los siguientes enlaces …  



Curso de WordPress
Todos los secretos
Hosting WordPress
100% fiable
Twitter
Facebook
YouTube
Google Plus
Web
Copyright © 2016 Ayuda WordPress, Todos los derechos reservados.
Recibes este correo al estar suscrito a la lista de noticias de Ayuda WordPress

Ayuda WordPress
Madrid
España, ES 1001
Spain

Add us to your address book


Puedes cambiar tus preferenciasanular la suscripción

Email Marketing Powered by MailChimp

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog