因此,我一直在寻找一种方法来合并此方法,而无需安装另一个功能超出我所需的插件.
可以说,我们的产品SKU的结构形式如下:供应商编号,破折号(-)和产品ID.因此,我们的SKU看起来像是469-852369(供应商产品).供应商ID可以是1到5位之间的任何数字,而产品ID可以是1到10位之间的任何数字.我们希望能够搜索产品而不必添加破折号(-).因此,对于469-852369,我希望能够只输入469852369,产品就会出现.
我知道有很多插件可以做到这一点,但我不想添加一个插件来解决这个问题.有关如何通过PHP完成此操作的任何帮助和指导都将有所帮助.
解决方法:
您可以将自定义查询设置为搜索结果.在使用“ 469852369”正常搜索时,您可以在3位数字后添加“-”,例如“ 469-852369”,然后将其传递到WordPress查询中以获取结果.
function get_product_by_sku( $sku ) {
global $wpdb;
$sku = implode("-", str_split($sku, 3));
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
if ( $product_id ) return new WC_Product( $product_id );
// YOUR CODE
return null;
}
希望这对您有所帮助.
谢谢.