2017-06-30 88 views
0

你好傢伙,我希望你能幫助我, 問題是,我需要一個更好的產品查找器在新訂單管理端添加項目。因爲我沒有找到任何插件,我認爲我可以使用可以替換實際的濾鏡的一種模式。 現在的問題是,我在哪裏可以找到要修改的代碼,最好的方法是做什麼,有沒有我沒見過的插件? 我非常複雜,遺憾的圖像在西班牙自定義Woocommerce管理端添加項目模式

enter image description here

感謝C:

回答

1

如果這是一樣的「添加新秩序」頁面的「添加產品」,那麼過濾'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; 
});  
+0

讓我知道,如果這個提示是不夠的。我使用這個過濾器並且非常瞭解它。 –

+0

我發現這個'// 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);'我想過濾標籤,任何想法? >。< –

+0

該過濾器位於產品說明數組中。但是,此數組的索引是產品ID。因此,您可以使用產品ID來獲取產品的任何屬性。如果你想從數組中刪除產品,你可以使用array_filter()。讓我知道如果這不夠清楚。 –

相關問題