我有这种情况。我正在建立一个wordpress网站来销售一些产品。问题是,产品的价格是作为元值存储的,但产品的价格可以是不同的货币。现在的问题是,我必须对所有产品进行价格筛选,不管价格是哪种货币,筛选货币是在后台配置的,没有该货币价格的产品必须按货币兑换税进行筛选,但我真的不知道如何构建一个元查询,如果我能按货币等价价格过滤的话。
例如,我有两种产品:
产品1
-价格:10
-货币:美元
产品2
-价格:1000
-货币:XXX
过滤器设置为使用
美元
找到0到10之间的价格。所以这次搜索将返回
产品1
,但是
XXX公司
到
美元
是500比1
产品2
等价价格为
2美元
它必须包含在搜索结果中。
到目前为止,这是我处理价格过滤器的代码的一部分:
if (
isset($_REQUEST['max_price']) && $_REQUEST['max_price'] &&
isset($_REQUEST['min_price']) && ($_REQUEST['min_price'] || $_REQUEST['min_price'] == 0)
) {
$main_currency = cs_get_option('main_currency');
$ex_currency = array_diff(['xxx', 'usd'], [$main_currency])[1];
$args['meta_query'] [] =
array(
'relation' => 'AND',
array(
'key' => 'price_meta_key',
'value' => array($_REQUEST['min_price'], $_REQUEST['max_price']),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
array(
'key' => 'product_currency',
'value' => $main_currency,
'compare' => '='
)
);
}
但这只会过滤含有
美元主要货币
货币。