显示空的

时间:2017-07-14 22:32:34

标签: php wordpress woocommerce attributes product

我想在WooCommerce中列出所有属性(填写或不填写)。

使用此代码:

//show attributes after summary in product single view add_action('woocommerce_single_product_summary', function() { //template for this is in storefront-child/woocommerce/single-product/product-attributes.php global $product; echo $product->list_attributes(); }, 25);

但这只显示填充属性,我想全部展示。

请帮助。

由于

1 个答案:

答案 0 :(得分:1)

1)在WooCommerce 3+ WC_Product list_attributes() 方法已被弃用。相反,您应该使用函数wc_display_product_attributes($product) ...

2)您无法在产品中保存具有空值的属性...

您可能正在考虑的是获取所有现有的Product属性。如果是这种情况,可以采用以下方式:

function wc_get_all_attributes(){
    global $wpdb;

    $table_name = $wpdb->prefix . "woocommerce_attribute_taxonomies";

    $wc_attributes = $wpdb->get_results("
        SELECT attribute_id, attribute_name, attribute_label
        FROM $table_name
    ");

    return $wc_attributes;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

<强> USAGE:

然后你可以在活动主题的任何php文件中以多种方式使用它:

例如,列出属性名称(标签):

$all_attributes = wc_get_all_attributes();

foreach( $all_attributes as $attribute_obj ){
    echo '<p>'.$attribute_obj->attribute_label.'</p>';
}

这将输出所有现有产品属性。

在每个 $attribute_obj 对象中,您将能够获得:

$attribute_obj->attribute_id; // ID
$attribute_obj->attribute_name; // SLUG
$attribute_obj->attribute_label; // LABEL (displayed name)