Payout::get_total_for_meta_keys( string|array $meta_keys )
Get total of a specific meta query for payouts in query.
Contents
Parameters
- $meta_keys
-
(string|array) (Required) Meta key(s) to use.
Return
(int) Total of a specific meta query for payouts in query.
Source
File: src/Tribe/Repositories/Payout.php
public function get_total_for_meta_keys( $meta_keys ) {
/** @var \wpdb $wpdb */
global $wpdb;
$query = clone $this->get_query();
$query->set( 'fields', 'ids' );
$query->set( 'posts_per_page', 1 );
$meta_keys = (array) $meta_keys;
$meta_key_sql = implode( ', ', array_fill( 0, count( $meta_keys ), '%s' ) );
$post_query = $query->request;
$post_query = preg_replace( '/^\s*SELECT\s*SQL_CALC_FOUND_ROWS\s*/', 'SELECT ', $post_query );
$post_query = preg_replace( '/\s*LIMIT\s*\d+,\s*\d+$/', '', $post_query );
$post_query = "
SELECT SUM( meta_value )
FROM {$wpdb->postmeta}
WHERE
meta_key IN ( {$meta_key_sql} )
AND post_id IN (
{$post_query}
)
";
$post_query = $wpdb->prepare( $post_query, $meta_keys );
return (int) $wpdb->get_var( $post_query );
}
Changelog
| Version | Description |
|---|---|
| 4.7.0 | Introduced. |