Sync plugins from current page
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class WP_Statistics_Rest
|
||||
*/
|
||||
class WP_Statistics_Rest {
|
||||
|
||||
// Set Default namespace
|
||||
const route = 'wpstatistics/v1';
|
||||
|
||||
// Set Default Statistic Save method
|
||||
const func = 'hit';
|
||||
|
||||
// Set Default Name
|
||||
const _Argument = 'wp_statistics_hit_rest';
|
||||
|
||||
/**
|
||||
* Setup an Wordpress REst Api action.
|
||||
*/
|
||||
public function __construct() {
|
||||
global $WP_Statistics;
|
||||
|
||||
/*
|
||||
* add Router Rest Api
|
||||
*/
|
||||
if ( isset( $WP_Statistics ) and $WP_Statistics->use_cache ) {
|
||||
add_action( 'rest_api_init', array( $this, 'register_routes' ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* List Of Required Params
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function require_params_hit() {
|
||||
return array(
|
||||
'browser',
|
||||
'platform',
|
||||
'version',
|
||||
'ip',
|
||||
'track_all',
|
||||
'timestamp',
|
||||
'page_uri',
|
||||
'user_id',
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add Endpoint Route
|
||||
*/
|
||||
public function register_routes() {
|
||||
|
||||
// Create Require Params
|
||||
$params = array();
|
||||
foreach ( self::require_params_hit() as $p ) {
|
||||
$params[ $p ] = array( 'required' => true );
|
||||
}
|
||||
|
||||
// Get Hit
|
||||
register_rest_route( self::route, '/' . self::func, array(
|
||||
'methods' => \WP_REST_Server::READABLE,
|
||||
'permission_callback' => function () {
|
||||
global $WP_Statistics;
|
||||
return ( $WP_Statistics->get_option( 'use_cache_plugin' ) == 1 ? true : false );
|
||||
},
|
||||
'callback' => array( $this, 'hit' ),
|
||||
'args' => array_merge(
|
||||
array( '_wpnonce' => array(
|
||||
'required' => true,
|
||||
'validate_callback' => function ( $value ) {
|
||||
return wp_verify_nonce( $value, 'wp_rest' );
|
||||
}
|
||||
) ), $params )
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
* Wp Statistic Hit Save
|
||||
*/
|
||||
public function hit() {
|
||||
global $WP_Statistics;
|
||||
|
||||
/*
|
||||
* Check Is Test Service Request
|
||||
*/
|
||||
if ( isset( $_REQUEST['rest-api-wp-statistics'] ) ) {
|
||||
return array( "rest-api-wp-statistics" => "OK" );
|
||||
}
|
||||
|
||||
// Check Isset global
|
||||
if ( ! is_object( $WP_Statistics ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$h = new WP_Statistics_GEO_IP_Hits;
|
||||
|
||||
// Call the online users tracking code.
|
||||
if ( $WP_Statistics->get_option( 'useronline' ) ) {
|
||||
$h->Check_online();
|
||||
}
|
||||
|
||||
// Call the visitor tracking code.
|
||||
if ( $WP_Statistics->get_option( 'visitors' ) ) {
|
||||
$h->Visitors();
|
||||
}
|
||||
|
||||
// Call the visit tracking code.
|
||||
if ( $WP_Statistics->get_option( 'visits' ) ) {
|
||||
$h->Visits();
|
||||
}
|
||||
|
||||
// Call the page tracking code.
|
||||
if ( $WP_Statistics->get_option( 'pages' ) ) {
|
||||
$h->Pages();
|
||||
}
|
||||
|
||||
// Set Return
|
||||
return new \WP_REST_Response( array( 'status' => true, 'message' => __( 'Visitor Hit was recorded successfully.', 'wp-statistics' ) ) );
|
||||
}
|
||||
|
||||
/*
|
||||
* Check is Rest Request
|
||||
*/
|
||||
static public function is_rest() {
|
||||
global $WP_Statistics;
|
||||
|
||||
if ( isset( $WP_Statistics ) and defined( 'REST_REQUEST' ) && REST_REQUEST and $WP_Statistics->use_cache ) {
|
||||
if ( isset( $_REQUEST[ self::_Argument ] ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get Params Request
|
||||
*/
|
||||
static public function params( $params ) {
|
||||
if ( defined( 'REST_REQUEST' ) && REST_REQUEST and isset( $_REQUEST[ self::_Argument ] ) ) {
|
||||
$data = array();
|
||||
foreach ( $_REQUEST as $key => $value ) {
|
||||
if ( ! in_array( $key, array( '_', '_wpnonce' ) ) ) {
|
||||
$data[ $key ] = trim( $value );
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $data[ $params ] ) ) {
|
||||
return $data[ $params ];
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user