Woocommerce - 按ID搜索产品

Unfortunately this basic functionality has not been implemented in Woocommerce yet, so I have to ask for your help.

I need to search the products by ID or SKU via the front-end searchbox. I have been able to install a plugin to solve the issue with the SKU, but I am still not able to search by ID. If I type in the Product ID in the search it just gives me 0 results.

I have done so many Google searches but seems like nobody's needed such option so far.

Any advice would be very appreciated!

Example product link: http://leighplumbing.co.uk/product/bisque-decorative-panel-towel-radiator/

Thank you very much and forgive my poor english skills.

Here is the plugin which will help to create function for to search product by Id, The current plugin will search product by sku you need to just change the SQL query i have tried and its working fine.

https://wordpress.org/plugins/search-by-sku-for-woocommerce/

It's very simple , Pelly only you need to add one condition in archive-product.php file. File Path : plugins\woocommerce\templates\archive-product.php

Overwrite this file by theme file move this file to your theme folder like as: themes\your-theme\woocommerce\archive-product.php

Condition is:

if ( is_search() ) {
    //put your search results markup here (you can copy some code from archive-product.php file and also from content-product.php to create a standard markup
} else {
    // here goes the content that is already in that file (archive-product.php) 
}

Like My Template:

    <?php
/**
 * The Template for displaying product archives, including the main shop page which is a post type archive.
 *
 * Override this template by copying it to yourtheme/woocommerce/archive-product.php
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     2.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

get_header( 'shop' ); ?>

<?php if ( is_search() ) { //@@@@@@@@@@@@@@@@@@@@ Search Page Reshult show form here @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
$ID = get_search_query();    //@@@@@@@ Get Searched Product ID
if ( FALSE === get_post_status( $ID ) ) {    //@@@@@@ Check product exist or Not
  // The post does not exist

  echo 'Product Not Available...';

} else {
  // The post exists
  echo do_shortcode('[product id="'.$ID.'"]') ;
}

 }   // @@@@@@@@@@@@@@@@@@@@@@@@@@@  End Search Page Reshult Code


 else     // @@@@@@@@@@@@@@@@@@Shop Page Code start Here@@@@@@@@@@@@@@@@@@@  
 {   
        /**
         * woocommerce_before_main_content hook
         *
         * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
         * @hooked woocommerce_breadcrumb - 20
         */
        do_action( 'woocommerce_before_main_content' );
    ?>
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

<h1 class="page-title">
  <?php woocommerce_page_title(); ?>
</h1>
<?php endif; ?>
<?php
            /**
             * woocommerce_archive_description hook
             *
             * @hooked woocommerce_taxonomy_archive_description - 10
             * @hooked woocommerce_product_archive_description - 10
             */
            do_action( 'woocommerce_archive_description' );
        ?>
<?php if ( have_posts() ) : ?>
<?php
                /**
                 * woocommerce_before_shop_loop hook
                 *
                 * @hooked woocommerce_result_count - 20
                 * @hooked woocommerce_catalog_ordering - 30
                 */
                do_action( 'woocommerce_before_shop_loop' );
            ?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
                /**
                 * woocommerce_after_shop_loop hook
                 *
                 * @hooked woocommerce_pagination - 10
                 */
                do_action( 'woocommerce_after_shop_loop' );
            ?>
<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php wc_get_template( 'loop/no-products-found.php' ); ?>
<?php endif; ?>
<?php
        /**
         * woocommerce_after_main_content hook
         *
         * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
         */
        do_action( 'woocommerce_after_main_content' );
    ?>
<?php
        /**
         * woocommerce_sidebar hook
         *
         * @hooked woocommerce_get_sidebar - 10
         */
        do_action( 'woocommerce_sidebar' );
} ?>
<?php get_footer( 'shop' ); ?>