Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 禁用WooCommerce插件中的公共功能_Php_Wordpress_Function_Woocommerce_Overwrite - Fatal编程技术网

Php 禁用WooCommerce插件中的公共功能

Php 禁用WooCommerce插件中的公共功能,php,wordpress,function,woocommerce,overwrite,Php,Wordpress,Function,Woocommerce,Overwrite,我使用的是Woocommerce管理员自定义订单字段插件,在后端搜索订单时会出现问题。当我在管理订单搜索功能上运行慢速查询时,它会搜索这些自定义字段,并在搜索中添加10秒左右的时间 我已经找到了这个插件的功能,我正在努力找到最好的方法来禁用搜索中包含的自定义字段 当我注释掉这段代码时,搜索很快,只需几秒钟。我想在我的functions.php中添加覆盖或以某种方式禁用它 public function add_search_fields( $search_fields ) { fore

我使用的是Woocommerce管理员自定义订单字段插件,在后端搜索订单时会出现问题。当我在管理订单搜索功能上运行慢速查询时,它会搜索这些自定义字段,并在搜索中添加10秒左右的时间

我已经找到了这个插件的功能,我正在努力找到最好的方法来禁用搜索中包含的自定义字段

当我注释掉这段代码时,搜索很快,只需几秒钟。我想在我的functions.php中添加覆盖或以某种方式禁用它

public function add_search_fields( $search_fields ) {

    foreach ( wc_admin_custom_order_fields()->get_order_fields() as $order_field ) {

        if ( 'date' === $order_field->type  ) {
            array_push( $search_fields, $order_field->get_meta_key() . '_formatted' );
        } else {
            array_push( $search_fields, $order_field->get_meta_key() );
        }
    }

    return $search_fields;
}
有谁能给我一些建议,告诉我如何在不直接编辑插件文件的情况下停止执行? 干杯
Nik

不要注释所有函数代码,只注释函数内的活动代码,如:

public function add_search_fields( $search_fields ) {
    /* 
    foreach ( wc_admin_custom_order_fields()->get_order_fields() as $order_field ) {

        /* if ( 'date' === $order_field->type  ) {
            array_push( $search_fields, $order_field->get_meta_key() . '_formatted' );
        } else {
            array_push( $search_fields, $order_field->get_meta_key() );
        }
    }
    */  
    return $search_fields;
}
现在这个函数将不会有任何效果,因为它的活动代码会被注释


现在,覆盖任何核心插件代码都是需要避免的…总是有不同的方法来改变事情,像使用可用的钩子和其他东西可能更复杂…

通过functions.php禁用这会是一件复杂的事情吗?@Nik是的,可能是…现在如果我记得每个自定义字段的插件机制,你可以设置多个行为…检查查看订单屏幕上的字段选项Allow Filtering(允许过滤)是否未为每个字段启用领域现在最好的方法应该是删除这个插件并编码所有必需的自定义字段。它会减轻一切。他们确实有一个显示在视图中的订单屏幕选项,但即使删除它,它也会包含在搜索中。看来您选择的定制解决方案最有意义。