为了账号安全,请及时绑定邮箱和手机立即绑定

Wordpress Woocommerce 在商店页面上显示属性

Wordpress Woocommerce 在商店页面上显示属性

PHP
神不在的星期二 2023-04-21 16:28:53
我想给wordpress的商店页面添加一些属性。我在 Stackoverflow 上找到的这段代码显示了所有属性标签,但在所有相同的属性名称上。add_action('woocommerce_after_shop_loop_item_title','add_attribute');function add_attribute() {global $product;$product_attributes = array( 'pa_country','pa_class','pa_faction','pa_gender' );$attr_output = array();foreach( $product_attributes as $taxonomy ){    if( taxonomy_exists($taxonomy) ){        $label_name = get_taxonomy( $taxonomy )->labels->singular_name;        $value = $product->get_attribute('pa_country','pa_class','pa_faction','pa_gender');        if( ! empty($value) ){            $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$value.'</span>';        }    }}echo '<div class="product-attributes">'.implode( '<br>', $attr_output ).'</div>';}当前状态我只需要一点帮助就可以让它显示所有正确的属性。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您的代码中有一些小错误。请尝试以下操作:


add_action('woocommerce_after_shop_loop_item_title', 'display_shop_loop_product_attributes');

function display_shop_loop_product_attributes() {

    global $product;


    // Define you product attribute taxonomies in the array

    $product_attribute_taxonomies = array( 'pa_country', 'pa_class', 'pa_faction', 'pa_gender' );

    $attr_output = array(); // Initializing


    // Loop through your defined product attribute taxonomies

    foreach( $product_attribute_taxonomies as $taxonomy ){

        if( taxonomy_exists($taxonomy) ){

            $label_name = wc_attribute_label( $taxonomy, $product );


            $term_names = $product->get_attribute( $taxonomy );


            if( ! empty($term_names) ){

                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$term_names.'</span>';

            }

        }

    }


    // Output

    echo '<div class="product-attributes">'.implode( '<br>', $attr_output ).'</div>';

}

代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。


仅对于简单的产品,您将使用以下内容:


add_action('woocommerce_after_shop_loop_item_title', 'display_shop_loop_product_attributes');

function display_shop_loop_product_attributes() {

    global $product;


    // Only for simple products

    if ( ! $product->is_type( 'simple' ) ) return;


    // Define you product attribute taxonomies in the array

    $product_attribute_taxonomies = array( 'pa_country', 'pa_class', 'pa_faction', 'pa_gender' );

    $attr_output = array(); // Initializing


    // Loop through your defined product attribute taxonomies

    foreach( $product_attribute_taxonomies as $taxonomy ){

        if( taxonomy_exists($taxonomy) ){

            $label_name = wc_attribute_label( $taxonomy, $product );


            $term_names = $product->get_attribute( $taxonomy );


            if( ! empty($term_names) ){

                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$term_names.'</span>';

            }

        }

    }


    // Output

    echo '<div class="product-attributes">'.implode( '<br>', $attr_output ).'</div>';

}

代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信