'Log handled - post_id = '.$post_id.' count = '.$love_count ) ) );
}
}
function essb_process_additional_ajax_requests() {
$subscribe_action = isset($_REQUEST['essb-malchimp-signup']) ? $_REQUEST['essb-malchimp-signup']: '';
if ($subscribe_action == '1') {
if (!class_exists('ESSBNetworks_SubscribeActions')) {
include_once (ESSB3_PLUGIN_ROOT . 'lib/networks/essb-subscribe-actions.php');
}
ESSBNetworks_SubscribeActions::process_subscribe();
die();
}
if (defined('ESSB3_CACHED_COUNTERS')) {
if (ESSBGlobalSettings::$cached_counters_cache_mode) {
if (isset($_REQUEST['essb_counter_cache']) && $_REQUEST['essb_counter_cache'] == 'rebuild') {
$share_details = essb_get_post_share_details('');
$share_details['full_url'] = $share_details['url'];
$networks = essb_option_value('networks');
$result = ESSBCachedCounters::get_counters(get_the_ID(), $share_details, $networks);
echo json_encode($result);
die();
}
}
$full_counter_update = isset($_REQUEST['essb_clear_cached_counters']) ? $_REQUEST['essb_clear_cached_counters'] : '';
if ($full_counter_update == 'true') {
delete_post_meta_by_key('essb_cache_expire');
}
$full_history_clear = isset($_REQUEST['essb_clear_counters_history']) ? $_REQUEST['essb_clear_counters_history'] : '';
if ($full_history_clear == 'true') {
delete_post_meta(get_the_ID(), 'essb_cache_expire');
$networks = essb_available_social_networks();
foreach ($networks as $key => $data) {
delete_post_meta(get_the_ID(), 'essb_c_'.$key);
}
}
}
$current_action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
if ($current_action == "essb_counts") {
define('DOING_AJAX', true);
send_nosniff_header();
header('content-type: application/json');
header('Cache-Control: no-cache');
header('Pragma: no-cache');
if(is_user_logged_in())
do_action('wp_ajax_essb_counts');
else
do_action('wp_ajax_nopriv_essb_counts');
exit;
}
$sharing_thankyou = isset($_REQUEST['sharing-thankyou']) ? $_REQUEST['sharing-thankyou'] : '';
if ($sharing_thankyou == 'yes') {
send_nosniff_header();
header('Cache-Control: no-cache');
header('Pragma: no-cache');
echo '
Sharing Success!
Thank you for sharing!
';
die();
}
}
function essb_actions_update_facebook_count() {
$post_id = $_POST['post_id'];
$count = $_POST['count'];
$past_shares = intval(get_post_meta($post_id, 'essb_c_facebook', true));
if ( $count > $past_shares || essb_option_bool_value('cache_counter_force') ) {
delete_post_meta( $post_id, 'essb_c_facebook' );
update_post_meta( $post_id, 'essb_c_facebook', $count );
}
echo json_encode(array('network' => 'facebook', 'past_shares' => $past_shares, 'new_shares' => $count));
wp_die();
}
function essb_actions_update_pinterest_count() {
$post_id = $_POST['post_id'];
$count = $_POST['count'];
$past_shares = intval(get_post_meta($post_id, 'essb_c_pinterest', true));
if ( $count > $past_shares || essb_option_bool_value('cache_counter_force') ) {
delete_post_meta( $post_id, 'essb_c_pinterest' );
update_post_meta( $post_id, 'essb_c_pinterest', $count );
}
echo json_encode(array('network' => 'pinterest', 'past_shares' => $past_shares, 'new_shares' => $count));
wp_die();
}
function essb_actions_update_post_count() {
$post_id = isset($_POST["post_id"]) ? $_POST["post_id"] : '';
$service_id = isset($_POST["service"]) ? $_POST["service"] : '';
$post_id = sanitize_text_field($post_id);
$service_id = sanitize_text_field($service_id);
$post_id = intval($post_id);
if ($service_id == "print_friendly") {
$service_id = "print";
}
$current_value = get_post_meta($post_id, 'essb_pc_'.$service_id, true);
$current_value = intval($current_value) + 1;
update_post_meta ( $post_id, 'essb_pc_'.$service_id, $current_value );
// since 5.6
if (essb_is_internal_counted($service_id)) {
delete_post_meta( $post_id, 'essb_c_'.$service_id );
update_post_meta( $post_id, 'essb_c_'.$service_id, $current_value );
}
// @since 3.6
// adding custom hook to execute when click on share buttons
// @revision 5.6 - adding to event as a parameter the shared post_id and network
$action_options = array('post_id' => $post_id, 'network' => $service_id);
do_action('essb_after_sharebutton_click', $action_options);
die(json_encode(array("post_id" => $post_id, "service" => $service_id, "current_value" => $current_value)));
}
function essb_actions_get_share_counts() {
$networks = isset($_REQUEST['nw']) ? $_REQUEST['nw'] : '';
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
$instance = isset($_REQUEST['instance']) ? $_REQUEST['instance'] : '';
$post = isset($_REQUEST['post']) ? $_REQUEST['post'] : '';
$networks = sanitize_text_field($networks);
header('content-type: application/json');
// check if cache is present
$is_active_cache = essb_option_bool_value('admin_ajax_cache');
$cache_ttl = intval(essb_option_value('admin_ajax_cache_time'));
if ($cache_ttl == 0) {
$cache_ttl = 600;
}
$list = explode(',', $networks);
$output = array();
$output['url'] = sanitize_text_field($url);
$output['instance'] = sanitize_text_field($instance);
$output['post'] = sanitize_text_field($post);
$output['network'] = $networks;
if (!class_exists('ESSBCounterHelper')) {
include_once (ESSB3_PLUGIN_ROOT . 'lib/core/essb-counters-helper.php');
}
foreach ($list as $nw) {
$transient_key = 'essb_'.$nw.'_'.$url;
$exist_in_cache = false;
if ($is_active_cache) {
$cached_value = get_transient($transient_key);
if ($cached_value) {
$output[$nw] = $cached_value;
$exist_in_cache = true;
}
}
if (!$exist_in_cache) {
$count = ESSBCountersHelper::get_shared_counter($nw, $url, $post);
$output[$nw] = $count;
if ($is_active_cache) {
delete_transient($transient_key);
set_transient( $transient_key, $count, $cache_ttl );
}
}
}
echo str_replace('\\/','/',json_encode($output));
die();
}
if (!function_exists('essb_actions_sendmail')) {
function essb_actions_sendmail() {
$exist_captcha = essb_option_value('mail_captcha_answer');
$mail_function_security = essb_option_value('mail_function_security');
$post_id = essb_object_value($_REQUEST, 'post_id');
$from = essb_object_value($_REQUEST, 'from');
$to = essb_object_value($_REQUEST, 'to');
$c = essb_object_value($_REQUEST, 'c');
$mail_salt = essb_object_value($_REQUEST, 'salt');
$cu = essb_object_value($_REQUEST, 'cu');
$post_id = sanitize_text_field($post_id);
$from = sanitize_email($from);
$to = sanitize_email($to);
$c = sanitize_text_field($c);
$mail_salt = sanitize_text_field($mail_salt);
$translate_mail_message_sent = essb_option_value('translate_mail_message_sent');
$translate_mail_message_invalid_captcha = essb_option_value('translate_mail_message_invalid_captcha');
$translate_mail_message_error_send = essb_option_value('translate_mail_message_error_send');
$translate_mail_message_error_mail = essb_option_value('translate_mail_message_error_mail');
$output = array("code" => "", "message" => "");
$valid = true;
if ($exist_captcha != '' && $exist_captcha != $c) {
$valid = false;
$output["code"] = "101";
$output["message"] = $translate_mail_message_invalid_captcha != '' ? $translate_mail_message_invalid_captcha : __("Invalid captcha code", "essb");
}
if (strlen($to) > 80) {
$valid = false;
$output["code"] = "102";
$output["message"] = translate_mail_message_error_mail != '' ? translate_mail_message_error_mail : __('Invalid recepient email', 'essb');
}
$mail_salt_check = get_option(ESSB3_MAIL_SALT);
if ($mail_function_security == 'level2') {
$mail_salt = "salt";
$mail_salt_check = "salt";
}
if ($mail_salt != $mail_salt_check) {
$valid = false;
$output["code"] = "103";
$output["message"] = __('Invalid security key provided', 'essb');
}
if (filter_var($from, FILTER_VALIDATE_EMAIL) === false) {
$valid = false;
$output["code"] = "104";
$output["message"] = __('Invalid sender email', 'essb');
}
if (filter_var($to, FILTER_VALIDATE_EMAIL) === false) {
$valid = false;
$output["code"] = "102";
$output["message"] = translate_mail_message_error_mail != '' ? translate_mail_message_error_mail : __('Invalid recepient email', 'essb');
}
if ($valid) {
$message_subject = essb_option_value('mail_subject');
$message_body = essb_option_value('mail_body');
$post = get_post($post_id);
$url = get_permalink($post_id);
$base_post_url = $url;
$site_url = get_site_url();
$base_site_url = $site_url;
$site_url = ''.$site_url.'';
$url = ''.$url.'';
$title = $post->post_title;
$image = essb_core_get_post_featured_image($post->ID);
$description = $post->post_excerpt;
if ($image != '') {
$image = '';
}
$parsed_address = parse_url($base_site_url);
$message_subject = preg_replace(array('#%%title%%#', '#%%siteurl%%#', '#%%permalink%%#', '#%%image%%#'), array($title, $base_site_url, $base_post_url, $image), $message_subject);
$message_body = preg_replace(array('#%%title%%#', '#%%siteurl%%#', '#%%permalink%%#', '#%%image%%#'), array($title, $site_url, $url, $image), $message_body);
if ($cu != '') {
$message_body .= $cu;
}
$copy_address = essb_option_value('mail_copyaddress');
$message_body = str_replace("\r\n", "
", $message_body);
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "Reply-to: ".$from;
//$headers[] = "From: ".$from." ';//admin_email
$headers[] = "From: ".$from.' <'.get_bloginfo('admin_email').'>';//admin_email
if ($copy_address != '') {
$headers[] = 'Bcc: '. $copy_address;
}
wp_mail($to, $message_subject, $message_body, $headers);
$output["code"] = "1";
$output["message"] = $translate_mail_message_sent != '' ? $translate_mail_message_sent : __("Message sent!", "essb");
}
echo str_replace('\\/','/',json_encode($output));
die();
}
}
function essb_is_internal_counted($network) {
$api_counters = array();
$api_counters[] = 'facebook';
if (essb_option_value('twitter_counters') != 'self') {
$api_counters[] = 'twitter';
}
$api_counters[] = 'pinterest';
$api_counters[] = 'vk';
$api_counters[] = 'reddit';
$api_counters[] = 'buffer';
$api_counters[] = 'ok';
$api_counters[] = 'mwp';
$api_counters[] = 'xing';
$api_counters[] = 'yummly';
if (in_array($network, $api_counters)) {
return false;
}
else {
return true;
}
}