' on ' . $exception->getLine(); return $data_for_response; } return $data_for_response; } public function get_pages($is_custom = 0) { $data_for_response = [ 'success' => false, 'message' => 'Pages not found', 'data' => [] ]; try { $so_pages_list = [ 'pages' => [], ]; $two_optimized_pages = \TenWebOptimizer\OptimizerUtils::getCriticalPages(); $posts_args = [ 'meta_key' => 'two_mode', 'post_type' => 'any', ]; $optimized_posts = new WP_Query($posts_args); $terms_args = [ 'taxonomy' => [], 'hide_empty' => false, 'meta_key' => 'two_mode', ]; $terms = get_terms($terms_args); $users_args = [ 'meta_key' => 'two_mode', ]; $users = get_users($users_args); if (isset($optimized_posts->posts)) { foreach ($optimized_posts->posts as $post) { if (isset($post->ID) && !isset($two_optimized_pages[$post->ID])) { $two_optimized_pages[$post->ID] = [ 'id' => $post->ID, 'title' => $post->post_title, 'url' => get_permalink($post->ID), 'status' => 'success', ]; } } } if (is_array($terms)) { foreach ($terms as $term) { if (isset($term->term_id)) { $id = 'term_' . $term->term_id; if (!isset($two_optimized_pages[$id])) { $two_optimized_pages[$id] = [ 'id' => $id, 'title' => $term->name, 'url' => get_term_link($term->term_id), 'status' => 'success', ]; } } } } if (is_array($users)) { foreach ($users as $user) { if (isset($user->data, $user->data->ID)) { $id = 'user_' . $user->data->ID; if (!isset($two_optimized_pages[$id])) { $two_optimized_pages[$id] = [ 'id' => $id, 'title' => $user->data->display_name, 'url' => get_author_posts_url($user->data->ID), 'status' => 'success', ]; } } } } if (is_array($two_optimized_pages)) { foreach ($two_optimized_pages as $p_id => $so_page) { $so_page_data = [ 'page_id' => $p_id, 'title' => $so_page['title'], 'url' => $so_page['url'], 'status' => $so_page['status'], ]; if ($p_id === 'front_page') { $page_mode = get_option('two_mode_front_page'); $two_optimized_date_front_page = get_option('two_optimized_date_front_page'); } elseif (false !== strpos($p_id, 'term_')) { $p_id = (int) ltrim($p_id, 'term_'); $so_page_data['page_id'] = 'term_' . (int) ltrim($so_page_data['page_id'], 'term_'); $page_mode = get_term_meta($p_id, 'two_mode', true); $two_optimized_date = get_term_meta($p_id, 'two_optimized_date', true); } elseif (false !== strpos($p_id, 'user_')) { $p_id = (int) ltrim($p_id, 'user_'); $so_page_data['page_id'] = 'user_' . (int) ltrim($so_page_data['page_id'], 'user_'); $page_mode = get_user_meta($p_id, 'two_mode', true); $two_optimized_date = get_user_meta($p_id, 'two_optimized_date', true); } else { $p_id = (int) $p_id; $so_page_data['page_id'] = (int) $so_page_data['page_id']; $page_mode = get_post_meta($p_id, 'two_mode', true); $two_optimized_date = get_post_meta($p_id, 'two_optimized_date', true); } if (is_array($page_mode) && isset($page_mode['mode'])) { $page_mode_name = $page_mode['mode']; } else { $page_mode_name = false; } $so_page_data['mode'] = $page_mode_name; if ((int) $is_custom === 1) { if (!isset($page_mode['is_custom']) || !$page_mode['is_custom']) { continue; } } if (isset($so_page['critical_date'])) { $so_page_data['date'] = $so_page['critical_date']; } else { if (isset($two_optimized_date)) { $so_page_data['date'] = $two_optimized_date; } elseif (isset($two_optimized_date_front_page)) { $so_page_data['date'] = $two_optimized_date_front_page; } } $so_page_data['is_custom'] = 0; if (isset($page_mode['is_custom'])) { $so_page_data['is_custom'] = $page_mode['is_custom']; } $so_pages_list['pages'][] = $so_page_data; } $data_for_response['success'] = true; $data_for_response['message'] = 'Pages found successfully'; $data_for_response['data'] = $so_pages_list; } } catch (Exception $exception) { $data_for_response['message'] = 'Error in getting pages'; $data_for_response['error'] = $exception->getMessage() . ' in ' . $exception->getFile() . ' on ' . $exception->getLine(); return $data_for_response; } return $data_for_response; } public function get_page_cache_status() { $data_for_response = [ 'success' => false, 'page_cache' => true, 'message' => 'Cannot get page cache status', 'clear_cache_date' => '', ]; try { global $TwoSettings; $data_for_response['clear_cache_date'] = $TwoSettings->get_settings('two_clear_cache_date', ''); $two_page_cache = $TwoSettings->get_settings('two_page_cache', ''); $data_for_response['success'] = true; if ($two_page_cache === 'on') { $data_for_response['message'] = 'Page cache enabled'; $data_for_response['page_cache'] = true; } else { $data_for_response['message'] = 'Page cache disabled'; $data_for_response['page_cache'] = false; } } catch (Exception $exception) { $data_for_response['message'] = 'Error in getting page cache status'; $data_for_response['error'] = $exception->getMessage() . ' in ' . $exception->getFile() . ' on ' . $exception->getLine(); return $data_for_response; } return $data_for_response; } public function get_webp_status() { $data_for_response = [ 'success' => false, 'message' => 'Cannot get webp status.', ]; try { global $TwoSettings; $webp_status = []; if (TENWEB_SO_HOSTED_ON_10WEB) { $webp_status['hosting'] = '10Web'; $webp_status['webp_delivery'] = $TwoSettings->get_settings('two_enable_nginx_webp_delivery'); } else { if (TENWEB_SO_HOSTED_ON_NGINX) { $webp_status['hosting'] = 'NGINX'; } else { $webp_status['hosting'] = 'APACHE'; $webp_status['htaccess_writable'] = TENWEB_SO_HTACCESS_WRITABLE; $webp_status['webp_delivery'] = $TwoSettings->get_settings('two_enable_htaccess_webp_delivery'); } $two_webp_delivery_working = \TenWebOptimizer\OptimizerUtils::testWebPDelivery(); $webp_status['webp_delivery_working'] = $two_webp_delivery_working; $webp_status['picture_webp_delivery'] = $TwoSettings->get_settings('two_enable_picture_webp_delivery'); } if ($webp_status) { $data_for_response['success'] = true; $data_for_response['message'] = 'WebP status collected successfully.'; $data_for_response['data'] = $webp_status; } } catch (Exception $exception) { $data_for_response['message'] = 'Error in getting webp status'; $data_for_response['error'] = $exception->getMessage() . ' in ' . $exception->getFile() . ' on ' . $exception->getLine(); return $data_for_response; } return $data_for_response; } public function get_settings($filter = '') { $filter_arr = []; if (!empty($filter)) { $filter_arr = explode(',', $filter); } $TwoSettings = new \TenWebOptimizer\OptimizerSettings(); $settings_data = $TwoSettings->settings_names; $default_settings = $TwoSettings->default_settings; $two_settings = get_option('two_settings'); $two_settings = json_decode($two_settings, true); $two_settings['two_critical_pages'] = OptimizerUtils::getCriticalPages(); $filter_data = []; if (!empty($filter_arr)) { foreach ($filter_arr as $option_name) { if (isset($settings_data[$option_name])) { $filter_data[$option_name] = $settings_data[$option_name]; } } if (!empty($filter_data)) { $settings_data = $filter_data; } } foreach ($two_settings as $key => $val) { if (isset($settings_data[$key])) { if ($settings_data[$key]['type'] == 'checkbox' && (empty($val) || $val === 'false')) { $val = 'off'; } if ($settings_data[$key]['default'] == 'true') { $settings_data[$key]['default'] = 'on'; } if ($key === 'two_critical_status' && $val === 'true') { $val = 'on'; } if ($settings_data[$key]['type'] == 'select') { if (empty($val) && isset($default_settings[$key])) { $val = $default_settings[$key]; } } $settings_data[$key]['value'] = $val; } } return $settings_data; } }