tableName = $wpdb->prefix . AmzFulfillment_Core::LOGS_TABLE; $this->cleanOnDeactivate = false; $this->createQuery = " CREATE TABLE `%s` ( `logId` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `logTime` datetime NOT NULL, `logMessage` varchar(255) NOT NULL )"; add_action('wp_ajax_amzFulfillmentLogs', array ($this, 'createJson')); } public function add($message) { global $wpdb; $query = sprintf("INSERT INTO `%s` (logTime, logMessage) VALUES('%s', '%s')", $this->tableName, date('Y-m-d H:i:s'), esc_sql($message)); $wpdb->query($query); } /** * get * * @param integer $limit * @return object */ public function get($limit = NULL) { global $wpdb; if($limit != NULL) { $query = sprintf("SELECT * FROM `%s` ORDER BY logTime DESC limit %s", $this->tableName, $limit); } else { $query = sprintf("SELECT * FROM `%s` ORDER BY logTime DESC", $this->tableName); } return $wpdb->get_results($query); } public function createJson() { global $wpdb; $request = $_POST; if(empty($request)) { return; } $columns = array ( array('db' => 'logTime', 'dt' => 0), array('db' => 'logMessage', 'dt' => 1) ); $properties = implode(",", SSP::pluck($columns, 'db')); $binding = array(); $filter = SSP::filter($request, $columns, $bindings); $where = SSP::filter($request, $columns, $binding); $order = SSP::order($request, $columns); $limit = SSP::limit($request, $columns); $query = sprintf("SELECT SQL_CALC_FOUND_ROWS %s FROM %s %s %s %s", $properties, $this->tableName, $where, $order, $limit); foreach($binding as $bind) { $value = $bind['val']; $value = str_replace('%', '', $value); $value = "'%" . esc_sql($value) . "%'"; $query = str_replace($bind['key'], $value, $query); } $results = $wpdb->get_results($query, 'ARRAY_A'); $resultsFilter = $wpdb->get_results("SELECT FOUND_ROWS() as filteredRows"); $recordsFiltered = intval($resultsFilter[0]->filteredRows); $recordsTotal = $recordsFiltered; $rows = SSP::data_output($columns, $results); for($i = 0; $i < count($rows); $i++) { $rows[$i][0] = AmzFulfillment_Core::instance()->getFormatedDate($rows[$i][0]); } wp_send_json(array( "draw" => intval($request['draw']), "recordsTotal" => $recordsTotal, "recordsFiltered" => $recordsFiltered, "data" => $rows )); } }