Woocommerce定制单一产品视图

时间:2015-10-08 09:18:58

标签: php wordpress woocommerce

我正在进行woocommerce定制。但我现在对如何获取产品的属性还不够好。我还想获得属性存档页面的链接。

我把woocommerce文件夹放在我的主题文件夹中。这样我可以制作自定义行为。在这个woocommerce文件夹中是一个文件主题名称/ woocommerce / single-product / tabs / tabs.php

此文件使用打印产品说明。之后,我输入了代码片段来打印类别名称及其描述。我还想要它打印产品的属性。 (最好是链接到它的档案页面。)

有没有办法使用片段的一部分来回应产品的属性?



global $post;
    $terms = get_the_terms( $post->ID, 'product_cat' );
    $attribute_names = array( 'Producten');
        foreach ( $attribute_names as $attribute_name ) {
                    $taxonomy = get_taxonomy( $attribute_name );
                    if ( $taxonomy && ! is_wp_error( $taxonomy ) ) {
                            $terms = wp_get_post_terms( $post->ID, $attribute_name );
                            $terms_array = array();
                    if ( ! empty( $terms ) ) {
                            foreach ( $terms as $term ) {
                                   $archive_link = get_term_link( $term->slug, $attribute_name );
                                   $full_line = '<a href="' . $archive_link . '">'. $term->name . '</a>';
                                   array_push( $terms_array, $full_line );
                            }
                            echo $taxonomy->labels->name . ' ' . implode( $terms_array, ', ' );
                    }
            }
        }
    foreach ($terms as $term) {                             
        $name = $term->name;
        $desc = $term->description;

        break;
    }

echo $name;
echo '<br>';
echo $desc;
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

你需要编写这样的代码,不完全是这样的,你需要在这里进行一些修改,我只发布了我工作中的一些代码部分,在那里我正在检索重量和价格。在参数中你可以根据需要添加类别。如果您遇到任何错误或问题,请在使用此代码后告诉我,因为我还没有测试过。

  <?php
         $arg = array('posts_per_page' => -1, 'numberposts' => -1, 'post_type' => 'product');
        $products = get_posts($arg);
        <?php $product_obj = new WC_Product_Factory();  ?>  <?php if ($products): ?>
        <?php foreach($products as $product): ?><?php $product = $product_obj->get_product($product); ?>

       <?php if ($product->product_type == 'variable'): ?>
        <?php $children = $product->get_children( $args = '', $output = OBJECT ); ?>

        <?php
        foreach ($children as $key=>$value) {
            $product_variatons = new WC_Product_Variation($value);
            if ( $product_variatons->exists() && $product_variatons->variation_is_visible() ) {
            $variations[$value] = $product_variatons->get_variation_attributes();
                }