HEX
Server: Apache
System: Linux digivps 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC 2025 x86_64
User: www (1000)
PHP: 8.3.15
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/healthyton.com/wp-content/plugins/advanced-ads/src/Group_Repository.php
<?php
/**
 * Group Repository class.
 *
 * @package AdvancedAds
 * @author  Advanced Ads <[email protected]>
 */

namespace Advanced_Ads;

use WP_Term;

/**
 * Group Repository/Factory class.
 * Ensures every ad is only set-up once and the same instance is re-used within one request.
 */
class Group_Repository extends Abstract_Repository {
	/**
	 * Array to hold the \Advanced_Ads_Group objects, indexed by the term.
	 *
	 * @var array
	 */
	protected static $repo = [];

	/**
	 * Get the ad object from the repository. Create and add it, if it doesn't exist.
	 * If the passed id is not an ad, return the created ad object without adding it to the repository.
	 * This behavior prevents breaking changes.
	 *
	 * @param int|WP_Term $term The term to look for.
	 *
	 * @return \Advanced_Ads_Group
	 */
	public static function get( $term ): \Advanced_Ads_Group {
		$id = $term->term_id ?? $term;
		if ( ! self::has( $id ) ) {
			$group = new \Advanced_Ads_Group( $term );
			if ( ! $group->is_group ) {
				return $group;
			}
			self::$repo[ $id ] = $group;
		}

		return self::$repo[ $id ];
	}
}