|
Server : LiteSpeed System : Linux server354.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64 User : getfsxkz ( 1681) PHP Version : 8.1.33 Disable Function : NONE Directory : /home/getfsxkz/theaztech.org/wp-content/plugins/wpforms-lite/src/Logger/ |
Upload File : |
<?php
// phpcs:ignore Generic.Commenting.DocComment.MissingShort
/** @noinspection PhpIllegalPsrClassPathInspection */
namespace WPForms\Logger;
/**
* Class RecordQuery.
*
* @since 1.6.3
*/
class RecordQuery {
/**
* Build query.
*
* @since 1.6.3
*
* @param int $limit Query limit of records.
* @param int $offset Offset of records.
* @param string $search Search.
* @param string $type Type of records.
*
* @return array
*/
public function get( $limit, $offset = 0, $search = '', $type = '' ) {
global $wpdb;
//phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared
return (array) $wpdb->get_results(
$this->build_query( $limit, $offset, $search, $type )
);
//phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared
}
/**
* Build query.
*
* @since 1.6.3
*
* @param int $limit Query limit of records.
* @param int $offset Offset of records.
* @param string $search Search.
* @param string $type Type of records.
*
* @return string
*/
private function build_query( $limit, $offset = 0, $search = '', $type = '' ) {
global $wpdb;
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM ' . Repository::get_table_name();
$where = [];
if ( ! empty( $search ) ) {
$where[] = $wpdb->prepare(
'`title` REGEXP %s OR `message` REGEXP %s',
$search,
$search
);
}
if ( ! empty( $type ) ) {
$where[] = $wpdb->prepare(
'`types` REGEXP %s',
$type
);
}
if ( $where ) {
$sql .= ' WHERE ' . implode( ' AND ', $where );
}
$sql .= ' ORDER BY `create_at` DESC, `id` DESC';
$sql .= $wpdb->prepare( ' LIMIT %d, %d', absint( $offset ), absint( $limit ) );
return $sql;
}
}