File manager - Edit - /home/aresglob/public_html/wp/wp-includes/images/smilies/ajax.php.tar
Back
home/aresglob/public_html/wp/wp-content/plugins/siteseo/main/ajax.php 0000644 00000046654 15103443663 0022060 0 ustar 00 <?php /* * SITESEO * https://siteseo.io * (c) SiteSEO Team */ namespace SiteSEO; if(!defined('ABSPATH')){ die('HACKING ATTEMPT!'); } class Ajax{ static function hooks(){ add_action('wp_ajax_siteseo_save_titles_meta_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_save_sitemap_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_save_indexing_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_save_advanced_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_save_social_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_save_analytics_toggle', '\SiteSEO\Ajax::save_toggle_state'); add_action('wp_ajax_siteseo_generate_bing_api_key', '\SiteSEO\Ajax::generate_bing_api_key'); add_action('wp_ajax_siteseo_url_submitter_submit', '\SiteSEO\Ajax::instant_indexing'); add_action('wp_ajax_siteseo_refresh_analysis', '\SiteSEO\Ajax::refresh_seo_analysis'); add_action('wp_ajax_siteseo_export_settings', '\SiteSEO\Ajax::export_settings'); add_action('wp_ajax_siteseo_import_settings', '\SiteSEO\Ajax::import_settings'); add_action('wp_ajax_siteseo_reset_settings', '\SiteSEO\Ajax::reset_settings'); add_action('wp_ajax_siteseo_migrate_seo', '\SiteSEO\Ajax::handle_import'); add_action('wp_ajax_siteseo_dismiss_intro', '\SiteSEO\Ajax::dismiss_intro'); add_action('wp_ajax_siteseo_save_universal_metabox', '\SiteSEO\Ajax::save_universal_metabox'); add_action('wp_ajax_siteseo_resolve_variables', '\SiteSEO\Ajax::resolve_variables'); add_action('wp_ajax_siteseo_clear_indexing_history', '\SiteSEO\Ajax::clear_indexing_history'); // Onboarding Actions add_action('wp_ajax_siteseo_save_onboarding_settings', '\SiteSEO\Ajax::save_onboarding_settings'); } static function handle_import(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!siteseo_user_can('manage_tools')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } $plugin = !empty($_POST['plugin']) ? sanitize_text_field(wp_unslash($_POST['plugin'])) : ''; switch($plugin){ case 'wordpress-seo': $result = \SiteSEO\Import::yoast_seo(); break; case 'all-in-one-seo-pack': $result = \SiteSEO\Import::aio_seo(); break; case 'autodescription': $result = \SiteSEO\Import::seo_framework(); break; case 'wp-seopress': $result = \SiteSEO\Import::seo_press(); break; case 'seo-by-rank-math': $result = \SiteSEO\Import::rank_math(); break; case 'slim-seo': $result = \SiteSEO\Import::slim_seo(); break; default: throw new Exception('Invalid plugin selected'); } if(empty($result)){ wp_send_json_error(['message' => __('Invalid plugin selected', 'siteseo')]); } update_option('siteseo_last_migration_log', $result['log'], false); wp_send_json_success(['message' => $result['message']]); } static function reset_settings(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!siteseo_user_can('manage_tools')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } $options = [ 'siteseo_toggle', 'siteseo_titles_option_name', 'siteseo_social_option_name', 'siteseo_advanced_option_name', 'siteseo_instant_indexing_option_name', 'siteseo_xml_sitemap_option_name', 'siteseo_google_analytics_option_name', 'siteseo_dismiss_intro', 'siteseo_pro_options' ]; foreach($options as $option){ delete_option($option); } wp_send_json_success(['message' => esc_html__('Settings reset successfully.', 'siteseo')]); } static function import_settings(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!siteseo_user_can('manage_tools')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } if(!isset($_FILES['import_file'])){ wp_send_json_error(array('message' => 'No file was uploaded.')); } // If name or tmp path is not available return if(empty($_FILES['import_file']['name']) || empty($_FILES['import_file']['tmp_name'])){ wp_send_json_error(array('message' => 'No file was uploaded.')); } $imported_file = $_FILES['import_file']['tmp_name']; $filename = sanitize_file_name($_FILES['import_file']['name']); $file_extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); // Verify file exists and is readable if(!file_exists($imported_file) || !is_readable($imported_file) || !is_uploaded_file($imported_file)){ wp_send_json_error(array('message' => __('Uploaded file is not readable.', 'siteseo'))); } // Making sure is the correct file format if($file_extension !== 'json') { wp_send_json_error(array('message' => __('Invalid file type. Please upload a JSON file.', 'siteseo'))); } $file_contents = file_get_contents($imported_file); $settings = json_decode($file_contents, true); if(json_last_error() !== JSON_ERROR_NONE){ wp_send_json_error(array('message' => __('Invalid JSON file.', 'siteseo'))); } if(empty($settings) || !is_array($settings)){ wp_send_json_error(array('message' => __('Invalid settings format.', 'siteseo'))); } $settings = map_deep(wp_unslash($settings), 'sanitize_textarea_field'); if(isset($settings['siteseo_titles_option_name'])){ update_option('siteseo_titles_option_name', $settings['siteseo_titles_option_name']); } if(isset($settings['siteseo_social_option_name'])){ update_option('siteseo_social_option_name', $settings['siteseo_social_option_name']); } if(isset($settings['siteseo_xml_sitemap_option_name'])){ update_option('siteseo_xml_sitemap_option_name', $settings['siteseo_xml_sitemap_option_name']); } if(isset($settings['siteseo_toggle'])){ update_option('siteseo_toggle', $settings['siteseo_toggle']); } if(isset($settings['siteseo_advanced_option_name'])){ update_option('siteseo_advanced_option_name', $settings['siteseo_advanced_option_name']); } if(isset($settings['siteseo_instant_indexing_option_name'])){ update_option('siteseo_instant_indexing_option_name', $settings['siteseo_instant_indexing_option_name']); } if(isset($settings['siteseo_google_analytics_option_name'])){ update_option('siteseo_google_analytics_option_name', $settings['siteseo_google_analytics_option_name']); } // Pro if(isset($settings['siteseo_pro_options'])){ update_option('siteseo_pro_options', $settings['siteseo_pro_options']); } wp_send_json_success(['message' => esc_html__('Settings imported successfully.', 'siteseo')]); } static function export_settings(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!siteseo_user_can('manage_tools')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } $export_data = array( 'siteseo_titles_option_name' => get_option('siteseo_titles_option_name'), 'siteseo_social_option_name' => get_option('siteseo_social_option_name'), 'siteseo_xml_sitemap_option_name' => get_option('siteseo_xml_sitemap_option_name'), 'siteseo_toggle' => get_option('siteseo_toggle'), 'siteseo_google_analytics_option_name' => get_option('siteseo_google_analytics_option_name'), 'siteseo_instant_indexing_option_name' => get_option('siteseo_instant_indexing_option_name'), 'siteseo_advanced_option_name' => get_option('siteseo_advanced_option_name'), 'siteseo_pro_options' =>get_option('siteseo_pro_options'), ); $file_name = 'siteseo-settings-export-' . current_time('m-d-Y') . '.json'; header('Content-Type: application/json'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); header('Cache-Control: no-cache, no-store, must-revalidate'); header('Pragma: no-cache'); header('Expires: 0'); echo wp_json_encode($export_data); exit; } static function refresh_seo_analysis(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!current_user_can('siteseo_manage')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } $post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0; $post_type = isset($_POST['post_type']) ? sanitize_text_field(wp_unslash($_POST['post_type'])) : ''; $target_keywords = isset($_POST['target_keywords']) ? sanitize_text_field(wp_unslash($_POST['target_keywords'])) : ''; $post = get_post($post_id); if(!$post || !current_user_can('edit_post', $post_id)){ wp_send_json_error(['message' => __('Invalid post or insufficient permissions', 'siteseo')]); } update_post_meta($post_id, '_siteseo_analysis_target_kw', $target_keywords); $analysis_data = \SiteSEO\Metaboxes\Analysis::perform_seo_analysis($post); update_post_meta($post_id, '_siteseo_analysis_data', $analysis_data); ob_start(); \SiteSEO\Metaboxes\Analysis::display_seo_analysis($post); $analysis_html = ob_get_clean(); wp_send_json_success([ 'html' => $analysis_html, 'analysis_data' => $analysis_data ]); } static function instant_indexing(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!siteseo_user_can('manage_instant_indexing')){ wp_send_json_error(['message' => esc_html__('Insufficient permissions', 'siteseo')]); } // Validate input if(!isset($_POST['search_engine'], $_POST['urls'])){ wp_send_json_error(['message' => esc_html__('Missing required parameters', 'siteseo')]); } $urls = sanitize_textarea_field(wp_unslash($_POST['urls'])); $options = get_option('siteseo_instant_indexing_option_name'); $google_api_key = isset($options['instant_indexing_google_api_key']) ? $options['instant_indexing_google_api_key'] : ''; $bing_api_key = isset($options['instant_indexing_bing_api_key']) ? $options['instant_indexing_bing_api_key'] : ''; $url_list = array_filter(array_map('trim', explode("\n", $urls))); if(empty($url_list)){ wp_send_json_error(['message' => 'No valid URLs provided']); } $response = []; try{ if(!empty($options['engines']['google']) && !empty($google_api_key)){ $response['google'] = \SiteSEO\InstantIndexing::submit_urls_to_google($url_list); } if(!empty($options['engines']['bing']) && !empty($bing_api_key)){ $response['bing'] = \SiteSEO\InstantIndexing::submit_urls_to_bing($url_list, $bing_api_key); } if(empty($response)){ wp_send_json_error(['message' => 'No search engines configured or missing API keys']); } \SiteSEO\InstantIndexing::save_index_history($url_list, $response['google'] ?? null, $response['bing'] ?? null); wp_send_json_success([ 'message' => 'URLs submitted successfully', 'details' => $response ]); } catch(\Exception $e){ wp_send_json_error(['message' => $e->getMessage()]); } } static function generate_bing_api_key(){ if(!check_ajax_referer('siteseo_admin_nonce', 'nonce', false)){ wp_send_json_error('Invalid nonce'); return; } $lowercase = range('a', 'z'); $uppercase = range('A', 'Z'); $numbers = range('0', '9'); $dash = ['-']; $characters = array_merge($lowercase, $uppercase, $numbers, $dash); $characters_length = count($characters); $length = 32; $api_key = ''; for($i = 0; $i < $length; $i++){ $api_key .= $characters[random_int(0, $characters_length - 1)]; } wp_send_json_success(['api_key' => $api_key]); } static function save_toggle_state(){ check_ajax_referer('siteseo_toggle_nonce', 'nonce'); $action = isset($_POST['action']) ? sanitize_text_field(wp_unslash($_POST['action'])) : ''; switch($action){ case 'siteseo_save_titles_meta_toggle': $toggle_key = 'toggle-titles'; break; case 'siteseo_save_sitemap_toggle': $toggle_key = 'toggle-xml-sitemap'; break; case 'siteseo_save_indexing_toggle': $toggle_key = 'toggle-instant-indexing'; break; case 'siteseo_save_advanced_toggle': $toggle_key = 'toggle-advanced'; break; case 'siteseo_save_social_toggle': $toggle_key = 'toggle-social'; break; case 'siteseo_save_analytics_toggle': $toggle_key = 'toggle-google-analytics'; break; default: wp_send_json_error(['message' => __('Invalid action', 'siteseo')]); return; } $toggle_value = isset($_POST['toggle_value']) ? sanitize_text_field(wp_unslash($_POST['toggle_value'])) : '0'; $options = get_option('siteseo_toggle', []); $options[$toggle_key] = $toggle_value; $updated = update_option('siteseo_toggle', $options); if($updated){ wp_send_json_success([ 'message' => ucfirst($toggle_key) . ' toggle state saved successfully', 'value' => $toggle_value ]); } wp_send_json_error(['message' => __('Failed to save toggle state', 'siteseo')]); } static function save_onboarding_settings(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo')); } if(empty($_POST['step'])){ wp_send_json_error(['message' => __('Could not figure out the current step', 'siteseo')]); } $step_name = !empty($_POST['step']) ? sanitize_text_field(wp_unslash($_POST['step'])) : ''; switch($step_name){ case 'your-site': $title_options = get_option('siteseo_titles_option_name', []); $social_options = get_option('siteseo_social_option_name', []); if(!empty($_POST['data']['website_name'])){ $title_options['titles_home_site_title'] = sanitize_text_field(wp_unslash($_POST['data']['website_name'])); } if(!empty($_POST['data']['alternate_site_name'])){ $title_options['titles_home_site_title_alt'] = sanitize_text_field(wp_unslash($_POST['data']['alternate_site_name'])); } if(!empty($_POST['data']['site_type'])){ $social_options['social_knowledge_type'] = sanitize_text_field(wp_unslash($_POST['data']['site_type'])); } if(!empty($_POST['data']['organization_name'])){ $social_options['social_knowledge_name'] = sanitize_text_field(wp_unslash($_POST['data']['organization_name'])); } if(!empty($_POST['data']['organization_logo'])){ $social_options['social_knowledge_img'] = sanitize_url(wp_unslash($_POST['data']['organization_logo'])); } if(!empty($_POST['data']['social_fb'])){ $social_options['social_accounts_facebook'] = sanitize_url(wp_unslash($_POST['data']['social_fb'])); } if(!empty($_POST['data']['social_x'])){ $social_options['social_accounts_twitter'] = sanitize_text_field(wp_unslash($_POST['data']['social_x'])); } if(!empty($_POST['data']['social_additional'])){ $social_options['social_accounts_additional'] = explode("\n", sanitize_textarea_field(wp_unslash($_POST['data']['social_additional']))); } update_option('siteseo_titles_option_name', $title_options); update_option('siteseo_social_option_name', $social_options); wp_send_json_success(); break; case 'indexing': if(empty($_POST['data'])){ break; } $data = map_deep(wp_unslash($_POST['data']), 'sanitize_text_field'); $site_status = !empty($data['site_status']) ? $data['site_status'] : ''; if(empty($site_status)){ wp_send_json_error(['message' => __('Request data did not reach the backend', 'siteseo')]); } $title_options = get_option('siteseo_titles_option_name', []); if($site_status == 'underconstruction'){ $title_options['titles_noindex'] = true; update_option('siteseo_titles_option_name', $title_options); wp_send_json_success(); } // Saving Post type indexing values if(!empty($data['post_types'])){ if(!is_array($data['post_types'])){ $data['post_types'] = [$data['post_types']]; } $post_types = get_post_types(['public' => true, 'show_ui' => true], 'objects', 'and'); unset($post_types['attachment']); foreach($post_types as $post){ if(in_array($post->name, $data['post_types'])){ $title_options['titles_single_titles'][$post->name]['noindex'] = $post->name; } } } // Saving Taxonomies indexing values if(!empty($data['taxonomies'])){ if(!is_array($data['taxonomies'])){ $data['taxonomies'] = [$data['taxonomies']]; } $taxonomies = get_taxonomies(['public' => true, 'show_ui' => true], 'objects', 'and'); foreach($taxonomies as $taxonomy){ if(in_array($taxonomy->name, $data['taxonomies'])){ $title_options['titles_tax_titles'][$taxonomy->name]['noindex'] = $taxonomy->name; } } } update_option('siteseo_titles_option_name', $title_options); wp_send_json_success(); break; case 'advanced': $data = map_deep(wp_unslash($_POST['data']), 'sanitize_text_field'); $advanced_options = get_option('siteseo_advanced_option_name'); $title_options = get_option('siteseo_titles_option_name', []); $title_options['titles_archives_author_noindex'] = isset($data['author_noindex']) ? $data['author_noindex'] : ''; $advanced_options['advanced_attachments_file'] = isset($data['redirect_attachment']) ? $data['redirect_attachment'] : ''; $advanced_options['advanced_category_url'] = isset($data['category_url']) ? $data['category_url'] : ''; $advanced_options['appearance_universal_metabox_disable'] = isset($data['universal_seo_metabox']) ? '' : '1'; $advanced_options['appearance_universal_metabox'] = isset($data['universal_seo_metabox']) ? '1' : ''; update_option('siteseo_titles_option_name', $title_options); update_option('siteseo_advanced_option_name', $advanced_options); wp_send_json_success(); break; } } static function dismiss_intro(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!current_user_can('siteseo_manage')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo')); } update_option('siteseo_dismiss_intro', time()); } static function save_universal_metabox(){ check_ajax_referer('siteseo_universal_nonce', 'security'); if(!current_user_can('siteseo_manage') || !siteseo_user_can_metabox()){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo')); } if(empty($_POST['post_id'])){ wp_send_json_error(__('Post ID not found', 'siteseo')); } $post_id = sanitize_text_field(wp_unslash($_POST['post_id'])); $post = get_post($post_id); \SiteSEO\Metaboxes\Settings::save_metabox($post_id, $post); } static function resolve_variables(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!current_user_can('siteseo_manage')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo')); } if(empty($_POST['content']) || empty($_POST['post_id'])){ wp_send_json_error(__('The required content or ID is empty', 'siteseo')); } global $post, $wp_query; $post_id = (int) sanitize_text_field(wp_unslash($_POST['post_id'])); $content = sanitize_text_field(wp_unslash($_POST['content'])); $tmp_post = $post; $post = get_post($post_id); $replaced_content = \SiteSEO\TitlesMetas::replace_variables($content, true); $post = $tmp_post; wp_send_json_success($replaced_content); } static function clear_indexing_history(){ check_ajax_referer('siteseo_admin_nonce', 'nonce'); if(!current_user_can('siteseo_manage')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo')); } global $siteseo; $indexing_history = $siteseo->instant_settings; if(is_array($indexing_history) && isset($indexing_history['indexing_history'])){ unset($indexing_history['indexing_history']); update_option('siteseo_instant_indexing_option_name', $indexing_history); } wp_send_json_success(); } } home/aresglob/public_html/wp/wp-content/plugins/gosmtp-pro/main/ajax.php 0000644 00000023231 15103714737 0022501 0 ustar 00 <?php /* * GoSMTP * https://gosmtp.net * (c) Softaculous Team */ if(!defined('ABSPATH')){ die('Hacking Attempt!'); } add_action('wp_ajax_gosmtp_get_log', 'gosmtp_get_log'); function gosmtp_get_log(){ check_admin_referer( 'gosmtp_ajax' , 'gosmtp_nonce' ); $logger = new GOSMTP\Logger(); $id = gosmtp_optpost('id'); if(empty($id)){ $resp['error'] = __('Log ID Invalid!'); gosmtp_json_output($resp); } $mail_data = $logger->get_logs('records', $id); if(empty($mail_data)){ $resp['error'] = __('Records not found!'); gosmtp_json_output($resp); } $mail = $mail_data[0]; $tos = maybe_unserialize($mail->to); $attachments = maybe_unserialize($mail->attachments); $_attachments = array(); $to_list = array(); foreach($attachments as $key => $attachment){ $_attachments[] = array( 'Filename' => $attachment[1], 'Content-Transfer-Encoding' => $attachment[3], 'Content-Disposition' => $attachment[6], 'Content-Type' => $attachment[4] ); } $headers = maybe_unserialize($mail->headers); if(is_array($tos)){ foreach($tos as $key => $to){ $to_list[] = $to[0]; } }else{ $to_list[] = $tos; } $created_time = strtotime($mail->created_at); $created_at = date("M d, Y", $created_time).' at '. date('h:i A', $created_time); $backup_text = !empty($mail->parent_id) ? __('(Backup)') : ''; $tmp = array( 'id' => $mail->id, 'to' => implode(',', $to_list), 'from' => $mail->from, 'subject' => $mail->subject, 'source' => $mail->source, 'status' => $mail->status == 'sent' ? __('Sent') : __('Failed'), 'created' => $created_at, 'headers' => gosmtp_header_format($headers, 'array', true), 'attachments' => $_attachments, 'body' => $mail->body, 'provider' => !empty($mail->provider) ? ucfirst($mail->provider).' '.$backup_text : '', 'response' => maybe_unserialize($mail->response) ); $resp['response']['data'] = $tmp; gosmtp_json_output($resp); } add_action('wp_ajax_gosmtp_resend_mail','gosmtp_resend_mail'); function gosmtp_resend_mail(){ check_admin_referer( 'gosmtp_ajax' , 'gosmtp_nonce' ); $resp = array(); $id = gosmtp_optpost('id'); if(empty($id)){ $resp['error'] = __('Log ID Invalid!'); gosmtp_json_output($resp); } $mail_headers = array(); $id = (int)gosmtp_optpost('id'); $logger = new GOSMTP\Logger(); $response = $logger->get_logs('records', $id); if(!isset($response[0])){ $resp['error'] = __('Something Wents To Wrong!'); gosmtp_json_output($resp); } $response = $response[0]; $tos = maybe_unserialize($response->to); $subject = $response->subject; $attachments = maybe_unserialize($response->attachments); $_attachments = array(); $tos_list = array(); $body = $response->body; if(count($tos) > 0){ foreach($tos as $key => $to){ $tos_list[] = $to[0]; } } if(isset($_POST['recipient_email'])){ $tos_list = gosmtp_optpost('recipient_email'); } if(count($attachments) > 0){ foreach($attachments as $key => $attachment){ $_attachments[] = $attachment[0]; } } $headers = maybe_unserialize($response->headers); $headers = gosmtp_header_format($headers, 'text'); $result = wp_mail($tos_list, $subject, $body, $headers, $_attachments); if(!$result){ $resp['error'] = 'Unable to send mail!'; }else{ $resp['response'] = 'Message sent successfully!'; } gosmtp_json_output($resp); } add_action('wp_ajax_gosmtp_delete_log', 'gosmtp_delete_log'); function gosmtp_delete_log(){ check_admin_referer( 'gosmtp_ajax' , 'gosmtp_nonce' ); $resp = array(); $ids = gosmtp_optpost('id'); if(empty($ids)){ $resp['error'] = __('Log ID Invalid!'); gosmtp_json_output($resp); } $logger = new GOSMTP\Logger(); if(is_array($ids)){ foreach($ids as $k => $id){ $response = (int)$logger->delete_log($id); if(!empty($response)){ continue; } $resp['error'] = __('Some logs have not been removed for some reason!'); } }else{ $response = $logger->delete_log((int)$ids); } if(!empty($resp['error'])){ $resp['error'] = $resp['error']; gosmtp_json_output($resp); } if($response){ $resp['response'] = __('Log Removed Successfully!'); }else{ $resp['error'] = __('Unable to Remove logs for some reason!'); } gosmtp_json_output($resp); } // Miscellaneous function gosmtp_header_format($headers, $output = 'text', $replace_chars = false){ $heads = array(); if(empty($headers) || count($headers) < 1){ return $heads; } foreach($headers as $type => $header){ switch($output){ case 'text': $tmp_qry = $type.': '; if(is_array($header)){ foreach($header as $k => $vals){ $format = ($type != 'Reply-To' ? $vals[1].' <'.$vals[0].'>' : '<'.$vals[0].'>'); if($replace_chars){ $format = htmlspecialchars($format); } $tmp_qry .= $format; } $heads[] = $tmp_qry; }else{ $heads[] = $tmp_qry.' '.$header; } break; default: $tmp_qry = []; if(is_array($header)){ foreach($header as $k => $vals){ $format = ($type != 'Reply-To' ? $vals[1].' <'.$vals[0].'>' : '<'.$vals[0].'>'); if($replace_chars){ $format = htmlspecialchars($format); } $tmp_qry[] = $format; } $heads[$type] = $tmp_qry; }else{ $heads[$type] = $header; } } } return $heads; } add_action('wp_ajax_gosmtp_export_data', 'gosmtp_export_data'); function gosmtp_export_data(){ check_admin_referer( 'gosmtp_ajax' , 'gosmtp_nonce' ); $error = array(); if(!class_exists('GOSMTP\Logger')){ $error['error'] = __('logger class not found'); } if(!current_user_can('activate_plugins')){ $error['error'] = __('Permission Denied'); } if(!empty($error)){ $json_error = json_encode($error); header("x-error: $json_error"); wp_die(); } $common_info = gosmtp_optreq('common_information', array()); $addtional_info = gosmtp_optreq('addtional_information', array()); $export_key = explode(',', gosmtp_optreq('all_field')); if(!empty($_REQUEST['custom-field'])){ $export_key = array_merge($common_info, $addtional_info); } // Assign all data in option array $options = array( 'interval' => array( 'start' => gosmtp_optreq('start-date'), 'end' => gosmtp_optreq('end-date', date("Y-m-d")) ), 'search' => gosmtp_optreq('search'), 'multiselect' => gosmtp_optreq('search_type'), 'pagination' => false, ); $logger = new GOSMTP\Logger(); $email_logs = $logger->get_logs('records', 0, $options); $custom_data = array($export_key); if(empty($email_logs)){ $error['error'] = __('No Data Found'); $json_error = json_encode($error); header("x-error: $json_error"); wp_die(); } $export_data = []; foreach($email_logs as $val){ $temp_array = []; foreach($val as $inner_key => $inner_val){ $_data = maybe_unserialize($inner_val); if($inner_key == 'headers' && is_array($_data) ){ foreach($_data as $header_key => $header_val){ if(!in_array(strtolower($header_key), $export_key)){ continue; } if(is_array($header_val)){ $header_list = []; foreach($header_val as $header_inner_val){ $header_list[] = $header_inner_val[0]; } $header_val = implode(', ', $header_list); } $temp_array[array_search(strtolower($header_key), $export_key, true)] = $header_val; } continue; } if(!in_array($inner_key, $export_key)){ continue; } // Is array? if(is_array($_data)){ $unerialize_list = []; foreach($_data as $unserialize_keys => $unserialize_val){ switch ($inner_key) { case 'to': $unerialize_list[] = $unserialize_val[0]; break; case 'response': if($unserialize_keys == 'message'){ if(is_array($unserialize_val)){ $unserialize_val = implode(', ', $unserialize_val); } $unerialize_list[] = $unserialize_val; } break; case 'attachments': if(is_array($unserialize_val)){ $unserialize_val = implode('*', $unserialize_val); } $unerialize_list[] = $unserialize_val; break; default: $unerialize_list[] = $unserialize_val; } } $inner_val = implode(', ', $unerialize_list); } $temp_array[array_search($inner_key, $export_key, true)] = $inner_val; } ksort($temp_array); array_push($custom_data, $temp_array); } // Export format $func = 'gosmtp_export_'. gosmtp_optreq('format', 'csv'); include_once GOSMTP_PRO_DIR .'/main/export.php'; if(!function_exists($func) || !count($custom_data)>1){ $error['error'] = __('No Data Found Or '.$func.' function is not defined'); $json_error = json_encode($error); header("x-error: $json_error"); wp_die(); } $func($custom_data); wp_die(); } add_action('wp_ajax_gosmtp_pro_version_notice', 'gosmtp_pro_version_notice'); function gosmtp_pro_version_notice(){ check_admin_referer('gosmtp_version_notice', 'security'); if(!current_user_can('activate_plugins')){ wp_send_json_error(__('You do not have required access to do this action', 'gosmtp-pro')); } $type = ''; if(!empty($_REQUEST['type'])){ $type = sanitize_text_field(wp_unslash($_REQUEST['type'])); } if(empty($type)){ wp_send_json_error(__('Unknow version difference type', 'gosmtp-pro')); } update_option('gosmtp_version_'. $type .'_nag', time() + WEEK_IN_SECONDS); wp_send_json_success(); } add_action('wp_ajax_gosmtp_pro_dismiss_expired_licenses', 'gosmtp_pro_dismiss_expired_licenses'); function gosmtp_pro_dismiss_expired_licenses(){ check_admin_referer('gosmtp_expiry_notice', 'security'); if(!current_user_can('activate_plugins')){ wp_send_json_error(__('You do not have required access to do this action', 'gosmtp-pro')); } update_option('softaculous_expired_licenses', time()); wp_send_json_success(); } home/aresglob/public_html/wp/wp-content/plugins/siteseo-pro/main/ajax.php 0000644 00000032504 15104571051 0022635 0 ustar 00 <?php /* * SITESEO * https://siteseo.io * (c) SITSEO Team */ namespace SiteSEOPro; if(!defined('ABSPATH')){ die('HACKING ATTEMPT!'); } class Ajax{ static function hooks(){ add_action('wp_ajax_siteseo_pro_get_pagespeed_insights', '\SiteSEOPro\Ajax::get_pagespeed'); add_action('wp_ajax_siteseo_pro_pagespeed_insights_remove_results', '\SiteSEOPro\Ajax::delete_speed_scores'); //toogle option pro add_action('wp_ajax_siteseo_pro_save_woocommerce', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_edd', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_dublin', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_local', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_structured' , '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_404_monitoring', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_google_news', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_video_sitemap', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_save_rss_sitemap', '\SiteSEOPro\Ajax::save_toggle'); add_action('wp_ajax_siteseo_pro_update_htaccess', '\SiteSEOPro\Ajax::update_htaccess'); add_action('wp_ajax_siteseo_pro_update_robots', '\SiteSEOPro\Ajax::update_robots'); add_action('wp_ajax_siteseo_pro_export_redirect_csv', '\SiteSEOPro\Ajax::export_csv_redirect_logs'); add_action('wp_ajax_siteseo_pro_clear_all_logs', '\SiteSEOPro\Ajax::redirect_clear_all_logs'); add_action('wp_ajax_siteseo_pro_remove_selected_logs', '\SiteSEOPro\Ajax::delete_selected_log'); add_action('wp_ajax_siteseo_pro_delete_robots_txt', '\SiteSEOPro\Ajax::delete_robots_txt'); add_action('wp_ajax_siteseo_pro_version_notice', '\SiteSEOPro\Ajax::version_notice'); add_action('wp_ajax_siteseo_pro_dismiss_expired_licenses', '\SiteSEOPro\Ajax::dismiss_expired_licenses'); } static function save_toggle(){ check_ajax_referer('siteseo_pro_toggle_nonce', 'nonce'); $action = sanitize_text_field(wp_unslash($_POST['action'])); switch($action){ case 'siteseo_pro_save_woocommerce': $toggle_key = 'toggle_state_woocommerce'; break; case 'siteseo_pro_save_edd': $toggle_key = 'toggle_state_easy_digital'; break; case 'siteseo_pro_save_dublin': $toggle_key = 'toggle_state_dublin_core'; break; case 'siteseo_pro_save_local': $toggle_key = 'toggle_state_local_buz'; break; case 'siteseo_pro_save_structured': $toggle_key = 'toggle_state_stru_data'; break; case 'siteseo_pro_save_404_monitoring': $toggle_key = 'toggle_state_redirect_monitoring'; break; case 'siteseo_pro_save_google_news': $toggle_key = 'toggle_state_google_news'; break; case 'siteseo_pro_save_video_sitemap': $toggle_key = 'toggle_state_video_sitemap'; break; case 'siteseo_pro_save_rss_sitemap': $toggle_key = 'toogle_state_rss_sitemap'; break; default: wp_send_json_error(['message' => 'Invalid action']); return; } $toggle_value = isset($_POST['toggle_value']) ? sanitize_text_field(wp_unslash($_POST['toggle_value'])) : '0'; $options = get_option('siteseo_pro_options', []); $options[$toggle_key] = $toggle_value; if($toggle_key == 'toggle_state_redirect_monitoring'){ \SiteSEOPro\Settings\Util::maybe_create_404_table(); } $updated = update_option('siteseo_pro_options', $options); if($updated){ wp_send_json_success([ 'message' => ucfirst($toggle_key) . ' toggle state saved successfully', 'value' => $toggle_value ]); } else{ wp_send_json_error(['message' => 'Failed to save toggle state']); } } static function get_pagespeed(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have enough privilege to use this feature', 'siteseo-pro')); } global $siteseo; $api_url = 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed'; $api_key = $siteseo->pro['ps_api_key']; $site_url = isset($_POST['test_url']) ? sanitize_url($_POST['test_url']) : site_url(); if(empty($api_key)){ wp_send_json_error(__('You have not saved the API key', 'siteseo-pro')); } if(empty($site_url)){ wp_send_json_error(__('The URL you have provided is not valid', 'siteseo-pro')); } $device = (!empty($_REQUEST['is_mobile']) && $_REQUEST['is_mobile'] != 'false') ? 'mobile' : 'desktop'; $request_url = $api_url . '?url=' . urlencode($site_url) . '&strategy='.$device.'&key='.$api_key; $response = wp_remote_get($request_url, array('timeout' => 60)); // 60 sec wait time if(is_wp_error($response)){ $error_message = is_wp_error($response) ? $response->get_error_message() : $response->get_error_message(); wp_send_json_error($error_message); } $body = wp_remote_retrieve_body($response); if(empty($body)){ wp_send_json_error(__('Response body is empty', 'siteseo-pro')); } $result = json_decode($body, true); $page_speed = get_option('siteseo_pro_page_speed', []); // Handling Pagespeed insight result. foreach($result['lighthouseResult']['audits'] as $key => $audit){ if(isset($audit['title']) && isset($audit['description']) && !isset($audit['details']['type'])){ $page_speed[$device][$key] = [ 'id' => $audit['id'], 'score' => $audit['score'], 'title' => $audit['title'], 'description' => $audit['description'] ]; } if(isset($audit['details']['type']) && $audit['details']['type'] === 'opportunity'){ $page_speed[$device]['opportunities'][] = [ 'title' => $audit['title'], 'description' => $audit['description'], 'score' => isset($audit['score']) ? $audit['score'] : null ]; } if(!isset($page_speed[$device]['diagnostics'])){ $page_speed[$device]['diagnostics'] = []; } if(isset($audit['score']) && isset($audit['details']['type']) && $audit['score'] <= 0.89 && $audit['details']['type'] != 'opportunity'){ $page_speed[$device]['diagnostics'][] = [ 'title' => $audit['title'], 'description' => $audit['description'], 'score' => isset($audit['score']) ? $audit['score'] : null ]; } } $page_speed[$device]['fetchTime'] = $result['lighthouseResult']['fetchTime']; $page_speed[$device]['score'] = $result['lighthouseResult']['categories']['performance']['score']; update_option('siteseo_pro_page_speed', $page_speed); wp_send_json_success(); } static function delete_speed_scores(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have enough privilege to use this feature', 'siteseo-pro')); } delete_option('siteseo_pro_page_speed'); wp_send_json_success(); } static function update_htaccess(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo-pro')); } $htaccess_enable = isset($_POST['htaccess_enable']) ? intval(sanitize_text_field(wp_unslash($_POST['htaccess_enable']))) : 0; $htaccess_rules = isset($_POST['htaccess_code']) ? sanitize_textarea_field(wp_unslash($_POST['htaccess_code'])) : ''; if(empty($htaccess_enable)){ wp_send_json_error(__('Please accept the warning first before proceeding with saving the htaccess', 'siteseo-pro')); } $htaccess_file = ABSPATH . '.htaccess'; $backup_file = ABSPATH . '.htaccess_backup.siteseo'; if(!is_writable($htaccess_file)){ wp_send_json_error(__('.htaccess file is not writable so the ', 'siteseo-pro')); } // Backup .htaccess file if(!copy($htaccess_file, $backup_file)){ wp_send_json_error(__('Failed to create backup of .htaccess file.', 'siteseo-pro')); } // Update the .htaccess file if(file_put_contents($htaccess_file, $htaccess_rules) === false){ wp_send_json_error(__('Failed to update .htaccess file.', 'siteseo-pro')); } $response = wp_remote_get(site_url()); $response_code = wp_remote_retrieve_response_code($response); // Restore the backup if something goes wrong. if($response_code > 299){ copy($backup_file, $htaccess_file); wp_send_json_error(__('There was a syntax error in the htaccess rules you provided as the response to your website with the new htaccess gave response code of', 'siteseo-pro') . ' ' . $response_code); } wp_send_json_success(__('Successfully updated .htaccess file', 'siteseo-pro')); } static function update_robots(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo-pro')); } $robots_txt = ''; if(!empty($_POST['robots'])){ $robots_txt = sanitize_textarea_field(wp_unslash($_POST['robots'])); } // Updating the physical robots if(file_exists(ABSPATH . 'robots.txt')){ if(!is_writable(ABSPATH . 'robots.txt')){ wp_send_json_error(__('robots.txt file is not writable', 'siteseo-pro')); } if(file_put_contents(ABSPATH . 'robots.txt', $robots_txt)) { wp_send_json_success(__('Successfully updated the physical robots.txt file', 'siteseo-pro')); } wp_send_json_error(__('Unable to update the robots.txt file', 'siteseo-pro')); } // Updating option for virtual robots if(update_option('siteseo_pro_virtual_robots_txt', $robots_txt)) { wp_send_json_success(__('Successfully updated the virtual robots.txt rules', 'siteseo-pro')); } wp_send_json_error(__('Unable to update the virtual robots.txt rules', 'siteseo-pro')); } static function export_csv_redirect_logs(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission to edit this file.', 'siteseo-pro')); } $file_name = 'siteseo-redirect-data-' . current_time('Y-m-d') . '.csv'; global $wpdb; $results = $wpdb->get_results("SELECT url, ip_address, timestamp, user_agent, referer, hit_count FROM {$wpdb->prefix}siteseo_redirect_logs ORDER BY timestamp DESC", ARRAY_A); if(empty($results)){ wp_send_json_error('No data found'); exit; } header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $file_name . '"'); header('Pragma: no-cache'); header('Expires: 0'); $output = fopen('php://output', 'w'); // Add headers fputcsv($output, array('URL', 'IP Address', 'Timestamp', 'User Agent', 'Referer', 'Hit Count')); foreach($results as $row){ fputcsv($output, $row); } fclose($output); exit; } static function redirect_clear_all_logs(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have permission to clear logs.', 'siteseo-pro')); } global $wpdb; $table_name = $wpdb->prefix . "siteseo_redirect_logs"; $result = $wpdb->query("TRUNCATE TABLE $table_name"); if($result !== false){ wp_send_json_success(__('All logs have been cleared.', 'siteseo-pro')); } wp_send_json_error(__('Failed to clear logs.', 'siteseo-pro')); } static function delete_selected_log(){ global $wpdb; check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have permission to clear logs.', 'siteseo-pro')); } $selected_ids = isset($_POST['ids']) ? array_map('intval', $_POST['ids']) : array(); if(empty($selected_ids)){ wp_send_json_error('No logs selected'); return; } $placeholders = array_fill(0, count($selected_ids), '%d'); $placeholders_string = implode(',', $placeholders); // Delete $result = $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->prefix}siteseo_redirect_logs WHERE id IN ($placeholders_string)", $selected_ids)); if($result !== false){ wp_send_json_success(array( 'message' => 'Selected logs deleted successfully', 'deleted_count' => $result )); } else{ wp_send_json_error('Failed to delete logs'); } } static function delete_robots_txt(){ check_ajax_referer('siteseo_pro_nonce', 'nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have permission for delete file.', 'siteseo-pro')); } $robots_txt_path = ABSPATH . 'robots.txt'; if(file_exists($robots_txt_path)){ if(!unlink($robots_txt_path)){ wp_send_json_error(__('Failed to delete robots.txt file.', 'siteseo-pro')); } } wp_send_json_success(); } // Version nag ajax static function version_notice(){ check_admin_referer('siteseo_version_notice', 'security'); if(!current_user_can('activate_plugins')){ wp_send_json_error(__('You do not have required access to do this action', 'siteseo-pro')); } $type = ''; if(!empty($_REQUEST['type'])){ $type = sanitize_text_field(wp_unslash($_REQUEST['type'])); } if(empty($type)){ wp_send_json_error(__('Unknown version difference type', 'siteseo-pro')); } update_option('siteseo_version_'. $type .'_nag', time() + WEEK_IN_SECONDS); wp_send_json_success(); } static function dismiss_expired_licenses(){ check_admin_referer('siteseo_expiry_notice', 'security'); if(!current_user_can('activate_plugins')){ wp_send_json_error(__('You do not have required access to do this action', 'siteseo-pro')); } update_option('softaculous_expired_licenses', time()); wp_send_json_success(); } } home/aresglob/public_html/wp/wp-content/plugins/speedycache/main/ajax.php 0000644 00000071367 15104577604 0022665 0 ustar 00 <?php namespace SpeedyCache; if(!defined('ABSPATH')){ die('HACKING ATTEMPT!'); } use \SpeedyCache\Util; class Ajax{ static function hooks(){ add_action('wp_ajax_speedycache_delete_page_cache', '\SpeedyCache\Ajax::delete_page_cache'); add_action('wp_ajax_speedycache_save_cache_settings', '\SpeedyCache\Ajax::save_cache_settings'); add_action('wp_ajax_speedycache_save_file_settings', '\SpeedyCache\Ajax::save_file_settings'); add_action('wp_ajax_speedycache_save_preload_settings', '\SpeedyCache\Ajax::save_preload_settings'); add_action('wp_ajax_speedycache_save_media_settings', '\SpeedyCache\Ajax::save_media_settings'); add_action('wp_ajax_speedycache_save_cdn_settings', '\SpeedyCache\Ajax::save_cdn_settings'); add_action('wp_ajax_speedycache_test_pagespeed', '\SpeedyCache\Ajax::test_pagespeed'); add_action('wp_ajax_speedycache_save_excludes', '\SpeedyCache\Ajax::save_excludes'); add_action('wp_ajax_speedycache_delete_exclude_rule', '\SpeedyCache\Ajax::delete_exclude_rule'); add_action('wp_ajax_speedycache_save_deletion_role_settings', '\SpeedyCache\Ajax::save_deletion_roles'); add_action('wp_ajax_speedycache_import_settings', '\SpeedyCache\Ajax::import_settings'); add_action('wp_ajax_speedycache_export_settings', '\SpeedyCache\Ajax::export_settings'); if(defined('SPEEDYCACHE_PRO')){ add_action('wp_ajax_speedycache_optm_db', '\SpeedyCache\Ajax::optm_db'); add_action('wp_ajax_speedycache_flush_objects', '\SpeedyCache\Ajax::flush_objs'); add_action('wp_ajax_speedycache_save_object_settings', '\SpeedyCache\Ajax::save_object_settings'); add_action('wp_ajax_speedycache_save_bloat_settings', '\SpeedyCache\Ajax::save_bloat_settings'); add_action('wp_ajax_speedycache_preloading_add_settings', '\SpeedyCache\Ajax::add_preload_settings'); add_action('wp_ajax_speedycache_preloading_delete_resource', '\SpeedyCache\Ajax::delete_preload_resource'); if(!defined('SITEPAD')){ // Critical CSS add_action('wp_ajax_speedycache_critical_css', '\SpeedyCache\Ajax::generate_critical_css'); } } } static function delete_page_cache(){ check_ajax_referer('speedycache_ajax_nonce'); $page_id = Util::sanitize_get('page_id'); if(empty($page_id)){ wp_send_json_error(__('Can not delete cache of this page as the page ID is empty', 'speedycache')); } } static function save_cache_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_options'); $options['status'] = isset($_REQUEST['status']); $options['preload'] = isset($_REQUEST['preload']); $options['preload_interval'] = (int) Util::sanitize_request('preload_interval', 0); $options['logged_in_user'] = isset($_REQUEST['logged_in_user']); $options['mobile'] = isset($_REQUEST['mobile']); $options['mobile_theme'] = isset($_REQUEST['mobile_theme']); $options['lbc'] = isset($_REQUEST['lbc']); $options['gzip'] = isset($_REQUEST['gzip']); $options['purge_varnish'] = isset($_REQUEST['purge_varnish']); $options['varniship'] = !empty($_REQUEST['varniship']) ? Util::sanitize_request('varniship') : ''; $options['purge_interval'] = (int) Util::sanitize_request('purge_interval', 0); $options['purge_interval_unit'] = Util::sanitize_request('purge_interval_unit', 'days'); $options['purge_enable_exact_time'] = isset($_REQUEST['purge_enable_exact_time']); $options['purge_exact_time'] = Util::sanitize_request('purge_exact_time', 0); $options['auto_purge_fonts'] = isset($_REQUEST['auto_purge_fonts']); $options['auto_purge_gravatar'] = isset($_REQUEST['auto_purge_gravatar']); wp_clear_scheduled_hook('speedycache_purge_cache'); wp_clear_scheduled_hook('speedycache_preload'); $speedycache->options = $options; update_option('speedycache_options', $options); \SpeedyCache\Htaccess::init(); \SpeedyCache\Install::set_advanced_cache(); Util::set_config_file(); // Updates the config file wp_send_json_success(); } static function save_file_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_options', []); // CSS options $options['minify_html'] = isset($_REQUEST['minify_html']); $options['minify_css'] = isset($_REQUEST['minify_css']); $options['combine_css'] = isset($_REQUEST['combine_css']); if(!defined('SITEPAD')){ $options['unused_css'] = isset($_REQUEST['unused_css']); $options['critical_css'] = isset($_REQUEST['critical_css']); $options['unusedcss_load'] = Util::sanitize_request('unusedcss_load'); $options['unused_css_exclude_stylesheets'] = !empty($_REQUEST['unused_css_exclude_stylesheets']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['unused_css_exclude_stylesheets']))) : []; $options['unusedcss_include_selector'] = !empty($_REQUEST['unusedcss_include_selector']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['unusedcss_include_selector']))) : []; } // JS options $options['minify_js'] = isset($_REQUEST['minify_js']); $options['combine_js'] = isset($_REQUEST['combine_js']); $options['delay_js'] = isset($_REQUEST['delay_js']); $options['delay_js_mode'] = isset($_REQUEST['delay_js_mode']) ? Util::sanitize_request('delay_js_mode') : ''; $options['delay_js_excludes'] = !empty($_REQUEST['delay_js_excludes']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['delay_js_excludes']))) : []; $options['delay_js_scripts'] = !empty($_REQUEST['delay_js_scripts']) ? array_unique(array_map('trim', explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['delay_js_scripts']))))) : []; $options['render_blocking'] = isset($_REQUEST['render_blocking']); $options['render_blocking_excludes'] = isset($_REQUEST['render_blocking_excludes']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['render_blocking_excludes']))) : []; $options['disable_emojis'] = isset($_REQUEST['disable_emojis']); $options['lazy_load_html'] = isset($_REQUEST['lazy_load_html']); if(isset($_REQUEST['lazy_load_html_elements'])){ $options['lazy_load_html_elements'] = !empty($_REQUEST['lazy_load_html_elements']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['lazy_load_html_elements']))) : []; } $speedycache->options = $options; update_option('speedycache_options', $options); wp_send_json_success(); } static function save_preload_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_options'); $options['critical_images'] = isset($_REQUEST['critical_images']); $options['critical_image_count'] = isset($_REQUEST['critical_images']) ? Util::sanitize_request('critical_image_count') : ''; $options['instant_page'] = isset($_REQUEST['instant_page']); $options['speculation_loading'] = isset($_REQUEST['speculation_loading']); $options['speculation_mode'] = Util::sanitize_request('speculation_mode', 0); $options['speculation_eagerness'] = Util::sanitize_request('speculation_eagerness', 0); $options['dns_prefetch'] = isset($_REQUEST['dns_prefetch']); if(!empty($_REQUEST['dns_urls'])){ $options['dns_urls'] = explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['dns_urls']))); } $options['preload_resources'] = isset($_REQUEST['preload_resources']); $options['pre_connect'] = isset($_REQUEST['pre_connect']); // TODO: here more options will be added after all modals have been added. $speedycache->options = $options; update_option('speedycache_options', $options); wp_send_json_success(); } static function save_media_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_options'); $options['gravatar_cache'] = isset($_REQUEST['gravatar_cache']); $options['lazy_load'] = isset($_REQUEST['lazy_load']); $options['lazy_load_placeholder'] = Util::sanitize_request('lazy_load_placeholder'); if(isset($_REQUEST['lazy_load_placeholder_custom_url'])){ $options['lazy_load_placeholder_custom_url'] = !empty($_REQUEST['lazy_load_placeholder_custom_url']) ? sanitize_url(wp_unslash($_REQUEST['lazy_load_placeholder_custom_url'])) : ''; } if(isset($_REQUEST['exclude_above_fold'])){ $options['exclude_above_fold'] = !empty($_REQUEST['exclude_above_fold']) ? Util::sanitize_request('exclude_above_fold') : ''; } if(isset($_REQUEST['lazy_load_keywords'])){ $options['lazy_load_keywords'] = !empty($_REQUEST['lazy_load_keywords']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['lazy_load_keywords']))) : []; } $options['image_dimensions'] = isset($_REQUEST['image_dimensions']); $options['local_gfonts'] = isset($_REQUEST['local_gfonts']); $options['google_fonts'] = isset($_REQUEST['google_fonts']); $options['font_rendering'] = isset($_REQUEST['font_rendering']); // TODO: here more options will be added after all modals have been added. $speedycache->options = $options; update_option('speedycache_options', $options); wp_send_json_success(); } static function save_object_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; if(!class_exists('Redis')){ wp_send_json_error(__('phpRedis Library not found', 'speedycache')); return; } $options = get_option('speedycache_object_cache', []); $options['enable'] = isset($_REQUEST['enable_object']); $options['host'] = Util::sanitize_request('host'); $options['port'] = Util::sanitize_request('port'); $options['username'] = Util::sanitize_request('username'); $options['password'] = Util::sanitize_request('password'); $options['hashed_prefix'] = substr(md5(site_url()), 0, 12); $options['ttl'] = Util::sanitize_request('ttl', 0); $options['db-id'] = Util::sanitize_request('db-id', 0); $options['persistent'] = isset($_REQUEST['persistent']); $options['admin'] = isset($_REQUEST['admin']); $options['async_flush'] = isset($_REQUEST['async_flush']); $options['serialization'] = Util::sanitize_request('serialization'); $options['compress'] = Util::sanitize_request('compress'); $options['non_cache_group'] = !empty($_REQUEST['non_cache_group']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['non_cache_group']))) : []; $speedycache->object = $options; if(!file_put_contents(\SpeedyCache\ObjectCache::$conf_file, json_encode($speedycache->object))){ wp_send_json_error(__('Unable to modify Object Cache Conf file, the issue might be related to permission on your server.', 'speedycache')); return; } if(!empty($speedycache->object['enable'])){ \SpeedyCache\ObjectCache::update_file(); } else { if(file_exists(WP_CONTENT_DIR . '/object-cache.php')){ unlink(WP_CONTENT_DIR . '/object-cache.php'); } } // If we are disabling object cache then it should be saved early as there could be issue connecting the redis server. if(empty($options['enable'])){ update_option('speedycache_object_cache', $options); } try{ \SpeedyCache\ObjectCache::boot(); } catch(\Exception $e) { wp_send_json_error($e->getMessage()); return; } \SpeedyCache\ObjectCache::flush_db(); \SpeedyCache\ObjectCache::$instance = null; update_option('speedycache_object_cache', $options); // We need to update at last only after object cache can be enabled. wp_send_json_success(); } static function save_cdn_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_cdn', []); if(!is_array($options)){ $options = []; } $options['enabled'] = isset($_REQUEST['enable_cdn']); $options['cdn_type'] = Util::sanitize_request('cdn_type'); $options['cdn_key'] = sanitize_text_field(wp_unslash($_REQUEST['cdn_key'])); $options['cdn_url'] = sanitize_url(wp_unslash($_REQUEST['cdn_url'])); $options['excludekeywords'] = !empty($_REQUEST['excludekeywords']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['excludekeywords']))) : []; $options['file_types'] = !empty($_REQUEST['file_types']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['file_types']))) : []; $options['keywords'] = !empty($_REQUEST['keywords']) ? explode("\n", sanitize_textarea_field(wp_unslash($_REQUEST['keywords']))) : []; if(!empty($options['file_types'])){ $options['file_types'] = map_deep($options['file_types'], 'trim'); } if(!empty($options['keywords'])){ $options['keywords'] = map_deep($options['keywords'], 'trim'); } if(!empty($options['excludekeywords'])){ $options['excludekeywords'] = map_deep($options['excludekeywords'], 'trim'); } // Fetching the Zone/Pull ID's if($options['cdn_type'] === 'bunny' && !empty($options['cdn_key'])){ $pull_id = \SpeedyCache\CDN::bunny_get_pull_id($options); if(!empty($pull_id) && !is_array($pull_id)){ $options['bunny_pull_id'] = $pull_id; } }else if($options['cdn_type'] === 'cloudflare' && !empty($options['cdn_key'])){ $zone_id = \SpeedyCache\CDN::cloudflare_zone_id($options); if(!empty($zone_id)){ $options['cloudflare_zone_id'] = $zone_id; } } update_option('speedycache_cdn', $options); $speedycache->cdn = $options; wp_send_json_success(); } static function save_bloat_settings(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; $options = get_option('speedycache_bloat', []); $options['disable_xmlrpc'] = isset($_REQUEST['disable_xmlrpc']); $options['remove_gfonts'] = isset($_REQUEST['remove_gfonts']); $options['disable_jmigrate'] = isset($_REQUEST['disable_jmigrate']); $options['disable_dashicons'] = isset($_REQUEST['disable_dashicons']); $options['disable_gutenberg'] = isset($_REQUEST['disable_gutenberg']); $options['disable_block_css'] = isset($_REQUEST['disable_block_css']); $options['disable_oembeds'] = isset($_REQUEST['disable_oembeds']); $options['disable_cart_fragment'] = isset($_REQUEST['disable_cart_fragment']); $options['disable_woo_assets'] = isset($_REQUEST['disable_woo_assets']); $options['disable_rss'] = isset($_REQUEST['disable_rss']); $options['update_heartbeat'] = isset($_REQUEST['update_heartbeat']); $options['heartbeat_frequency'] = Util::sanitize_request('heartbeat_frequency'); $options['disable_heartbeat'] = Util::sanitize_request('disable_heartbeat'); $options['limit_post_revision'] = isset($_REQUEST['limit_post_revision']); $options['post_revision_count'] = Util::sanitize_request('post_revision_count'); $speedycache->bloat = $options; update_option('speedycache_bloat', $options); wp_send_json_success(); } // Adds settings of Preload and preconnect options. static function add_preload_settings(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error('Must be admin'); } global $speedycache; if(empty($_REQUEST['type'])){ wp_send_json_error('Unable to find the settings type'); } $type = sanitize_text_field(wp_unslash($_REQUEST['type'])); if(!in_array($type, ['pre_connect_list', 'preload_resource_list'])){ wp_send_json_error(__('Could not figure out type of the setting being saved!', 'speedycache')); } if(empty($_REQUEST['settings'])){ wp_send_json_error(__('No settings provided to save', 'speedycache')); } if(empty($speedycache->options[$type])){ $speedycache->options[$type] = []; } $settings = []; if(empty($_REQUEST['settings']['resource'])){ wp_send_json_error(__('No resource provided!', 'speedycache')); } $settings['resource'] = sanitize_url(wp_unslash($_REQUEST['settings']['resource'])); $settings['crossorigin'] = isset($_REQUEST['settings']['crossorigin']); $settings['type'] = sanitize_text_field(wp_unslash($_REQUEST['settings']['type'])); if(!empty($_REQUEST['settings']['fetch_priority'])){ $settings['fetch_priority'] = sanitize_text_field(wp_unslash($_REQUEST['settings']['fetch_priority'])); } if(!empty($_REQUEST['settings']['device'])){ $settings['device'] = sanitize_text_field(wp_unslash($_REQUEST['settings']['device'])); } if(empty($speedycache->options[$type])){ $speedycache->options[$type] = []; $speedycache->options[$type][] = $settings; update_option('speedycache_options', $speedycache->options); $index = key(array_slice($speedycache->options[$type], -1, 1, true)); // Getting the index we just added wp_send_json_success($index); } foreach($speedycache->options[$type] as $pre_connect){ if($pre_connect['resource'] == $settings['resource']){ wp_send_json_error(__('This resource has already been added before', 'speedycache')); } } $speedycache->options[$type][] = $settings; update_option('speedycache_options', $speedycache->options); $index = key(array_slice($speedycache->options[$type], -1, 1, true)); // Getting the index we just added wp_send_json_success($index); } static function delete_preload_resource(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error('Must be admin'); } global $speedycache; if(!isset($_REQUEST['type']) || !isset($_REQUEST['key']) || $_REQUEST['key'] == NULL){ wp_send_json_error('Key or Type is empty so can not delete this resource'); } $type = isset($_REQUEST['type']) ? sanitize_text_field(wp_unslash($_REQUEST['type'])) : ''; $key = isset($_REQUEST['key']) ? sanitize_text_field(wp_unslash($_REQUEST['key'])) : ''; if(!in_array($type, ['pre_connect_list', 'preload_resource_list'])){ wp_send_json_error('Could not figure out type of the resource being deleted!'); } if(empty($speedycache->options[$type])){ wp_send_json_error('Nothing there to delete'); } if(array_key_exists($key, $speedycache->options[$type])){ unset($speedycache->options[$type][$key]); update_option('speedycache_options', $speedycache->options); } wp_send_json_success(); } static function test_pagespeed(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } $url = home_url(); if(empty($url)){ wp_send_json_error('Your site does not have a home URL'); } $api_url = SPEEDYCACHE_API . 'pagespeed.php?url='. $url; $res = wp_remote_post($api_url, array( 'sslverify' => false, 'timeout' => 60 )); if(empty($res) || is_wp_error($res)){ if($res->get_error_message()){ wp_send_json_error($res->get_error_message()); } wp_send_json_error('The response turned out to be empty'); } if(empty($res['body'])){ wp_send_json_error('The response body is empty'); } $body = json_decode($res['body'], 1); if(empty($body['success'])){ wp_send_json_error($res['body']); } if(empty($body['results'])){ wp_send_json_error('Result is empty'); } //Saving the pagespeed test update_option('speedycache_pagespeed_test', $body['results'], false); $body['results']['color'] = \SpeedyCache\Util::pagespeed_color($body['results']['score']); // We will now need to filter the output. wp_send_json_success($body['results']); } static function save_excludes(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } if(empty($_REQUEST['type'])){ wp_send_json_error(__('You need to select a Exclude type', 'speedycache')); } if(empty($_REQUEST['prefix'])){ wp_send_json_error(__('You have not selected, the exclude option', 'speedycache')); } $type = Util::sanitize_request('type'); $prefix = Util::sanitize_request('prefix'); $single_prefixes = ['homepage', 'category', 'tag', 'post', 'page', 'archive', 'attachment', 'woocommerce_items_in_cart', 'post_id']; if(empty($_REQUEST['content']) && !in_array($prefix, $single_prefixes)){ wp_send_json_error(__('You need to fill the content field', 'speedycache')); } $excludes = get_option('speedycache_exclude', []); $rule['type'] = $type; $rule['prefix'] = $prefix; $rule['content'] = !empty($_REQUEST['content']) ? Util::sanitize_request('content') : ''; if($type == 'post_id' && !empty($rule['content'])){ $rule['content'] = explode(',', $rule['content']); } array_push($excludes, $rule); update_option('speedycache_exclude', $excludes); Util::set_config_file(); // Updates the config file wp_send_json_success(); } static function validate_and_sanitize_import_data($data) { if(is_array($data)){ $sanitized = []; foreach($data as $key => $value){ $sanitized_key = is_string($key) ? sanitize_key($key) : $key; $sanitized[$sanitized_key] = self::validate_and_sanitize_import_data($value); } return $sanitized; } elseif (is_string($data)){ if(filter_var($data, FILTER_VALIDATE_URL)){ return sanitize_url(wp_unslash($data)); } return sanitize_text_field(wp_unslash($data)); } elseif(is_bool($data) || is_null($data) || is_int($data) || is_float($data)){ return $data; } return ''; } static function import_settings(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permissions.', 'speedycache')); } if(!isset($_FILES['file']) || $_FILES['file']['error'] !== UPLOAD_ERR_OK){ wp_send_json_error(__('Failed to receive uploaded file.', 'speedycache')); } $filename = sanitize_file_name($_FILES['file']['name']); if(!preg_match('/\.json$/', $filename)){ wp_send_json_error(__('The file you uploaded is not a JSON file.', 'speedycache')); } if(!preg_match('/speedycache-settings-\d{4}-\d{2}-\d{2}.*\.json/', $filename)){ wp_send_json_error(__('File name is not of expected format.', 'speedycache')); } $imported_file = $_FILES['file']['tmp_name']; if(!file_exists($imported_file) || !is_readable($imported_file) || !is_uploaded_file($imported_file)){ wp_send_json_error(__('Uploaded file is not readable.', 'speedycache')); } $file_contents = file_get_contents($imported_file); $decoded_data = json_decode($file_contents, true); if(empty($decoded_data) || !is_array($decoded_data)){ wp_send_json_error(__('Invalid JSON file.', 'speedycache')); } $current_oc = get_option('speedycache_object_cache'); $imported_oc = $decoded_data['speedycache_object_cache'] ? $decoded_data['speedycache_object_cache'] : false; $current_enabled = (is_array($current_oc) && !empty($current_oc['enable'])); $import_enabled = (is_array($imported_oc) && !empty($imported_oc['enable'])); if($current_enabled && $import_enabled){ $imported_oc['hashed_prefix'] = $current_oc['hashed_prefix']; } else { $imported_oc['hashed_prefix'] = null; } $decoded_data['speedycache_object_cache'] = $imported_oc; $valid_keys = array( 'speedycache_options', 'speedycache_cdn', 'speedycache_img', 'speedycache_object_cache', 'speedycache_exclude', 'speedycache_bloat', ); foreach($valid_keys as $key){ if (isset($decoded_data[$key]) && $decoded_data[$key] !== false) { update_option($key, self::validate_and_sanitize_import_data($decoded_data[$key])); } else { delete_option($key); } } wp_send_json_success(); } static function export_settings(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permissions.', 'speedycache')); } $object_cache = get_option('speedycache_object_cache'); if(is_array($object_cache)){ $object_cache['hashed_prefix'] = null; } $export_data = array( 'speedycache_options' => get_option('speedycache_options'), 'speedycache_cdn' => get_option('speedycache_cdn'), 'speedycache_img' => get_option('speedycache_img'), 'speedycache_object_cache' => $object_cache, 'speedycache_exclude' => get_option('speedycache_exclude'), 'speedycache_bloat' => get_option('speedycache_bloat'), ); wp_send_json_success($export_data); } static function save_deletion_roles(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } $roles = []; if(!empty($_POST['cache_deletion_roles'])){ $roles = Util::sanitize_post('cache_deletion_roles'); } update_option('speedycache_deletion_roles', $roles); wp_send_json_success(); } static function delete_exclude_rule(){ check_ajax_referer('speedycache_ajax_nonce'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } if(!isset($_REQUEST['rule_id'])){ wp_send_json_error(__('No rule ID provided to delete', 'speedycache')); } $excludes = get_option('speedycache_exclude', []); if(empty($excludes)){ wp_send_json_error(__('Exclude rule list is already empty', 'speedycache')); } $rule_id = sanitize_text_field(wp_unslash($_REQUEST['rule_id'])); if(!isset($excludes[$rule_id])){ wp_send_json_error(__('There is not rule with the given rule id', 'speedycache')); } unset($excludes[$rule_id]); // TODO: updating the htaccess to include the excludes. update_option('speedycache_exclude', $excludes); wp_send_json_success(); } static function optm_db(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } if(!isset($_REQUEST['db_action'])){ wp_send_json_error(__('No Database optimization action present', 'speedycache')); } $db_action = \SpeedyCache\Util::sanitize_request('db_action'); if(!defined('SPEEDYCACHE_PRO')){ wp_send_json_error(__('This is a Pro feature you can not use this with a Free version', 'speedycache')); } \SpeedyCache\DB::clean($db_action); } static function flush_objs(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_send_json_error(__('You do not have required permission.', 'speedycache')); } global $speedycache; if(empty($speedycache->object['enable'])){ wp_send_json_error(__('Object Cache need to be enabled for it to be flushed', 'speedycache')); } try{ \SpeedyCache\ObjectCache::boot(); } catch(\Exception $e){ wp_send_json_error($e->getMessage()); } $res = \SpeedyCache\ObjectCache::flush_db(); if(!empty($res)){ wp_send_json_success(); } } static function generate_critical_css(){ check_ajax_referer('speedycache_ajax_nonce', 'security'); if(!current_user_can('manage_options')){ wp_die('Must be admin'); } global $speedycache; if(!class_exists('\SpeedyCache\CriticalCss')){ wp_send_json_error(array('message' => 'Your SpeedyCache Pro does not have the required file to run Critical CSS')); } if(empty($speedycache->license['license'])){ wp_send_json_error(array('message' => 'You have not linked your License, please do it before creating Critical CSS')); } $urls = \SpeedyCache\CriticalCss::get_url_list(); if(empty($urls)){ wp_send_json_error(array('message' => 'No URL found to create critical CSS')); } \SpeedyCache\CriticalCss::schedule('speedycache_generate_ccss', $urls); wp_send_json_success(array('message' => 'The URLs have been queued to generate Critical CSS')); } } home/aresglob/public_html/wp/wp-content/plugins/backuply/main/ajax.php 0000644 00000104667 15105363717 0022221 0 ustar 00 <?php /* * BACKUPLY * https://backuply.com * (c) Backuply Team */ // Are we being accessed directly ? if(!defined('BACKUPLY_VERSION')) { exit('Hacking Attempt !'); } set_time_limit(60); ignore_user_abort(true); // Is the nonce there ? if(empty($_REQUEST['security'])){ return; } // AJAX Actions add_action('wp_ajax_backuply_create_backup', 'backuply_create_backup'); add_action('wp_ajax_backuply_stop_backup', 'backuply_stop_backup'); add_action('wp_ajax_backuply_download_backup', 'backuply_download_backup'); add_action('wp_ajax_backuply_multi_backup_delete', 'backuply_multi_backup_delete'); add_action('wp_ajax_backuply_check_status', 'backuply_check_status'); add_action('wp_ajax_backuply_check_backup_status', 'backuply_backup_progress_status'); add_action('wp_ajax_backuply_checkrestorestatus_action', 'backuply_checkrestorestatus_action'); add_action('wp_ajax_backuply_restore_curl_query', 'backuply_restore_curl_query'); add_action('wp_ajax_backuply_retry_htaccess', 'backuply_retry_htaccess'); add_action('wp_ajax_backuply_kill_proccess', 'backuply_force_stop'); add_action('wp_ajax_backuply_get_loc_details', 'backuply_get_loc_details'); add_action('wp_ajax_backuply_sync_backups', 'backuply_sync_backups'); add_action('wp_ajax_nopriv_backuply_restore_response', 'backuply_restore_response'); add_action('wp_ajax_nopriv_backuply_update_serialization', 'backuply_update_serialization_ajax'); add_action('wp_ajax_backuply_creating_session', 'backuply_creating_session'); add_action('wp_ajax_nopriv_backuply_creating_sessi
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings