我需要根据特定的Meta键+值在订单列表上创建一个过滤器。我遵循了this post,它帮助很大。但是,我需要创建一个符合以下规则的过滤器:显示具有元键的订单:'_created_via',其值不是'admin'或'checkout'。
有没有一种方法可以过滤不匹配特定字符串的meta_value
?请参阅:$vars['meta_value'] = <NOT 'checkout' or 'admin'>
// Process the filter dropdown for orders
add_filter( 'request', 'process_admin_shop_order_marketing_by_meta', 99 );
function process_admin_shop_order_marketing_by_meta( $vars ) {
global $pagenow, $typenow;
$filter_id = 'filter_shop_order_by_meta';
if ( $pagenow == 'edit.php' && 'shop_order' === $typenow
&& isset( $_GET[$filter_id] ) && ! empty($_GET[$filter_id]) ) {
$vars['meta_key'] = $_GET[$filter_id];
$vars['orderby'] = 'meta_value';
if ($_GET[$filter_id] == '_created_via') {
$vars['meta_value'] = <NOT 'checkout' or 'admin'>
}
}
return $vars;
}
字符串
1条答案
按热度按时间pkwftd7m1#
查看
WP_Query
文档中的 “custom field post Meta parameters”,您可以使用定义为 “NOT IN” 的meta_compare
和使用 * 值数组 * 定义的meta_value
.尝试以下操作(未经测试):
字符串
它可以工作。