在 WooCommerce 中获取附加到产品的所有 "active" 属性分类法?
Get all "active" attributes taxonomies attached to products in WooCommerce?
我想获取附加到产品的所有 "active" 属性列表,
因此,如果该属性存在,但不附加到任何产品,则不会显示。
我可以像这样将所有属性显示为下拉列表:
$attributes = wc_get_attribute_taxonomies();
if($attributes) {
echo '<select name="all-attributes" id="all-attributes">';
foreach ( $attributes as $attribute ) {
echo '<option value="' . $attribute->attribute_name . '">' . $attribute->attribute_label . '</option>';
}
echo '</select>';
}
但是通过这种方式我得到了所有属性,甚至没有附加非活动属性。
如何在 WooCommerce 中获取附加到产品的所有 活动 产品属性分类法?
要获得所有活动产品属性分类法(至少附加到产品)您将需要一个自定义简单sql 查询如下 (嵌入在 php 函数中):
function wc_get_active_attribute_taxonomies() {
global $wpdb;
return $wpdb->get_results( "
SELECT DISTINCT wat.*, tt.taxonomy
FROM {$wpdb->prefix}woocommerce_attribute_taxonomies wat
INNER JOIN {$wpdb->prefix}term_taxonomy tt
ON tt.taxonomy = CONCAT('pa_', wat.attribute_name)
INNER JOIN {$wpdb->prefix}term_relationships tr
ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE tt.count > 0
" );
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
用法 (根据您的代码):
只需替换:
$attributes = wc_get_attribute_taxonomies();
作者:
$attributes = wc_get_active_attribute_taxonomies();
Note: This query output, includes additionally the "taxonomy" argument.
我想获取附加到产品的所有 "active" 属性列表,
因此,如果该属性存在,但不附加到任何产品,则不会显示。
我可以像这样将所有属性显示为下拉列表:
$attributes = wc_get_attribute_taxonomies();
if($attributes) {
echo '<select name="all-attributes" id="all-attributes">';
foreach ( $attributes as $attribute ) {
echo '<option value="' . $attribute->attribute_name . '">' . $attribute->attribute_label . '</option>';
}
echo '</select>';
}
但是通过这种方式我得到了所有属性,甚至没有附加非活动属性。
如何在 WooCommerce 中获取附加到产品的所有 活动 产品属性分类法?
要获得所有活动产品属性分类法(至少附加到产品)您将需要一个自定义简单sql 查询如下 (嵌入在 php 函数中):
function wc_get_active_attribute_taxonomies() {
global $wpdb;
return $wpdb->get_results( "
SELECT DISTINCT wat.*, tt.taxonomy
FROM {$wpdb->prefix}woocommerce_attribute_taxonomies wat
INNER JOIN {$wpdb->prefix}term_taxonomy tt
ON tt.taxonomy = CONCAT('pa_', wat.attribute_name)
INNER JOIN {$wpdb->prefix}term_relationships tr
ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE tt.count > 0
" );
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
用法 (根据您的代码):
只需替换:
$attributes = wc_get_attribute_taxonomies();
作者:
$attributes = wc_get_active_attribute_taxonomies();
Note: This query output, includes additionally the "taxonomy" argument.