首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >woocommerce管理产品搜索多个skus

woocommerce管理产品搜索多个skus
EN

Stack Overflow用户
提问于 2018-03-23 03:34:56
回答 1查看 1.8K关注 0票数 0

因此,我为一家销售公司工作,该公司刚刚使用Wordpress和Woocommerce插件建立了一家网络商店。

我想要能够做的是在产品标签上的管理搜索,我们的产品的所有信息都持有。据我所知,普通搜索会对您在框中输入的术语执行mySQL查询。我在functions.php中有一个代码片段,让它也可以搜索元字段_sku。所以当我输入sku号码的时候...7026它将拉出标题、描述或sku中包含7026的任何项目。

但是,我想能够进入说....7026 4567 3883放到搜索框中,它会查询数据库以查找与这些编号中的任何一个匹配的任何产品( OR关系搜索而不是AND),如果我在下面键入I get nothing,因为它会搜索标题、描述或sku中包含7026和4567以及3883的任何产品,但我的目标是使搜索至少返回数据库中具有sku 7026、4567和3883的3个产品

任何帮助都将不胜感激。几天来,我一直在尝试让一个代码片段正常工作,但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2018-07-21 00:05:49

在这篇文章中找到了答案:mutli sku admin search

帖子中的代码来自Bjorn,非常感谢。

代码如下:

代码语言:javascript
复制
/**
 * Use multiple sku's to find WOO products in wp-admin
 * NOTE: Use '|' as a sku delimiter in your search query. Example: '1234|1235|1236'
**/
function woo_multiple_sku_search( $query_vars ) {

global $typenow;
global $wpdb;
global $pagenow;

if ( 'product' === $typenow && isset( $_GET['s'] ) && 'edit.php' === $pagenow ) {
    $search_term = esc_sql( sanitize_text_field( $_GET['s'] ) );

    if (strpos($search_term, '|') == false) return $query_vars;

    $skus = explode('|',$search_term);

    $meta_query = array(
        'relation' => 'OR'
    );
    if(is_array($skus) && $skus) {
        foreach($skus as $sku) {
            $meta_query[] = array(
                'key' => '_sku',
                'value' => $sku,
                'compare' => '='
            );
        }
    }

    $args = array(
        'posts_per_page'  => -1,
        'post_type'       => 'product',
        'meta_query'      => $meta_query
    );
    $posts = get_posts( $args );

    if ( ! $posts ) return $query_vars;

    foreach($posts as $post){
      $query_vars['post__in'][] = $post->ID;
    }
}

return $query_vars;
}
add_filter( 'request', 'woo_multiple_sku_search', 20 );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49437051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档