/** * Generates code and args for meta key search * * @param $start_indent * * @return string */ public function generateMetaArgCode($start_indent) { /** @var wpdb $wpdb */ global $wpdb; $metaCompareTypes = array('=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'NOT EXISTS', 'REGEXP', 'NOT REGEXP', 'RLIKE'); $start_indent = (int) $start_indent; if ($start_indent < 0) { $start_indent = 0; } $data = meAnjanWqg_Utils::arrayValue($this->_data, 'meta'); $code = array(); if (is_array($data) && count($data) > 0) { $key = meAnjanWqg_Utils::arrayValueAsString($data, 'key', '', 'trim'); $value = meAnjanWqg_Utils::arrayValueAsString($data, 'value', '', 'trim'); $value_num = meAnjanWqg_Utils::arrayValueAsString($data, 'value_num', '', 'trim'); $compare = meAnjanWqg_Utils::arrayValueAsString($data, 'compare', '', 'trim'); if ($key != '') { if (!in_array($compare, $metaCompareTypes)) { $compare = '='; } if ($value != '' || $value_num != '') { # key $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_key' => '{$key}',", 1); $this->_args['meta_key'] = $key; # compare $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_compare' => '{$compare}',", 1); $this->_args['meta_compare'] = $compare; # value if ($value != '') { $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_value' => '{$value}',", 1); $this->_args['meta_value'] = $value; } # value_num if ($value_num != '') { $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_value_num' => '{$value_num}',", 1); $this->_args['meta_value_num'] = $value_num; } } } } if (!empty($code)) { $content = PHP_EOL; $content .= meAnjanWqg_Utils::_l($start_indent, "/* Meta key params */", 2); $content .= join('', $code); return $content; } return join('', $code); }