HEX
Server:
System: Linux aac286ea486c 5.14.0-687.15.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 11 08:51:45 EDT 2026 x86_64
User: root (0)
PHP: 8.2.30
Disabled: 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,disk_free_space,diskfreespace
Upload Files
File: /dom877180/wp-content/plugins/gravityview/future/includes/class-gv-form-join.php
<?php
namespace GV;

/** If this file is called directly, abort. */
if ( ! defined( 'GRAVITYVIEW_DIR' ) ) {
	die();
}

/**
 * The \GV\Join class.
 *
 * Contains a join between two Sources on two Fields.
 */
class Join {

	/**
	 * @var GF_Form|Source|Form
	 * @since 2.2 Made private property public
	 */
	public $join;

	/**
	 * @var GF_Form|Source|Form
	 * @since 2.2 Made private property public
	 */
	public $join_on;

	/**
	 * @var Field
	 */
	public $join_column;

	/**
	 * @var Field
	 */
	public $join_on_column;

	/**
	 * Construct a JOIN container.
	 *
	 * @param \GV\Source $join The form we're joining to.
	 * @param \GV\Field $join_column Its column.
	 * @param \GV\Source $join_on The form we're joining on.
	 * @param \GV\Field $join_on_column Its column.
	 */
	public function __construct( $join, $join_column, $join_on, $join_on_column ) {
		if ( $join instanceof \GV\Source ) {
			$this->join = $join;
		}

		if ( $join_on instanceof \GV\Source ) {
			$this->join_on = $join_on;
		}

		if ( $join_column instanceof \GV\Field ) {
			$this->join_column = $join_column;
		}

		if ( $join_on_column instanceof \GV\Field ) {
			$this->join_on_column = $join_on_column;
		}
	}

	/**
	 * Inject this join into the query.
	 *
	 * @param \GF_Query $query The \GF_Query instance.
	 *
	 * @return \GF_Query The $query
	 */
	public function as_query_join( $query ) {

		if ( ! gravityview()->plugin->supports( Plugin::FEATURE_JOINS ) ) {
			return null;
		}

		if ( ! $query instanceof \GF_Query ) {
			gravityview()->log->error( 'Query not instance of \GF_Query.' );
			return null;
		}

		$join_id    = intval( $this->join->ID );
		$join_on_id = intval( $this->join_on->ID );

		if ( empty( $join_id ) || empty( $join_on_id ) ) {
			gravityview()->log->error( 'Query join form not an integer.', array( 'data' => $this ) );
			return null;
		}

		return $query->join(
			new \GF_Query_Column( $this->join_on_column->ID, $join_on_id ),
			new \GF_Query_Column( $this->join_column->ID, $join_id )
		);
	}
}