HEX
Server: nginx/1.28.1
System: Linux iZgw8b5bpgd4jyptfmmmxgZ 6.6.102-5.2.alnx4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 27 23:11:10 CST 2025 x86_64
User: www (1000)
PHP: 8.2.28
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/www.scdc-marine.com/wp-content/plugins/Admin-Columns-Pro/classes/Search/Query/User.php
<?php

namespace ACP\Search\Query;

use ACP\Search\Query;
use WP_User_Query;

class User extends Query {

	public function register() {
		add_filter( 'users_list_table_query_args', [ $this, 'mark_as_table_query' ] );
		add_action( 'pre_get_users', [ $this, 'callback_meta_query' ], 1 );
		add_action( 'pre_user_query', [ $this, 'callback_where' ], 1 );
		add_action( 'pre_user_query', [ $this, 'callback_join' ], 1 );
	}

	/**
	 * Marks the main list table query as such
	 *
	 * @param array $args
	 *
	 * @return array
	 */
	public function mark_as_table_query( $args ) {
		$args['is_list_table_query'] = 1;

		return $args;
	}

	/**
	 * @param WP_User_Query $query
	 *
	 * @return void
	 */
	public function callback_meta_query( WP_User_Query $query ) {
		if ( ! $this->is_table_query( $query ) ) {
			return;
		}

		$meta_query = $this->get_meta_query();

		if ( ! $meta_query ) {
			return;
		}

		if ( isset( $query->query_vars['meta_query'] ) && ! empty( $query->query_vars['meta_query'] ) ) {
			$meta_query[] = $query->query_vars['meta_query'];
		}

		$query->query_vars['meta_query'] = $meta_query;
	}

	/**
	 * @param WP_User_Query $query
	 *
	 * @return void
	 */
	public function callback_where( WP_User_Query $query ) {
		if ( ! $this->is_table_query( $query ) ) {
			return;
		}

		foreach ( $this->bindings as $binding ) {
			if ( $binding->get_where() ) {
				$query->query_where .= ' AND ' . $binding->get_where();
			}
		}
	}

	/**
	 * @param WP_User_Query $query
	 *
	 * @return void
	 */
	public function callback_join( WP_User_Query $query ) {
		if ( ! $this->is_table_query( $query ) ) {
			return;
		}

		foreach ( $this->bindings as $binding ) {
			if ( $binding->get_join() ) {
				$query->query_from .= "\n" . $binding->get_join();
			}
		}
	}

	/**
	 * @param WP_User_Query $query
	 *
	 * @return bool
	 */
	private function is_table_query( WP_User_Query $query ) {
		return isset( $query->query_vars['is_list_table_query'] ) && 1 === $query->query_vars['is_list_table_query'];
	}

}