currently the search result only showing all the woocommerce default product field (product title, category, tag, .etc).
I've add a new custom field inside the woocommerce product using this code inside functions.php
/** Add Sub-Title option in Woocommerce */
add_action( 'woocommerce_product_options_general_product_data', 'my_custom_field' );
function my_custom_field() {
woocommerce_wp_text_input(
array(
'id' => '_subtitle',
'label' => __( 'Reference', 'woocommerce' ),
'placeholder' => 'Reference code',
'description' => __( 'Enter the reference code', 'woocommerce' )
)
);
}
add_action( 'woocommerce_process_product_meta', 'my_custom_field_save' );
function my_custom_field_save( $post_id ){
$subtitle = $_POST['_subtitle'];
if( !empty( $subtitle ) )
update_post_meta( $post_id, '_subtitle', esc_attr( $subtitle ) );
}
How can I include this custom field value in the search result? I've tried google for it, but no any significant solution.
currently the search result only showing all the woocommerce default product field (product title, category, tag, .etc).
I've add a new custom field inside the woocommerce product using this code inside functions.php
/** Add Sub-Title option in Woocommerce */
add_action( 'woocommerce_product_options_general_product_data', 'my_custom_field' );
function my_custom_field() {
woocommerce_wp_text_input(
array(
'id' => '_subtitle',
'label' => __( 'Reference', 'woocommerce' ),
'placeholder' => 'Reference code',
'description' => __( 'Enter the reference code', 'woocommerce' )
)
);
}
add_action( 'woocommerce_process_product_meta', 'my_custom_field_save' );
function my_custom_field_save( $post_id ){
$subtitle = $_POST['_subtitle'];
if( !empty( $subtitle ) )
update_post_meta( $post_id, '_subtitle', esc_attr( $subtitle ) );
}
How can I include this custom field value in the search result? I've tried google for it, but no any significant solution.
You have to modify WooCommerce search query.
do_action( 'woocommerce_product_query', $query, $instance );
_subtitle
metaSomething like this (not tested):
if ( $query->is_search ) {
$query->set('meta_query', array(
array(
'key' => '_subtitle',
'value' => $query->query_vars['s'],
'compare' => 'LIKE'
)
));
};