我在Wordpress Multisite中工作,并试图确保所有的股票信息都从基地网站表中获取。我想在我的主题的functions.php中覆盖get_stock_quantity()woocomerce函数。我发现的是任何方式来覆盖我的functions.php中的get_stock_quantity?
public function get_stock_quantity($context = 'view') {
return $this->get_prop('stock_quantity', $context);
}
现在,这既不是过滤器也不是动作。我重写了一个过滤器,即
add_filter('woocommerce_product_get_stock_quantity', 'wcs_custom_get_stock_quantity', 1, 2);
function wcs_custom_get_stock_quantity($availability, $_product) {
global $wpdb;
$productQuantity = $wpdb->get_results('SELECT * FROM '.$wpdb->base_prefix.'postmeta WHERE post_id = '.$_product->get_id() ." AND meta_key = '_stock'", OBJECT);
return $productQuantity[0]->meta_value;
}
但woocommerce_product_get_stock_quantity仅适用于产品列表页面。单个产品编辑页面使用get_stock_quantity。
如何在不更改核心文件的情况下覆盖它? 谢谢
好的我做到了,但我面临同样的问题。过滤器“woocommerce_data_get_stock_quantity”不会在编辑产品页面的库存详细信息上调用,因为它显示其自己的表的库存,而不是从基本表的表中获取它。 – Omicans