/** * Filter query string used for get_posts(). Search for posts and save for later. * Return a query that will return nothing. * * @param string $request * @param \WP_Query $query * * @return string */ public static function filterPostsRequest($request, WP_Query $query) { if (apply_filters('esi_skip_query_integration', false, $query)) { return $request; } if (!$query->is_search() && !Config::enabledFullIntegration()) { $query->is_elasticsearch_compatible = false; return $request; } if (!WpConverter::isCompatible($query)) { $query->is_elasticsearch_compatible = false; return $request; } $query->is_elasticsearch_compatible = true; global $wpdb; return "SELECT * FROM {$wpdb->posts} WHERE 1=0"; }
/** * Setup WooCommerceAdmin hooks. */ public static function setupWooCommerceAdmin() { if (!class_exists('WooCommerce') || !Config::option('index_private_post_types')) { return; } $class = __NAMESPACE__ . '\\Controller\\WooCommerceAdmin'; $class = apply_filters('esi_controller_woocommerceadmin', $class); add_filter('esi_post_sync_args', [$class, 'filterPostSyncArgs'], 10, 2); if (Config::enabledFullIntegration()) { static::forceRemoveAction('parse_query', 'shop_order_search_custom_fields'); add_action('esi_after_format_args', [$class, 'actionOrderSearch']); } }