/** * @param $ids string|array * * @return mixed */ public function find_by_id($ids) { if (is_array($ids)) { // create comma-separated string $ids = implode(',', $ids); } // escape string for usage in IN clause $ids = esc_sql($ids); $sql = sprintf("SELECT * FROM `%s` WHERE ID IN (%s)", $this->table_name, $ids); // return single row if only one id is given if (substr_count($ids, ',') === 0) { return $this->db->get_row($sql); } return $this->db->get_results($sql); }
private function get_translation_statuses() { $post_translations = $this->get_post_translations(); $status = array(); foreach ($post_translations as $language => $translation) { $res_query = "SELECT status as status_code, needs_update FROM {$this->wpdb->prefix}icl_translation_status WHERE translation_id=%d"; $res_args = array($translation->translation_id); $res_prepare = $this->wpdb->prepare($res_query, $res_args); $res = $this->wpdb->get_row($res_prepare); if ($res) { $res->status = $res->status_code; switch ($res->status) { case ICL_TM_WAITING_FOR_TRANSLATOR: $res->status = __('Waiting for translator', 'wpml-string-translation'); break; case ICL_TM_IN_PROGRESS: $res->status = __('In progress', 'wpml-string-translation'); break; case ICL_TM_NEEDS_UPDATE: $res->status = ''; break; case ICL_TM_COMPLETE: $res->status = __('Complete', 'wpml-string-translation'); break; default: $res->status = __('Not translated', 'wpml-string-translation'); break; } if ($res->needs_update) { if ($res->status) { $res->status .= ' - '; } $res->status .= __('Needs update', 'wpml-string-translation'); } $status[$language] = $res; } } return $status; }
private function get_string($id) { $string_query = "SELECT * FROM {$this->wpdb->prefix}icl_strings WHERE id=%s"; $string_prepared = $this->wpdb->prepare($string_query, $id); return $this->wpdb->get_row($string_prepared); }