File "promo.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woo-product-filter/modules/promo/models/promo.php
File size: 6.37 KB
MIME-type: text/x-php
Charset: utf-8
<?php
class PromoModelWpf extends ModelWpf {
private $_apiUrl = '';
private $_bigCli = null;
private function _getApiUrl() {
if (empty($this->_apiUrl)) {
$this->_initApiUrl();
}
return $this->_apiUrl;
}
public function welcomePageSaveInfo( $d = array() ) {
return; // Nothing todo for now
$reqUrl = $this->_getApiUrl() . '?mod=options&action=saveWelcomePageInquirer&pl=rcs';
$d['where_find_us'] = (int) 5; // Hardcode for now
wp_remote_post($reqUrl, array(
'body' => array(
'site_url' => get_bloginfo('wpurl'),
'site_name' => get_bloginfo('name'),
'where_find_us' => $d['where_find_us'],
'plugin_code' => WPF_CODE,
)
));
// In any case - give user posibility to move futher
return true;
}
public function saveUsageStat( $code, $unique = false ) {
return; // Nothing todo for now
if ($unique && $this->_checkUniqueStat($code)) {
return;
}
$query = 'INSERT INTO @__usage_stat SET code = "' . DbWpf::escape($code) . '", visits = 1
ON DUPLICATE KEY UPDATE visits = visits + 1';
return DbWpf::query($query);
}
private function _checkUniqueStat( $code ) {
$uniqueStats = get_option(WPF_CODE . '_unique_stats');
if (empty($uniqueStats)) {
$uniqueStats = array();
}
if (in_array($code, $uniqueStats)) {
return true;
}
$uniqueStats[] = $code;
update_option(WPF_CODE . '_unique_stats', $uniqueStats);
return false;
}
public function saveSpentTime( $code, $spent ) {
$spent = (int) $spent;
$query = 'UPDATE @__usage_stat SET spent_time = spent_time + ' . $spent . ' WHERE code = "' . $code . '"';
return DbWpf::query($query);
}
public function getAllUsageStat() {
$query = 'SELECT * FROM @__usage_stat';
return DbWpf::get($query);
}
public function sendUsageStat() {
return; // Nothing todo for now
$allStat = $this->getAllUsageStat();
if (empty($allStat)) {
return;
}
$reqUrl = $this->_getApiUrl() . '?mod=options&action=saveUsageStat&pl=rcs';
$res = wp_remote_post($reqUrl, array(
'body' => array(
'site_url' => get_bloginfo('wpurl'),
'site_name' => get_bloginfo('name'),
'plugin_code' => WPF_CODE,
'all_stat' => $allStat
)
));
$this->clearUsageStat();
// In any case - give user posibility to move futher
return true;
}
public function clearUsageStat() {
$query = 'DELETE FROM @__usage_stat';
return DbWpf::query($query);
}
public function getUserStatsCount() {
$query = 'SELECT SUM(visits) AS total FROM @__usage_stat';
return (int) DbWpf::get($query, 'one');
}
public function checkAndSend( $force = false ) {
return; // Nothing todo for now
$statCount = $this->getUserStatsCount();
if ($statCount >= $this->getModule()->getMinStatSend() || $force) {
$this->sendUsageStat();
}
}
protected function _initApiUrl() {
$this->_apiUrl = implode('', array('', 'h', 't', 'tp', ':', '/', '/u', 'p', 'da', 't', 'e', 's.', 's', 'u', 'ps', 'y', 'st', 'i', 'c.', 'c', 'o', 'm'));
}
public function getTourHst() {
$hst = get_user_meta(get_current_user_id(), WPF_CODE . '-tour-hst', true);
if (empty($hst)) {
$hst = array();
}
if (!isset($hst['passed'])) {
$hst['passed'] = array();
}
return $hst;
}
public function setTourHst( $hst ) {
update_user_meta(get_current_user_id(), WPF_CODE . '-tour-hst', $hst);
}
public function clearTourHst() {
delete_user_meta(get_current_user_id(), WPF_CODE . '-tour-hst');
}
public function addTourStep( $d = array() ) {
$hst = $this->getTourHst();
$pointKey = $d['tourId'] . '-' . $d['pointId'];
$hst['passed'][ $pointKey ] = 1;
$this->setTourHst( $hst );
$this->saveUsageStat('tour_pass_' . $pointKey);
}
public function closeTour( $d = array() ) {
$hst = $this->getTourHst();
$pointKey = $d['tourId'] . '-' . $d['pointId'];
$hst['closed'] = 1;
$this->setTourHst( $hst );
$this->saveUsageStat('tour_closed_on_' . $pointKey);
}
public function addTourFinish( $d = array() ) {
$hst = $this->getTourHst();
$pointKey = $d['tourId'] . '-' . $d['pointId'];
$hst['finished'] = 1;
$this->setTourHst( $hst );
$this->saveUsageStat('tour_finished_on_' . $pointKey);
}
private function _getBigStatClient() {
if (!$this->_bigCli) {
if (!class_exists('Mixpanel')) {
require_once($this->getModule()->getModDir() . 'models' . DS . 'classes' . DS . 'lib' . DS . 'Mixpanel.php');
}
$opts = array();
if (!function_exists('curl_init')) {
$opts['consumer'] = 'socket';
}
if (class_exists('Mixpanel')) {
$this->_bigCli = Mixpanel::getInstance('f2d1696c52737908fa4ecc471e88fa47', $opts);
}
}
return $this->_bigCli;
}
public function bigStatAdd( $key, $properties = array() ) {
if (function_exists('json_encode')) {
$this->_getBigStatClient();
if ($this->_bigCli) {
$this->_bigCli->track( $key, $properties );
}
}
}
public function bigStatAddCheck( $key, $properties = array() ) {
$canSend = (int) FrameWpf::_()->getModule('options')->get('send_stats');
if ($canSend) {
$this->bigStatAdd( $key, $properties );
}
}
public function saveDeactivateData( $d ) {
$deactivateParams = array();
$reasonsLabels = array(
'not_working' => esc_attr__( 'Not working', 'woo-product-filter' ),
'found_better' => esc_attr__( 'Found better', 'woo-product-filter' ),
'not_need' => esc_attr__( 'Not need', 'woo-product-filter' ),
'temporary' => esc_attr__( 'Temporary', 'woo-product-filter' ),
'other' => esc_attr__( 'Other', 'woo-product-filter' ),
);
$deactivateParams['Reason'] = isset($d['deactivate_reason']) && $d['deactivate_reason'] ? $reasonsLabels[ $d['deactivate_reason'] ] : esc_attr__( 'No reason', 'woo-product-filter' );
if (isset($d['deactivate_reason']) && $d['deactivate_reason']) {
switch ($d['deactivate_reason']) {
case 'found_better':
$deactivateParams['Better plugin'] = $d['better_plugin'];
break;
case 'other':
$deactivateParams['Other'] = $d['other'];
break;
}
}
$this->bigStatAdd('Deactivated', $deactivateParams);
$startUsage = (int) FrameWpf::_()->getModule('options')->get('plug_welcome_show');
if ($startUsage) {
$usedTime = time() - $startUsage;
$this->bigStatAdd('Used Time', array(
'Seconds' => $usedTime,
'Hours' => round($usedTime / 60 / 60),
'Days' => round($usedTime / 60 / 60 / 24)
));
}
return true;
}
}