HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/insiders/wp-load/wp-content/plugins/internal-links/helper/contenttransient.php
<?php
namespace ILJ\Helper;

/**
 * Content Transient
 *
 * Methods for handling WP transient for content
 *
 * @package ILJ\Helper
 * @since   2.1.2
 */
class ContentTransient {

	const ILJ_FILTERED_CONTENT_TRANSIENT = 'ilj_filtered_content_';
	const ILJ_TRANSIENT_EXPIRY_TIME      = DAY_IN_SECONDS;

	/**
	 * Get Transient data
	 *
	 * @param  int    $id   Post/Term ID
	 * @param  string $type Check if Post/Term
	 * @return mixed
	 */
	public static function get_transient($id, $type) {
		if (!in_array($type, array('post', 'term'))) {
			return false;
		}
		$data = get_transient(ContentTransient::ILJ_FILTERED_CONTENT_TRANSIENT.$type.'_'.$id);
		return $data;
	}

	/**
	 * Set Transient data
	 *
	 * @param  int    $id   Post/Term ID
	 * @param  string $type Check if Post/Term
	 * @param  mixed  $data Data to be stored
	 * @return void
	 */
	public static function set_transient($id, $type, $data) {
		if (!wp_doing_cron() && !is_admin()) {
			if (!in_array($type, array('post', 'term'))) {
				return;
			}
			set_transient(ContentTransient::ILJ_FILTERED_CONTENT_TRANSIENT.$type.'_'.$id, $data, ContentTransient::ILJ_TRANSIENT_EXPIRY_TIME);
		}
	}

	/**
	 * Delete Specific transient data
	 *
	 * @param  int    $id   Post/Term ID
	 * @param  string $type Check if Post/Term
	 * @return void
	 */
	public static function delete_transient($id, $type) {
		if (!in_array($type, array('post', 'term'))) {
			return;
		}
		delete_transient(ContentTransient::ILJ_FILTERED_CONTENT_TRANSIENT.$type."_".$id);
	}

	/**
	 * Delete All ILJ Transient Data
	 *
	 * @return void
	 */
	public static function delete_all_ilj_transient() {
		global $wpdb;

		$prefix = '_transient_'. ContentTransient::ILJ_FILTERED_CONTENT_TRANSIENT.'%';
		$sql = $wpdb->prepare("DELETE FROM $wpdb->options WHERE `option_name` LIKE %s", $prefix);

		// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared -- Direct database deletion is necessary, and caching is not applicable.
		$wpdb->query($sql);
	}
}