actions();
}
private function actions() {
add_action('anypopupDelete', array($this, 'anypopupDeleteAction'));
add_action('admin_notices', array($this, 'anypopupShowReviewNotice'));
add_action('network_admin_notices', array($this, 'anypopupShowReviewNotice'));
add_action('user_admin_notices', array($this, 'anypopupShowReviewNotice'));
}
public function anypopupDeleteAction($args) {
$extensionManagerObj = new ANYPOPUPExtensionManager();
$popupCount = get_option('ANYPOPUPMaxOpenCount');
$popupId = $args['popupId'];
if(is_array($popupCount) && isset($popupCount[$popupId])) {
unset($popupCount[$popupId]);
update_option('ANYPOPUPMaxOpenCount', $popupId);
}
$extensionManagerObj->deletePopupFromConnection($popupId);
$this->deletePopupFromAllPostTypes($popupId);
}
private function deletePopupFromAllPostTypes($popupId) {
$popupId = (int)$popupId;
$allPosts = get_option("ANYPOPUP_ALL_POSTS");
$popupKey = ANYPOPUPFunctions::getCurrentPopupIdFromOptions($popupId);
if(!$popupKey) {
unset($allPosts[$popupKey]);
update_option("ANYPOPUP_ALL_POSTS", $allPosts);
}
}
public function newYear()
{
$messageContent = ANYPOPUPFunctions::newYear();
echo $messageContent;
}
public function anypopupShowReviewNotice()
{
$this->newYear();
$messageContent = '';
$maxOpenPopupStatus = ANYPOPUPFunctions::shouldOpenForMaxOpenPopupMessage();
$shouldOpenForDays = ANYPOPUPFunctions::shouldOpenReviewPopupForDays();
if($maxOpenPopupStatus) {
$messageContent = ANYPOPUPFunctions::getMaxOpenPopupsMessage();
}
else if($shouldOpenForDays) {
$messageContent = ANYPOPUPFunctions::getMaxOpenDaysMessage();
}
if(empty($messageContent)) {
return $messageContent;
}
ob_start();
?>
prepare("select id from ".$wpdb->prefix."anypopup_subscribers where status=0 and subscriptionType = %s limit 1",$subscriptionType);
$result = $wpdb->get_row($sql, ARRAY_A);
$id = (int)$result['id'];
$getTotalSql = $wpdb->prepare("select count(*) from ".$wpdb->prefix."anypopup_subscribers where subscriptionType = %s ", $subscriptionType);
$totalSubscribers = $wpdb->get_var($getTotalSql);
/*Id = 0 when all emails status = 1*/
if($id == 0) {
/*Clear schedule hook*/
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8'."\r\n";
$successTotal = get_option("ANYPOPUP_NEWSLETTER_".$subscriptionType);
if(!$successTotal) {
$successTotal = 0;
}
$faildTotal = $totalSubscribers - $successTotal;
$emailMessageCustom = 'Your mail list '.$subscriptionType.' delivered successfully!
'.$successTotal.' of the '.$totalSubscribers.' emails succeeded, '.$faildTotal.' failed.
For more details, please download log file inside the plugin.
This email was generated via Any Popup plugin.';
$mailStatus = wp_mail($adminEmail, $subscriptionType.' list has been successfully delivered!', $emailMessageCustom, $headers);
delete_option("ANYPOPUP_NEWSLETTER_".$subscriptionType);
wp_clear_scheduled_hook("anypopupnewsletter_send_messages", array(json_encode($params)));
return;
}
else {
$getAllDataSql = $wpdb->prepare("select firstName,lastName,email from ".$wpdb->prefix."anypopup_subscribers where id>=$id and subscriptionType = %s limit $sendingLimit",$subscriptionType);
$allData = $wpdb->get_results($getAllDataSql, ARRAY_A);
}
/*Mail Headers*/
$blogInfo = get_bloginfo();
$headers = array(
'From: "'.$blogInfo.'" <'.$fromEmail.'>' ,
'MIME-Version: 1.0' ,
'Content-type: text/html; charset=iso-8859-1'
);
foreach ($allData as $data) {
$patternFirstName = '/\[First name]/';
$patternLastName = '/\[Last name]/';
$patternBlogName = '/\[Blog name]/';
$patternUserName = '/\[User name]/';
$replacementFirstName = $data['firstName'];
$replacementLastName = $data['lastName'];
$replacementBlogName = get_bloginfo("name");
$replacementUserName = wp_get_current_user()->user_login;
/*Replace First name and Last name form email message*/
$emailMessageCustom = preg_replace($patternFirstName, $replacementFirstName, $emailMessage);
$emailMessageCustom = preg_replace($patternLastName, $replacementLastName, $emailMessageCustom);
$emailMessageCustom = preg_replace($patternBlogName, $replacementBlogName, $emailMessageCustom);
$emailMessageCustom = preg_replace($patternUserName, $replacementUserName, $emailMessageCustom);
$emailMessageCustom = stripslashes($emailMessageCustom);
$mailStatus = wp_mail($data['email'], $mailSubject, $emailMessageCustom, $headers);
if(!$mailStatus) {
$errorLogSql = $wpdb->prepare('INSERT INTO '. $wpdb->prefix .'anypopup_subscription_error_log(`popupType`, `email`, `date`) VALUES (%s, %s, %s)', $subscriptionType, $data['email'], date('Y-m-d H:i'));
$wpdb->query($errorLogSql);
}
/*Sending status*/
$successCount = get_option("ANYPOPUP_NEWSLETTER_".$subscriptionType);
if(!$successCount) {
update_option("ANYPOPUP_NEWSLETTER_".$subscriptionType, 1);
}
else {
update_option("ANYPOPUP_NEWSLETTER_".$subscriptionType, ++$successCount);
}
}
/*Update all mails status which has been sent*/
$updateStatusQuery = $wpdb->prepare("UPDATE ". $wpdb->prefix ."anypopup_subscribers SET status=1 where id>=$id and subscriptionType = %s limit $sendingLimit",$subscriptionType);
$wpdb->query($updateStatusQuery);
}
add_action ('anypopupnewsletter_send_messages', 'anypopupnewslatter_repeat_function', 10, 1);