nyco/wp-stat-collector

A developer plugin for WordPress that adds hooks to enable the logging of data from the site to a specified MySQL database.

0.0.9 2022-03-01 17:15 UTC

README

A developer plugin for WordPress that adds hooks to enable the logging of data from the site to a specified MySQL database.

Installation using Composer

$1 This package uses Composer Installers to install the package in the Must Use plugins directory (/wp-content/mu-plugins):

composer require nyco/wp-stat-collector

Not using Composer? Download an archive of the code and drop it into the mu-plugins directory.

$2 Create a proxy PHP loader file inside the mu-plugins directory, or use the one included with the plugin:

mv wp-content/mu-plugins/wp-stat-collector/autoloader-sample.php wp-content/mu-plugins/wp-stat-collector.php

Initialization

The sample autoloader contains the basic code required to initialize the plugin. It will...

  • Add the statc_register with a sample to get started with creating a trigger to write information to your database.
  • Add the statc_bootstrap with a sample query to create tables in your database for the data to be stored in.
  • Require all files containing classes.
  • Initialize the StatCollector\StatCollector.
  • Create an admin settings page under Settings > Stat Collector for configuration.

Configuration

  • Host (including port)
  • Name
  • Username
  • Password
  • Send Notifications - Wether or not to email the administrator if there is a connection error.

Notices

  • Tables Created - A notice that database tables have been created using the statc_bootstrap hook.
  • Certificate Authority - A notice that a certificate authority has been found.
  • Connection - A notice that a connection can be made using the credetials above.

SSL

Stat Collector uses the Amazon Web Services RDS certificate bundle for making MySQL connections over SSL.

Actions

statc_register

Hook for internal actions that collect information to write to the DB.

...args

Example

add_action('statc_register', function($statc) {
  add_action('my_action', function($data) use ($statc) {
    if (gettype($data) === 'string') {
      $statc->collect('my_table', [
        'my_data' => $data,
      ]);
    }
  }, $statc->settings->priority, 2);

  return true;
});

statc_init

Hook for plugin post-instantiation.

...args

statc_bootstrap

Hook for bootstrapping the database.

...args

  • Class wpdb - An instance of wpdb with a connection to your database.

Example

add_action('statc_bootstrap', function($db) {
  $db->query(
    'CREATE TABLE IF NOT EXISTS my_table (
      id INT(11) NOT NULL AUTO_INCREMENT,
      my_data TEXT DEFAULT NULL,
      PRIMARY KEY(id)
    ) ENGINE=InnoDB'
  );

  return true;
});

The Mayor's Office for Economic Opportunity

The Mayor's Office for Economic Opportunity (NYC Opportunity) is committed to sharing open source software that we use in our products. Feel free to ask questions and share feedback. Interested in contributing? See our open positions on buildwithnyc.github.io. Follow our team on Github (if you are part of the @cityofnewyork organization) or browse our work on Github.