我正在创建高级woocommerce搜索,我想在搜索查询中添加sku以及product_tag和product_category。下面,我在WooCommerce产品搜索答案代码中使启用自定义分类法,从而启用了对多个分类法的搜索:
add_filter( 'posts_search', 'woocommerce_search_product_tag_extended', 999, 2 );
function woocommerce_search_product_tag_extended( $search, $query ) {
global $wpdb, $wp;
$qvars = $wp->query_vars;
if ( is_admin() || empty($search) || ! ( isset($qvars['s'])
&& isset($qvars['post_type']) && ! empty($qvars['s'])
&& $qvars['post_type'] === 'product' ) ) {
return $search;
}
// Here set your custom taxonomies in the array
$taxonomies = array('product_tag', 'product_cat');
$tax_query = array('relation' => 'OR'); // Initializing tax query
// Loop through taxonomies to set the tax query
foreach( $taxonomies as $taxonomy ) {
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'name',
'terms' => esc_attr($qvars['s']),
);
}
// Get the product Ids
$ids = get_posts( array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'fields' => 'ids',
'tax_query' => $tax_query,
) );
if ( sizeof( $ids ) > 0 ) {
$search = str_replace( 'AND (((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', $ids ) . ")) OR (", $search);
}
return $search;
}
我也想在搜索查询中添加产品sku,如何添加它?
以下内容将产品搜索扩展到多个分类法(产品类别和产品标签)和多个自定义字段(如此处的SKU):
add_filter( 'posts_search', 'woocommerce_search_product_mega_extended', 999, 2 );
function woocommerce_search_product_mega_extended( $search, $query ) {
global $wpdb, $wp;
$qvars = $wp->query_vars;
if ( is_admin() || empty($search) || ! ( isset($qvars['s'])
&& isset($qvars['post_type']) && ! empty($qvars['s'])
&& $qvars['post_type'] === 'product' ) ) {
return $search;
}
// SETTINGS:
$taxonomies = array('product_tag', 'product_cat'); // Here set your custom taxonomies in the array
$meta_keys = array('_sku'); // Here set your product meta key(s) in the array
// Initializing tax query
$tax_query = count($taxonomies) > 1 ? array('relation' => 'OR') : array();
// Loop through taxonomies to set the tax query
foreach( $taxonomies as $taxonomy ) {
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'name',
'terms' => esc_attr($qvars['s']),
);
}
// Get the product Ids from taxonomy(ies)
$tax_query_ids = (array) get_posts( array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'fields' => 'ids',
'tax_query' => $tax_query,
) );
// Initializing meta query
$meta_query = count($meta_keys) > 1 ? array('relation' => 'OR') : array();
// Loop through taxonomies to set the tax query
foreach( $taxonomies as $taxonomy ) {
$meta_query[] = array(
'key' => '_sku',
'value' => esc_attr($qvars['s']),
);
}
// Get the product Ids from custom field(s)
$meta_query_ids = (array) get_posts( array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'fields' => 'ids',
'meta_query' => $meta_query,
) );
$product_ids = array_unique( array_merge( $tax_query_ids, $meta_query_ids ) ); // Merge Ids in one array with unique Ids
if ( sizeof( $product_ids ) > 0 ) {
$search = str_replace( 'AND (((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', $product_ids ) . ")) OR (", $search);
}
return $search;
}
代码进入您的活动子主题(或活动主题)的functions.php文件中。经过测试和工作。
我在一个使用工具集类型生成“产品”帖子类型和“产品类别”分类法(产品类别)的网站上工作。现在我正在将WooCommerce添加到该站点,需要将“产品类别”分类设置为产品的WooCommerce分类,即Product_cat。WooCommerce已经选择了产品帖子类型,所有产品都出现在WooCommerce产品中。我只需要让分类也出现在那里。 我尝试使用一个名为Taxonomy Switcher的
在WooCommerce中,您可以通过两种方式向产品添加属性。 a.在Product-&>Attributes中创建一个属性,为它设置一个名称(即颜色),将它定义为选择字段还是文本字段。保存。 b.编辑产品切换到属性-选项卡,从下拉菜单中选择“颜色”,填写一些值。保存。 编辑产品,切换到属性选项卡,选择“添加自定义属性”,设置名称,填写一些值。保存。 在方法。1中,属性被保存并连接在三个表上。wp
我一直在挖掘,但我没有找到我需要的答案。我目前正在使用WordPress-Woocommerce,一个叫做Shopifiq的主题。 我想在每个产品类别页面上显示不同的横幅。我唯一能想到的就是加上这样的东西: 也许在功能上。php文件,但我对php不太熟悉,我正在努力。任何帮助都将不胜感激! 编辑 我应该提到我希望横幅取代顶部的蓝色条,这是页面标题中的手柄。php。我安装了一个插件,如果有人查看,它
我已经创建了一个基于内置变量product type的自定义WooCommerce产品类型。我想拥有产品变体和特定于我的产品类型的自定义特征和字段。这是所有工作和显示在管理和我的自定义前端产品页面模板良好。 这是我的定制产品,供参考: 但是,当我将产品及其变体发布到购物车时,行为会出现混乱,因为代码
WooCommerce后台的产品检索与前台搜索略有不同。前台是在WordPress默认搜索的基础上修改,后台直接用了一套自己的逻辑,从wc_product_meta_lookup这个表里检索产品,调用函数WC_Product_Data_Store_CPT->search_products(),这个函数只有一个filter——woocommerce_product_pre_search_produc
我对woocommerce(最新版本)中的自定义字段有问题。我需要你的帮助。 我的代码 现在我在从自定义字段获取数据时遇到问题。字段被保存到数据库中,因为在我编辑产品时,值在字段中,但在完成订单后,我无法在钩子中获取它:(我尝试使用get_post_meta、get_meta和其他方法,但都不起作用。有人知道原因吗?