function counterize_check_send_report() { $options = get_option('counterize_options'); if (!empty($options['enableemailreports']) && $options['enableemailreports'] > 0 && (!empty($options['reportperiod']) && $options['reportperiod'] != 'never')) { if (!isset($options['next_report_timestamp'])) { counterize_set_option('next_report_timestamp', 0); } $timestamp = $options['next_report_timestamp']; $now = time(); if ($timestamp <= $now) { counterize_update_next_report_date(); counterize_send_report_by_email(); } } }
function counterize_options_validate_callback($input) { //load the current options $newinput = get_option('counterize_options'); if (isset($input['amount'])) { $newinput['amount'] = intval(trim($input['amount'])); if (!preg_match('/^[0-9]+$/i', $input['amount'])) { $newinput['amount'] = 50; } } if (isset($input['amount2'])) { $newinput['amount2'] = intval(trim($input['amount2'])); if (!preg_match('/^[0-9]+$/i', $input['amount2'])) { $newinput['amount2'] = 50; } } if (isset($input['maxwidth'])) { $newinput['maxwidth'] = intval(trim($input['maxwidth'])); if (!preg_match('/^[0-9]+$/i', $input['maxwidth'])) { $newinput['maxwidth'] = 50; } } if (isset($input['display_dashboard_capability'])) { global $wp_roles; $current_user = wp_get_current_user(); $current_user->get_role_caps(); $capabilities = $current_user->allcaps; foreach ($capabilities as $cap => $whatever) { if ($input['display_dashboard_capability'] == $cap) { $newinput['display_dashboard_capability'] = $input['display_dashboard_capability']; } } } if (isset($input['excludedusers'])) { $newinput['excludedusers'] = implode(',', $input['excludedusers']); } else { $newinput['excludedusers'] = ''; } //ip exclusion list $target_ip_array = array(); if (isset($input['excludedip'])) { $input_ip_array = explode(',', str_replace(' ', '', trim($input['excludedip']))); foreach ($input_ip_array as $ip) { if (preg_match('/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/', $ip)) { $target_ip_array[] = $ip; } } unset($input_ip_array); } $newinput['excludedip'] = implode(',', $target_ip_array); if (isset($input['logbots'])) { $newinput['logbots'] = intval(trim($input['logbots'])); if (!preg_match('/^(0|1)+$/i', $input['logbots'])) { $newinput['logbots'] = 0; } } else { $newinput['logbots'] = 0; } if (isset($input['whois'])) { $newinput['whois'] = trim($input['whois']); if (!preg_match('#^http[a-zA-Z0-9-\\?\\.=_:;/]+$#i', $newinput['whois'])) { $newinput['whois'] = 'http://www.ripe.net/whois?form_type=simple&searchtext='; } } if (isset($input['geoip'])) { $newinput['geoip'] = trim($input['geoip']); if (!preg_match('#^http[a-zA-Z0-9-\\?\\.=_:;/]+$#i', $newinput['geoip'])) { $newinput['geoip'] = 'http://whatismyipaddress.com/ip/'; } } if (isset($input['enableip'])) { $newinput['enableip'] = trim($input['enableip']); if (!preg_match('/^(0|1)+$/i', $newinput['enableip'])) { $newinput['enableip'] = 0; } } else { $newinput['enableip'] = 0; } if (isset($input['enable_hostname_lookup'])) { $newinput['enable_hostname_lookup'] = intval(trim($input['enable_hostname_lookup'])); if (!preg_match('/^(0|1)+$/i', $input['enable_hostname_lookup'])) { $newinput['enable_hostname_lookup'] = 0; } } else { $newinput['enable_hostname_lookup'] = 0; } if (isset($input['flushdb'])) { if ($input['flushdb'] == 'wantflushdb') { counterize_flush(); $_SESSION['counterize_flusheddb'] = 'flushed'; } } $newinput['flushdb'] = ''; if (isset($input['refreshua'])) { if ($input['refreshua'] == 'wantrefreshua') { counterize_update_all_userAgents(); $_SESSION['counterize_refreshedua'] = 'refreshed'; } } $newinput['refreshua'] = ''; if (isset($input['deletebots'])) { if ($input['deletebots'] == 'wantdeletebots') { //counterize_delete_bots(); counterize_delete_bots_new(); $_SESSION['counterize_deletedbots'] = 'deleted'; } } $newinput['deletebots'] = ''; /* * Email report section */ //recipient list textarea $target_recipient_array = array(); if (isset($input['recipientlist'])) { $input_recipient_array = explode(',', str_replace(' ', '', trim($input['recipientlist']))); foreach ($input_recipient_array as $recipient) { $target_recipient_array[] = $recipient; } unset($input_recipient_array); } $newinput['recipientlist'] = implode(',', $target_recipient_array); //report period radio if (isset($input['reportperiod'])) { $newinput['reportperiod'] = trim($input['reportperiod']); if (!preg_match('/^(never|daily|weekly|15days|monthly|3months|custom)$/i', $input['reportperiod'])) { $newinput['reportperiod'] = 'never'; } } else { $newinput['reportperiod'] = 'never'; } //custom period input if (isset($input['customperiod'])) { $newinput['customperiod'] = intval(trim($input['customperiod'])); if (!preg_match('/^[0-9]+$/i', $input['customperiod'])) { $newinput['customperiod'] = 0; } } else { $newinput['customperiod'] = 0; } //mail subject override input if (isset($input['mailsubjectoverride'])) { $newinput['mailsubjectoverride'] = trim($input['mailsubjectoverride']); if (empty($newinput['mailsubjectoverride'])) { $newinput['mailsubjectoverride'] = ''; } } else { $newinput['customperiod'] = ''; } if (isset($input['reportwhat'])) { $newinput['reportwhat'] = implode(',', $input['reportwhat']); } else { $newinput['reportwhat'] = ''; } if (isset($input['sendreportnow'])) { if ($input['sendreportnow'] == 'wantsendreportnow') { if (counterize_send_report_by_email($newinput)) { $_SESSION['counterize_report_status'] = 'sent'; } else { $_SESSION['counterize_report_status'] = 'error'; } } } $newinput['sendreportnow'] = ''; //enable checkbox if (isset($input['enableemailreports'])) { $newinput['enableemailreports'] = intval(trim($input['enableemailreports'])); if (!preg_match('/^(0|1){1}$/i', $input['enableemailreports'])) { $newinput['enableemailreports'] = 0; } else { $newinput = counterize_update_next_report_date($newinput, $newinput['reportperiod'], $newinput['customperiod']); } } else { $newinput['enableemailreports'] = 0; } return $newinput; }