Woocommerce -按ID搜索产品


Woocommerce - Search products by ID

不幸的是,这个基本功能还没有在Woocommerce中实现,所以我不得不请求您的帮助。

我需要通过前端搜索框通过IDSKU搜索产品。我已经能够安装一个插件来解决与SKU的问题,但我仍然无法通过ID搜索。如果我在搜索中输入产品ID,它只给我0个结果。

我已经做了很多谷歌搜索,但似乎没有人需要这样的选项。

任何建议将非常感激!

示例产品链接:http://leighplumbing.co.uk/product/bisque-decorative-panel-towel-radiator/

非常感谢,请原谅我的英语水平很差

这是一个插件,这将有助于创建功能,以搜索产品的Id,当前插件将搜索产品的sku,你需要只是改变SQL查询我已经尝试过,它的工作很好。

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

非常简单,您只需要在archive-product.php文件中添加一个条件。文件路径:plugins'woocommerce'templates'archive-product.php

用主题文件覆盖此文件,将此文件移动到您的主题文件夹,如下所示:主题'主题' woocommerce ' archive-product.php

条件为:

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' ); ?>