File "overview.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woo-product-filter/modules/overview/models/overview.php
File size: 3.66 KB
MIME-type: text/x-php
Charset: utf-8
<?php
class OverviewModelWpf extends ModelWpf {
private $_apiUrl = '';
public function __construct() {
$this->_initApiUrl();
if (!$this->getFirstOverview()) {
update_option('_overview_' . WPF_CODE, time());
}
}
public function subscribe( $params ) {
$email = empty($params['email']) ? '' : $params['email'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->pushError(esc_html__('Invalid email format', 'woo-product-filter'));
return false;
}
$resData = $this->_req('subscribe', array(
'url' => WPF_SITE_URL,
'plugin_code' => 'woofilters',
'email' => $email,
'data' => $this->getPluginData()
));
if ($resData) {
update_option('_subscribe_' . WPF_CODE, time());
return true;
}
return false;
}
public function rating( $params ) {
$rate = empty($params['rate']) ? 0 : $params['rate'];
if (5 == $rate) {
update_option('_rating_' . WPF_CODE, time());
return true;
}
$email = empty($params['email']) ? '' : $params['email'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->pushError(esc_html__('Invalid email format', 'woo-product-filter'));
return false;
}
$problem = empty($params['problem']) ? '' : $params['problem'];
if (empty($problem) || strlen($problem) < 5) {
$this->pushError(esc_html__('Describe ideas and problems, please', 'woo-product-filter'));
return false;
}
$resData = $this->_req('rating', array(
'url' => WPF_SITE_URL,
'plugin_code' => 'woofilters',
'email' => $email,
'data' => array_merge(array(
'rate' => $rate,
'problem' => $problem
), $this->getPluginData())
));
if ($resData) {
update_option('_rating_' . WPF_CODE, time());
return true;
}
return false;
}
public function getFirstOverview() {
return (int) get_option('_overview_' . WPF_CODE);
}
public function isSubscribe() {
return (int) get_option('_subscribe_' . WPF_CODE);
}
public function isRating() {
return (int) get_option('_rating_' . WPF_CODE);
}
public function getPluginData() {
return array(
'license_type' => FrameWpf::_()->getModule('options')->get('license_type'),
'license_email' => FrameWpf::_()->getModule('options')->get('license_email'),
'license_key' => FrameWpf::_()->getModule('options')->get('license_key'),
'license_name' => FrameWpf::_()->getModule('options')->get('license_name')
);
}
public function overviewHttpRequestTimeout( $handle ) {
curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 30 );
curl_setopt( $handle, CURLOPT_TIMEOUT, 30 );
}
private function _req( $action, $data = array() ) {
add_filter('http_api_curl', array($this, 'overviewHttpRequestTimeout'), 100, 1);
$data = array_merge($data, array(
'mod' => 'feedback',
'pl' => 'lms',
'action' => $action,
));
$response = wp_remote_post($this->_apiUrl, array(
'body' => $data,
'timeout' => 30,
));
remove_filter('http_api_curl', array($this, 'overviewHttpRequestTimeout'));
if (!is_wp_error($response)) {
$resArr = UtilsWpf::jsonDecode($response['body']);
if ( isset($response['body']) && !empty($response['body']) && $resArr ) {
if (!$resArr['error']) {
return $resArr;
} else {
$this->pushError($resArr['errors']);
}
} else {
$this->pushError(esc_html__('There was a problem with sending request to our autentification server. Please try latter.', 'woo-product-filter'));
}
} else {
$this->pushError( $response->get_error_message() );
}
return false;
}
private function _initApiUrl() {
if (empty($this->_apiUrl)) {
$this->_apiUrl = 'https://' . WPF_WP_PLUGIN_URL . '/';
}
}
}