Woocommerce可搜索产品自定义字段

我的产品有两个重要的代码,分别是EAN-13及其型号。我在SKU中写了EAN-13,在自定义字段中写了产品型号。 SKU可以完美搜索,但数据却不能。

是否可以通过后端办公室搜索产品自定义字段?

请帮助!预先感谢!

beckyang123 回答:Woocommerce可搜索产品自定义字段

当我寻找几乎类似的问题时,我在https://dominykasgel.com/extend-search-custom-post-types-wordpress-admin/处找到了解决方案,这是我在子主题中用于functions.php的代码:

function extend_admin_search( $query ) {

$custom_fields = array(
    "_file_name",);

if( ! is_admin() )
    return;

$search_term = $query->query_vars['s'];
$query->query_vars['s'] = '';
$query->set('_meta_or_title',$search_term);

if ( $search_term != '' ) {
    $meta_query = array( 'relation' => 'OR' );

    foreach( $custom_fields as $custom_field ) {
        array_push( $meta_query,array(
            'key' => $custom_field,'value' => $search_term,'compare' => 'LIKE'
        ));
    }
    $query->set( 'meta_query',$meta_query );
};
}
add_action( 'pre_get_posts','extend_admin_search',6,2);

add_action( 'pre_get_posts',function( $q )
{
if( $title = $q->get( '_meta_or_title' ) )
{
    add_filter( 'get_meta_sql',function( $sql ) use ( $title )
    {
        global $wpdb;

        // Only run once:
        static $nr = 0; 
        if( 0 != $nr++ ) return $sql;

        // Modified WHERE
        $sql['where'] = sprintf(
            " AND ( %s OR %s ) ",$wpdb->prepare( "{$wpdb->posts}.post_title like '%%%s%%'",$title),mb_substr( $sql['where'],5,mb_strlen( $sql['where'] ) )
        );

        return $sql;
    },12,1);
}
},1);

免责声明:它是几年前使用的,所以我不确定它现在是否可以正常工作。

本文链接:https://www.f2er.com/3111780.html

大家都在问