我希望在wooCommerce中对一个名为class-wc-product-variation.php的文件进行一些修改,在woocommerce / includes /
中我想要修改的功能是:
public function variation_is_visible() {
$visible = true;
// Published == enabled checkbox
if ( get_post_status( $this->variation_id ) != 'publish' ) {
$visible = false;
}
// Out of stock visibility
elseif ( get_option('woocommerce_hide_out_of_stock_items') == 'yes' && ! $this->is_in_stock() ) {
$visible = false;
}
// Price not set
elseif ( $this->get_price() === "" ) {
$visible = false;
}
return apply_filters( 'woocommerce_variation_is_visible', $visible, $this->variation_id, $this->id );
}
我需要在其中添加另一个elseif行:
elseif ( get_option('woocommerce_hide_out_of_stock_items') != 'yes' && ! $this->is_in_stock() ) {
$visible = false;
}
如何在不更改核心文件的情况下执行此操作?
答案 0 :(得分:1)
永远不要修改插件中的核心文件。在给定的函数中,有可用的过滤器woocommerce_variation_is_visible
。使用该过滤器根据您的需要进行自定义。
核心文件中的代码是:
return apply_filters( 'woocommerce_variation_is_visible', $visible, $this->variation_id, $this->id );