0
你好傢伙,我希望你能幫助我, 問題是,我需要一個更好的產品查找器在新訂單管理端添加項目。因爲我沒有找到任何插件,我認爲我可以使用可以替換實際的濾鏡的一種模式。 現在的問題是,我在哪裏可以找到要修改的代碼,最好的方法是做什麼,有沒有我沒見過的插件? 我非常複雜,遺憾的圖像在西班牙自定義Woocommerce管理端添加項目模式
感謝C:
你好傢伙,我希望你能幫助我, 問題是,我需要一個更好的產品查找器在新訂單管理端添加項目。因爲我沒有找到任何插件,我認爲我可以使用可以替換實際的濾鏡的一種模式。 現在的問題是,我在哪裏可以找到要修改的代碼,最好的方法是做什麼,有沒有我沒見過的插件? 我非常複雜,遺憾的圖像在西班牙自定義Woocommerce管理端添加項目模式
感謝C:
如果這是一樣的「添加新秩序」頁面的「添加產品」,那麼過濾'woocommerce_json_search_found_products'會做你想做的。
# modified from WC_AJAX::json_search_products()
# untested but should point you in the right direction
add_filter('woocommerce_json_search_found_products', function($products) {
$term = wc_clean(stripslashes($_GET['term']));
# split the term into terms
$terms = explode(' ', $term);
$data_store = WC_Data_Store::load('product');
$ids = [];
foreach ($terms as $term) {
# do a search for each term and join the result
$ids = array_merge($ids, $data_store->search_products($term, '', false));
}
$ids = array_unique($ids);
if (! empty($_GET['exclude'])) {
$ids = array_diff($ids, (array) $_GET['exclude']);
}
if (! empty($_GET['include'])) {
$ids = array_intersect($ids, (array) $_GET['include']);
}
if (! empty($_GET['limit'])) {
$ids = array_slice($ids, 0, absint($_GET['limit']));
}
$product_objects = array_filter(array_map('wc_get_product', $ids), 'wc_products_array_filter_editable');
$products = array();
foreach ($product_objects as $product_object) {
$products[ $product_object->get_id() ] = rawurldecode($product_object->get_formatted_name());
}
return $products;
});
讓我知道,如果這個提示是不夠的。我使用這個過濾器並且非常瞭解它。 –
我發現這個'// define the woocommerce_json_search_found_products callback function filter_woocommerce_json_search_found_products($ products){ //使得過濾魔術在這裏發生... return $ products; }; //添加過濾器 add_filter('woocommerce_json_search_found_products','filter_woocommerce_json_search_found_products',10,1);'我想過濾標籤,任何想法? >。< –
該過濾器位於產品說明數組中。但是,此數組的索引是產品ID。因此,您可以使用產品ID來獲取產品的任何屬性。如果你想從數組中刪除產品,你可以使用array_filter()。讓我知道如果這不夠清楚。 –