我使用一个基本的PHP类将回调添加到现有的WC过滤器中,在类之外,回调按其应有的方式工作,但是构造函数中的筛选器似乎没有调用函数,我尝试了许多变体,但它们都没有工作。这是一堂课:
class Filters implements FiltersInterface{
public function __construct()
{
add_filter("woocommerce_rest_product_object_query", array($this,'FilterByMeta'), 10,2);
add_filter("woocommerce_rest_query_var-tax_query", array($this,'FilterByTaxonomies'), 10,1);
}
public function FilterByMeta($args,$request){
$key = $request->get_param('meta-key');
if($key!='' && $key!=null)
{
$args['meta_key'] = $key;
}
$value = $request->get_param('meta-value');
if($value!='' && $value!=null)
{
$args['meta_value'] = $value;
}
return $args;
}
public function FilterByTaxonomies($args){
var_dump('--');
$attr_term = $_GET['attribute-term'];
$attr_name = $_GET['attribute-name'];
if($attr_term!='' && $attr_term!=null && $attr_name!='' && $attr_name!=null)
{
$args = array(
array(
'taxonomy' => $attr_name,
'field' => 'slug',
'terms' => $attr_term
)
);
return $args;
}
$cat= $_GET['category'];
if($cat!='' && $cat!=null)
{
$args = array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $cat
)
);
return $args;
}
return $args;
}
}这是在我的定制2文件插件中的index.php文件中。
include('cfilters.php');
$filters = new Filters;我试着在中使用类名和‘类’,但是它也不起作用
发布于 2021-01-27 07:43:47
问题是第一个过滤器没有为第二个过滤器添加密钥,在第一个过滤器中初始化税务查询之后,它就开始工作了。
https://stackoverflow.com/questions/65898386
复制相似问题