Server IP : 66.29.132.122 / Your IP : 18.218.158.245 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/packages/kkart-blocks/src/Utils/ |
Upload File : |
<?php namespace Automattic\Kkart\Blocks\Utils; use WP_Query; /** * BlocksWpQuery query. * * Wrapper for WP Query with additonal helper methods. * Allows query args to be set and parsed without doing running it, so that a cache can be used. * * @deprecated 2.5.0 */ class BlocksWpQuery extends WP_Query { /** * Constructor. * * Sets up the WordPress query, if parameter is not empty. * * Unlike the constructor in WP_Query, this does not RUN the query. * * @param string|array $query URL query string or array of vars. */ public function __construct( $query = '' ) { if ( ! empty( $query ) ) { $this->init(); $this->query = wp_parse_args( $query ); $this->query_vars = $this->query; $this->parse_query_vars(); } } /** * Get cached posts, if a cache exists. * * A hash is generated using the array of query_vars. If doing custom queries via filters such as posts_where * (where the SQL query is manipulated directly) you can still ensure there is a unique hash by injecting custom * query vars via the parse_query filter. For example: * * add_filter( 'parse_query', function( $wp_query ) { * $wp_query->query_vars['my_custom_query_var'] = true; * } ); * * Doing so won't have any negative effect on the query itself, and it will cause the hash to change. * * @param string $transient_version Transient version to allow for invalidation. * @return WP_Post[]|int[] Array of post objects or post IDs. */ public function get_cached_posts( $transient_version = '' ) { $hash = md5( wp_json_encode( $this->query_vars ) ); $transient_name = 'kkart_blocks_query_' . $hash; $transient_value = get_transient( $transient_name ); if ( isset( $transient_value, $transient_value['version'], $transient_value['value'] ) && $transient_value['version'] === $transient_version ) { return $transient_value['value']; } $results = $this->get_posts(); set_transient( $transient_name, array( 'version' => $transient_version, 'value' => $results, ), DAY_IN_SECONDS * 30 ); return $results; } }