我在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