miss_ajax', 'php_requests_pagecache_miss_api_call', 'php_requests_pagecache_miss_configuration', 'php_requests_pagecache_miss_fill', 'php_requests_pagecache_miss_logged_in', 'php_requests_pagecache_miss_mfunc', 'php_requests_pagecache_miss_query_string', 'php_requests_pagecache_miss_third_party', 'php_requests_pagecache_miss_wp_admin', 'pagecache_requests_time_10ms', ) ); } /** * Usage Statisitcs sources filter. * * @param array $sources Sources. * * @return array */ public function w3tc_usage_statistics_sources( $sources ) { $c = Dispatcher::config(); if ( 'apc' === $c->get_string( 'pgcache.engine' ) ) { $sources['apc_servers']['pgcache'] = array( 'name' => __( 'Page Cache', 'w3-total-cache' ), ); } elseif ( 'memcached' === $c->get_string( 'pgcache.engine' ) ) { $sources['memcached_servers']['pgcache'] = array( 'servers' => $c->get_array( 'pgcache.memcached.servers' ), 'username' => $c->get_string( 'pgcache.memcached.username' ), 'password' => $c->get_string( 'pgcache.memcached.password' ), 'binary_protocol' => $c->get_boolean( 'pgcache.memcached.binary_protocol' ), 'name' => __( 'Page Cache', 'w3-total-cache' ), ); } elseif ( 'redis' === $c->get_string( 'pgcache.engine' ) ) { $sources['redis_servers']['pgcache'] = array( 'servers' => $c->get_array( 'pgcache.redis.servers' ), 'verify_tls_certificates' => $c->get_boolean( 'pgcache.redis.verify_tls_certificates' ), 'dbid' => $c->get_integer( 'pgcache.redis.dbid' ), 'password' => $c->get_string( 'pgcache.redis.password' ), 'name' => __( 'Page Cache', 'w3-total-cache' ), ); } return $sources; } /** * Setup admin menu elements * * @param array $menu_items Menu items. */ public function w3tc_admin_bar_menu( $menu_items ) { $menu_items['20110.pagecache'] = array( 'id' => 'w3tc_flush_pgcache', 'parent' => 'w3tc_flush', 'title' => __( 'Page Cache', 'w3-total-cache' ), 'href' => wp_nonce_url( admin_url( 'admin.php?page=w3tc_dashboard&w3tc_flush_pgcache' ), 'w3tc' ), ); if ( Util_Environment::detect_post_id() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) { $menu_items['20120.pagecache'] = array( 'id' => 'w3tc_pgcache_flush_post', 'parent' => 'w3tc_flush', 'title' => __( 'Page Cache: Current Page', 'w3-total-cache' ), 'href' => wp_nonce_url( admin_url( 'admin.php?page=w3tc_dashboard&w3tc_flush_post&post_id=' . Util_Environment::detect_post_id() . '&force=true' ), 'w3tc' ), ); } return $menu_items; } /** * Flush cache group. * * @param string $group Group name. * @param array $extras Additionals to flush. */ public function w3tc_flush_group( $group, $extras = array() ) { if ( isset( $extras['only'] ) && 'pagecache' !== (string) $extras['only'] ) { return; } $pgcacheflush = Dispatcher::component( 'PgCache_Flush' ); $v = $pgcacheflush->flush_group( $group ); return $v; } /** * Flushes all caches * * @param array $extras Additionals to flush. * * @return boolean */ public function w3tc_flush_posts( $extras = array() ) { if ( isset( $extras['only'] ) && 'pagecache' !== (string) $extras['only'] ) { return; } $pgcacheflush = Dispatcher::component( 'PgCache_Flush' ); $v = $pgcacheflush->flush(); return $v; } /** * Flushes post cache * * @param integer $post_id Post ID. * @param boolean $force Force flag (optional). * * @return boolean */ public function w3tc_flush_post( $post_id, $force = false ) { $pgcacheflush = Dispatcher::component( 'PgCache_Flush' ); $v = $pgcacheflush->flush_post( $post_id, $force ); return $v; } /** * Flushes post cache * * @param string $url URL. * * @return boolean */ public function w3tc_flush_url( $url ) { $pgcacheflush = Dispatcher::component( 'PgCache_Flush' ); $v = $pgcacheflush->flush_url( $url ); return $v; } /** * By default headers are not cached by file_generic * * @param mixed $header New header. * @param mixed $header_original Original header. * @param string $pagecache_engine Engine name. * * @return mixed|null */ public function w3tc_pagecache_set_header( $header, $header_original, $pagecache_engine ) { if ( 'file_generic' === (string) $pagecache_engine ) { return null; } return $header; } }