PATH:
home
/
letacommog
/
autopropr01
/
wp-content
/
plugins
/
menu-icons
/
vendor
/
codeinwp
/
themeisle-sdk
<?php /** * The main loader class for ThemeIsle SDK * * @package ThemeIsleSDK * @subpackage Logger * @copyright Copyright (c) 2017, Marius Cristea * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License * @since 1.0.0 */ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) : /** * Class ThemeIsle_SDK_Logger * * Send the statistics to the Themeisle Endpoint */ /** * Class ThemeIsle_SDK_Logger */ class ThemeIsle_SDK_Logger { /** * @var string $logging_url Url where to send the logs */ private $logging_url = 'http://log.themeisle.com/wp-json/v1/logs/'; /** * @var ThemeIsle_SDK_Product $product Themeisle Product. */ private $product; /** * @var string $product_cron Cron name handler */ private $product_cron; /** * @var string $heading The heading of the modal */ private $heading = 'Do you enjoy <b>{product}</b>? Become a contributor by opting in to our anonymous data tracking. We guarantee no sensitive data is collected.'; /** * @var string $button_submit The text of the submit button */ private $button_submit = 'Sure, I would love to help.'; /** * @var string $button_cancel The text of the cancel button */ private $button_cancel = 'No, thanks.'; /** * ThemeIsle_SDK_Logger constructor. * * @param ThemeIsle_SDK_Product $product_object Product Object. */ public function __construct( $product_object ) { if ( $product_object instanceof ThemeIsle_SDK_Product ) { $this->product = $product_object; $this->product_cron = $product_object->get_key() . '_log_activity'; } add_action( 'wp_ajax_' . $this->product->get_key() . __CLASS__, array( $this, 'dismiss' ) ); } /** * Start the cron to send the log. It will randomize the interval in order to not send all the logs at the same time. */ public function enable() { if ( ! wp_next_scheduled( $this->product_cron ) ) { wp_schedule_single_event( time() + ( rand( 15, 24 ) * 3600 ), $this->product_cron ); } add_action( $this->product_cron, array( $this, 'send_log' ) ); } /** * Send the statistics to the api endpoint */ public function send_log() { $environment = array(); $theme = wp_get_theme(); $environment['theme'] = array(); $environment['theme']['name'] = $theme->get( 'Name' ); $environment['theme']['author'] = $theme->get( 'Author' ); $environment['plugins'] = get_option( 'active_plugins' ); wp_remote_post( $this->logging_url, array( 'method' => 'POST', 'timeout' => 3, 'redirection' => 5, 'headers' => array( 'X-ThemeIsle-Event' => 'log_site', ), 'body' => array( 'site' => get_site_url(), 'slug' => $this->product->get_slug(), 'version' => $this->product->get_version(), 'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ), 'environment' => $environment, 'license' => apply_filters( $this->product->get_key() . '_license_status', '' ), ), ) ); } /** * Dismiss the notification */ function dismiss() { check_ajax_referer( (string) __CLASS__, 'nonce' ); $flag = intval( $_POST['enable'] ) === 1; update_option( $this->product->logger_option, ( $flag ? 'yes' : 'no' ) ); if ( true === $flag ) { $this->enable(); } } /** * Either we should show the notification or not. * * @return bool Valida notification. */ function can_notify() { $show = $this->product->is_logger_active(); $checked = get_option( $this->product->logger_option, '' ); if ( ! $show && $checked == '' ) { return true; } return false; } /** * Shows the notification */ function show_notification() { add_action( 'admin_notices', array( $this, 'admin_notices' ) ); } /** * Shows the admin notice */ function admin_notices() { $id = $this->product->get_key() . '_logger'; $this->add_media( $this->product->get_key() ); echo '<div class="notice notice-success is-dismissible " id="' . $this->product->get_key() . '-logger-notification" ><div id="' . $id . '" class="themeisle-logger-box">' . $this->get_html( $this->product->get_key() ) . '</div></div>'; } /** * Generates the HTML * * @param string $key The product key. */ function get_html( $key ) { $heading = apply_filters( $this->product->get_key() . '_logger_heading', $this->heading ); $heading = str_replace( array( '{product}' ), array( trim( str_replace( 'Lite', '', $this->product->get_name() ) ), ), $heading ); $button_submit = apply_filters( $this->product->get_key() . '_logger_button_submit', $this->button_submit ); $button_cancel = apply_filters( $this->product->get_key() . '_logger_button_cancel', $this->button_cancel ); return '<div >' . '<p>' . $heading . '</p>' . '<div class="actions">' . get_submit_button( $button_submit, 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array( 'data-ti-log-enable' => 1, ) ) . get_submit_button( $button_cancel, 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array( 'data-ti-log-enable' => 0, ) ) . '</div></div>'; } /** * Loads the js * * @param string $key The product key. */ function add_media( $key ) { ?> <style type="text/css"> #<?php echo $key; ?>-logger-notification { padding-bottom: 5px; } #<?php echo $key; ?>-logger-notification .button { margin-left: 5px; } </style> <script type="text/javascript" id="<?php echo $key; ?>ti-logger-js"> (function ($) { $(document).ready(function () { $('.<?php echo $key; ?>-ti-logger').on('click', function (e) { $.ajax({ url: ajaxurl, method: "post", data: { 'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>', 'action': '<?php echo $this->product->get_key() . __CLASS__; ?>', 'enable': $(this).attr('data-ti-log-enable') }, success: function () { $('#<?php echo $key; ?>-logger-notification').hide(); } }); }); }); })(jQuery); </script> <?php } } endif;
[+]
..
[-] LICENSE
[edit]
[-] index.php
[edit]
[-] class-themeisle-sdk-feedback.php
[edit]
[-] start.php
[edit]
[-] class-themeisle-sdk-widget-dashboard-blog.php
[edit]
[-] class-themeisle-sdk-widgets-factory.php
[edit]
[-] class-themeisle-sdk-widget.php
[edit]
[-] class-themeisle-sdk-notification-manager.php
[edit]
[-] class-themeisle-sdk-rollback.php
[edit]
[-] class-themeisle-sdk-feedback-deactivate.php
[edit]
[-] class-themeisle-sdk-feedback-factory.php
[edit]
[-] composer.json
[edit]
[-] class-themeisle-sdk-logger.php
[edit]
[-] class-themeisle-sdk-loader.php
[edit]
[-] class-themeisle-sdk-product.php
[edit]
[-] class-themeisle-sdk-endpoints.php
[edit]
[-] load.php
[edit]
[-] class-themeisle-sdk-feedback-translate.php
[edit]
[-] class-themeisle-sdk-licenser.php
[edit]
[-] class-themeisle-sdk-feedback-review.php
[edit]