پایگاه دانش

جستجو بر اساس فیلد سفارشی در ووکامرس

جستجو بر اساس فیلد سفارشی در ووکامرس

آیا قصد دارید جستجو بر اساس یک فیلد سفارشی را در فروشگاه ووکامرس تنظیم کنید؟

جستجوی محصول پیش‌فرض ووکامرس بر اساس اینکه عبارت جستجو در عنوان محصول، SKU، توضیحات کوتاه و طولانی وجود دارد یا خیر، نتایج را برمی‌گرداند.

اما اگر بخواهید درون یک فیلد سفارشی نیز جستجو کنید، یعنی یک فیلد سفارشی به نام “_brand” دارید و همچنین می خواهید بر اساس “_brand” جستجو کنید، باید چه کاری انجام دهید؟

در ادامه نحوه جستجو بر اساس فیلد سفارشی در ووکامرس را به شما آموزش می دهیم.

جستجو بر اساس فیلد سفارشی در ووکامرس

نحوه جستجو بر اساس فیلد سفارشی در فروشگاه ووکامرس

برای تنظیم جستجو بر اساس فیلد سفارشی در ووکامرس، به عنوان مثال جستجو بر اساس SKU یا برند، لازم است تا قطعه کد زیر را در فایل functions.php قالب وردپرس فعال سایت خود اضافه کنید:

add_filter( 'posts_search', 'themefars_product_search_by_custom_field' );

function themefars_product_search_by_custom_field( $where ) {
global $wpdb, $wp;
if ( is_admin() || ! is_search() || ! isset( $wp->query_vars['s'] ) || 'product' != $wp->query_vars['post_type'] ) {
return $where;
}
$product_ids = array();
$terms = explode( ',', $wp->query_vars['s'] );
foreach ( $terms as $term ) { 
$products = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_parent FROM {$wpdb->posts} LEFT JOIN {$wpdb->postmeta} ON {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id WHERE meta_key IN ( '_brand' ) AND meta_value LIKE %s;", '%' . $wpdb->esc_like( wc_clean( $term ) ) . '%' ) ); 
$products = array_merge( wp_list_pluck( $products, 'ID' ), wp_list_pluck( $products, 'post_parent' ) );
if ( sizeof( $products ) > 0 ) {
$product_ids = array_merge( $product_ids, $products );
}
}
$product_ids = array_filter( array_unique( array_map( 'absint', $product_ids ) ) );
if ( sizeof( $product_ids ) > 0 ) {
$where = str_replace( 'AND (((', "AND ( ({$wpdb->posts}.ID IN (" . implode( ',', $product_ids ) . ")) OR ((", $where );
} 
return $where; 
}

تنها چیزی که باید در قطعه بالا تغییر دهید “_brand” است. آن را به کلید فیلد سفارشی خود تغییر دهید و باید بر اساس آن نتیجه بگیرید.

به پایان این آموزش رسیدیم، امیدواریم که نحوه تنظیم جستجو بر اساس فیلد سفارشی در فروشگاه ووکامرس را یاد گرفته باشید. همچنین ممکن است بخواهید آموزش های زیر را هم ببینید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *