我有一个功能,根据一些条件更新变化的价格。我们的商店销售课程并根据日期(自定义字段),从下拉选项中删除过去今天的变化。
一切都按预期运作。但问题是,产品页面非常慢,过滤器会在加载时间内增加5-8秒。
当我在输出变化ID的函数中输入回波时,它会根据变化量输出12次。我们有大约20个变体,所以这个功能运行240次以上。
这是过滤器和功能:
add_filter('woocommerce_product_variation_get_price', 'repeat_price_filter', 10, 2);
function repeat_price_filter($price, $product_this){
if( isset($product_this->variation_id) ):
$wc_pf = new WC_Product_Factory();
$var_product = $wc_pf->get_product( $product_this->variation_id );
//if condtions, modify price here.
endif;
return $price;
}
我怎样才能找出重复调用此过滤器的内容?我尝试将IF放入检查中,以便仅检查有助于略微改变的instock变化。
我还有另一个更新产品页面价格的功能,有没有办法只将这个过滤器用于购物车/结账等?
谢谢!