Создание плагина WordPress Счетчик авторизации пользователей

Создание плагина WordPress Счетчик авторизации пользователей

От автора: WordPress – возможно, самая популярная система управления контентом в интернете. По данным журнала Forbes под управлением данной CMS находится свыше 60 миллионов веб-сайтов, что, несомненно, ставит систему в ранг лидера. WordPress заманивает огромным количеством плагинов. Хотите создать интернет-магазин? Есть плагин WooCommerce. Хотите создать портал, посвященный работе? Вот вам WP Job Manager.

В этом уроке мы научимся создавать плагин WordPress «Счетчик авторизации пользователей», который подсчитывает количество входов в учетную запись на сайте под управлением WordPress, значение будет отображаться в дополнительной колонке на странице списка пользователей.

Разработка плагина

Большинство файлов в плагине WordPress составляют файлы PHP, и хранятся они в /wp-content/plugins/. Заранее говорю, что вы должны уметь подключаться к серверу через FTP/SFTP/SCP или SSH. Создайте файл плагина wordpress-login-count.php. В конце урока мы получим готовый плагин. Сперва, необходимо добавить шапку плагина, без нее WordPress не поймет, что это плагин.

<?php

/*
Plugin Name: WordPress User Login Counter
Plugin URI: http://sitepoint.com
Description: Count the number of times users log in to their WordPress account.
Version: 1.0
Author: Agbonghama Collins
Author URI: http://w3guy.com
License: GPL2
*/

Затем необходимо задать PHP пространство имен и класс плагина, как показано ниже.

namespace Sitepoint\WordPressPlugin;

class Login_Counter {
// ...

Все экшены и фильтры, необходимые плагину, будут храниться в методе init().

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_action( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 );
    }

WordPress запускает хук wp_login, когда пользователь авторизовался, т.е. им можно воспользоваться для подсчета количество авторизаций. Функция count_user_login() производит подсчет:

/**
     * Save user login count to Database.
     *
     * @param string $user_login username
     * @param object $user WP_User object
     */
    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 );
        }
    }

Объяснение: сначала мы проверяем мета поле sp_login_count на пустоту. Если пустое, мы берем предыдущее сохраненное значение и добавляем к нему 1. Если непустое, то это значит, что пользователь авторизовался первый раз, т.е. в поле будет сохранено значение 1.

Для добавления колонки Login Count на странице списка пользователей используется фильтр manage_users_custom_column. Данный хук будет выводить количество авторизаций пользователя (смотрите скриншот выше).

Функция fill_stats_columns() в manage_users_custom_column добавляет новую колонку. Объяснение: первое условие if проверяет, находимся ли мы в колонке login_stat. Второй if проверяет поле на пустоту. Если условие выполняется, возвращается количество входов на сайт, в противном случае возвращается «No record found».

Метод get_instance() создает синглтон экземпляр класса и вызывает метод init() для регистрации экшенов и фильтров. И наконец, мы вызываем метода get_instance() для запуска PHP класса.

Login_Counter::get_instance();

Вот и все! Мы закончили кодить наш плагин счетчик.

Заключение

Чтобы более подробно разобраться в процессе создания плагина и его работе на сайте под управлением WordPress, скачайте проект с GitHub. Надеюсь, данный урок будет вам полезен при создании плагинов для WordPress. Пишите, что думаете в комментариях.

Автор: Agbonghama Collins

Источник: http://www.sitepoint.com/

Редакция: Команда webformyself.

Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?

Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress “Уникальный сайт с нуля”

Получить

Метки: ,

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree