Current Path : /storage/v11800/affypharma/public_html/wp-content/plugins/ninja-tables/app/Modules/Lead/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/affypharma/public_html/wp-content/plugins/ninja-tables/app/Modules/Lead/LeadOptIn.php |
<?php
namespace NinjaTables\App\Modules\Lead;
class LeadOptIn
{
private $apiUrl = 'https://wpmanageninja.com/?wpmn_api=product_users';
private $options;
private $dismissTime = 2592000; // 30 days
public function __construct($optionArray)
{
$this->options = $optionArray;
}
/**
* Check If User already consent. If consented then don't show
* Or If user dismissed then check if $this->dismissTime is over.
* If within the time then don't show
* Otherwise we can show this message
* @return bool
*/
public function noticeable()
{
$optStatus = $this->optStatus();
if ($optStatus == 'yes' || $optStatus == 'no') {
return false;
}
// check if user dismissed
$dismissTime = $this->getValue('lead_optin_dismiss');
if ($dismissTime && (time() - intval($dismissTime) < $this->dismissTime)) {
return false;
}
return true;
}
public function isAccepted()
{
return $this->optStatus() == 'yes';
}
public function optStatus()
{
return $this->getValue('lead_optin_status');
}
private function getValue($key)
{
if (isset($this->options[$key])) {
return $this->options[$key];
}
return false;
}
public function getNotice()
{
return 'We made a few tweaks to the plugin, <a href="#">Opt in to make <b>"Ninja Tables" Better!</b></a>';
}
public function subscribe()
{
$currentUser = wp_get_current_user();
$data = array(
'first_name' => $currentUser->first_name,
'last_name' => $currentUser->last_name,
'display_name' => $currentUser->display_name,
'email' => $currentUser->user_email,
'site_url' => site_url(),
'request_from' => $this->get_request_from(),
'plugins' => $this->getPluginsInfo(),
'ninja_doing_action' => 'activate'
);
wp_remote_post($this->apiUrl, array(
'method' => 'POST',
'sslverify' => false,
'body' => $data
));
}
// Function to get the client IP address
public function get_request_from()
{
$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipaddress = sanitize_text_field($_SERVER['HTTP_CLIENT_IP']);
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipaddress = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif (isset($_SERVER['HTTP_X_FORWARDED'])) {
$ipaddress = sanitize_text_field($_SERVER['HTTP_X_FORWARDED']);
} elseif (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$ipaddress = sanitize_text_field($_SERVER['HTTP_FORWARDED_FOR']);
} elseif (isset($_SERVER['HTTP_FORWARDED'])) {
$ipaddress = sanitize_text_field($_SERVER['HTTP_FORWARDED']);
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ipaddress = sanitize_text_field($_SERVER['REMOTE_ADDR']);
} else {
$ipaddress = 'UNKNOWN';
}
return $ipaddress;
}
private function getPluginsInfo()
{
$activePlugins = get_option('active_plugins', array());
$inActivePlugins = array();
$all_plugins = get_plugins();
foreach ($all_plugins as $pluginName => $plugin) {
if ( ! in_array($pluginName, $activePlugins)) {
$inActivePlugins[] = $pluginName;
}
}
return array(
'actives' => $activePlugins,
'inactives' => $inActivePlugins
);
}
}