不幸的是,这个基本功能还没有在Woocommerce中实现,所以我不得不请求您的帮助。
我需要通过前端搜索框通过ID或SKU搜索产品。我已经能够安装一个插件来解决与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' ); ?>