![]() Server : Apache/2.4.52 (Ubuntu) System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 User : www-data ( 33) PHP Version : 8.1.2-1ubuntu2.21 Disable Function : NONE Directory : /var/www/theprintave/wp-content/plugins/dokan-lite/includes/ |
<?php namespace WeDevs\Dokan; /** * Cache Invalidate class. * * Handles all of the common caches. * * @since 3.3.2 */ class CacheInvalidate { /** * Constructor * * @since 3.3.2 */ public function __construct() { // Clear global comment related caches. add_action( 'comment_post', [ $this, 'comment_created' ], 10, 3 ); add_action( 'edit_comment', [ $this, 'comment_updated' ], 10, 2 ); add_action( 'delete_comment', [ $this, 'comment_deleted' ], 10, 1 ); add_action( 'wp_set_comment_status', [ $this, 'comment_status_change' ], 10, 2 ); } /** * Invalidate comments cache group of the specific post type. * * @since 3.3.2 * * @param string $group * @param int $user_id * * @return void */ public function clear_comment_cache( $post_type, $user_id ) { $group = "count_{$post_type}_comments_{$user_id}"; Cache::invalidate_group( $group ); } /** * Fires after new comment is being added. * * @since 3.3.2 * * @param int $comment_id * @param int|string $comment_approved * @param array $comment_data * * @return void */ public function comment_created( $comment_id, $comment_approved, $comment_data ) { $post_type = get_post_type( $comment_data['comment_post_ID'] ); $seller_id = get_post_field( 'post_author', $comment_data['comment_post_ID'] ); $this->clear_comment_cache( $post_type, $seller_id ); } /** * Fires after comment is being updated. * * @since 3.3.2 * * @param int $comment_id * @param array $comment_data * * @return void */ public function comment_updated( $comment_id, $comment_data ) { $post_type = get_post_type( $comment_data['comment_post_ID'] ); $seller_id = get_post_field( 'post_author', $comment_data['comment_post_ID'] ); $this->clear_comment_cache( $post_type, $seller_id ); } /** * Fires before a comment is being deleted. * * @since 3.3.2 * * @param int $comment_id * @param \WP_Comment $comment * * @return void */ public function comment_deleted( $comment_id ) { // get comment via comment id $comment = get_comment( $comment_id ); if ( ! $comment ) { return false; } $post_type = get_post_type( $comment->comment_post_ID ); $seller_id = get_post_field( 'post_author', $comment->comment_post_ID ); $this->clear_comment_cache( $post_type, $seller_id ); } /** * Fires after a comment status is being changed. * * @since 3.3.2 * * @param int $comment_id Comment ID. * @param string $comment_status Current comment status. Possible values include * 'hold', '0', 'approve', '1', 'spam', and 'trash'. * * @return void */ public function comment_status_change( $comment_id, $comment_status ) { $this->comment_deleted( $comment_id ); } }