默认情况,woocommerce产品模块的SKU属性是不参与前台的搜索功能,【如果有的话那就说明你用的模版已经解决了这个问题】,以下代码可以修复这个问题: // 启用woocommerce的SKU搜索功能
// 启用woocommerce的SKU搜索功能 function search_by_sku( $search, $query_vars ) { global $wpdb; if ( isset( $query_vars->query['s'] ) && !empty( $query_vars->query['s'] ) ){ $search_sku = $query_vars->查询['s']; $args = array( posts_per_page' => -1、 post_type' => array('product', 'product_variation')、 'meta_query' => array( array( 'key' => '_sku'、 'value' => $search_sku、 'compare' => 'LIKE' (比较) ) ) ); $posts = get_posts( $args ); 如果 ( empty( $posts ) ) 返回 $search; $get_post_ids = array(); foreach ( $posts as $post ) { if ( $post->post_type == 'product_variation' ) { $get_post_ids[] = $post->post_parent; } else { $get_post_ids[] = $post->ID; } } if ( sizeof( $get_post_ids ) > 0 ){ $search = str_replace( 'AND ((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', array_unique($get_post_ids) ) ."))OR (", $search ); } } return $search; } add_filter( 'posts_search', 'search_by_sku', 999, 2 );
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)