单一WooCommerce页面的评级、分享和评论问题

时间:2016-02-01 作者:pagol007

我是新WooCommerce,我有一个产品单页问题。这是评级和共享未显示。我想在单页上显示评分、分享和评论计数。

波纹管content-single-product.php 密码

<div class="summary entry-summary">

    <?php
        /**
         * woocommerce_single_product_summary hook
         *
         * @hooked woocommerce_template_single_title - 5
         * @hooked woocommerce_template_single_rating - 10
         * @hooked woocommerce_template_single_price - 10
         * @hooked woocommerce_template_single_excerpt - 20
         * @hooked woocommerce_template_single_add_to_cart - 30
         * @hooked woocommerce_template_single_meta - 40
         * @hooked woocommerce_template_single_sharing - 50
         */
        do_action( \'woocommerce_single_product_summary\' );
    ?>



</div>
这样评级和分享就不来了。但这是默认代码。

我在我的函数中这样做

remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_rating\', 10 );
    remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_price\', 10 );
    remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_excerpt\', 20 );
    remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_add_to_cart\', 30 );
    remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_meta\', 40 );
    remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_sharing\', 50 );

    add_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_meta\', 10 );
    add_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_price\', 20 );
    add_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_add_to_cart\', 30 );
    add_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_rating\', 40 );
    add_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_sharing\', 50 );
现在仍在播放。我签入生成html代码。没有我看到的类/id/div分级和共享html

但我的店铺(产品)页面缩略图评级显示。我添加了服装开始等级

add_action(\'woocommerce_after_shop_loop_item\', \'get_star_rating\' );
function get_star_rating()
{
    global $woocommerce, $product;
    $average = $product->get_average_rating();

    echo \'<div class="star-rating"><span style="width:\'.( ( $average / 5 ) * 100 ) . \'%"><strong itemprop="ratingValue" class="rating">\'.$average.\'</strong> \'.__( \'out of 5\', \'woocommerce\' ).\'</span></div>\';
}
这是“查找一个产品”页面。我想在我的单页中添加此开始分级和剪切按钮,并想查看计数。。附加图像示例enter image description here

我认为分享有插件。如果你们有任何推荐的插件,请与我分享。

1 个回复
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成

我试图给你一些清理解决方案,这是基本的代码设置。

For social share:请参阅插件Social Sharing Toolkit 这很容易在社交网络上共享和连接。在帖子上显示或使用小部件或短代码。还有Twitter名称/标签链接转换器。

use do_shortcode(\'[social_share]\') 用于在网站的任何位置显示社交共享。在产品页面中,在中使用此代码content-single-product.php 文件

For Star rating:这里有一个排序逻辑,如果您需要单个产品的星级,那么您需要进行模板编辑。

编辑您的/x/woocommerce/single-product/rating.php 并在之前添加此代码?>

GLOBAL $product; echo \'<div class="star-rating-container aggregate">\' . $product->get_rating_html() . \'</div>\';
这将在产品名称下方添加星级。See more at here.

对于上述解决方案,我不确定这一点,所以如果你想冒险的话。

你可以把它放到你的主题中functions.php 文件:

add_action(\'woocommerce_after_shop_loop_item\', \'my_print_stars\' );


function my_print_stars(){
    global $wpdb;
    global $post;
    $count = $wpdb->get_var("
    SELECT COUNT(meta_value) FROM $wpdb->commentmeta
    LEFT JOIN $wpdb->comments ON $wpdb->commentmeta.comment_id = $wpdb->comments.comment_ID
    WHERE meta_key = \'rating\'
    AND comment_post_ID = $post->ID
    AND comment_approved = \'1\'
    AND meta_value > 0
");

$rating = $wpdb->get_var("
    SELECT SUM(meta_value) FROM $wpdb->commentmeta
    LEFT JOIN $wpdb->comments ON $wpdb->commentmeta.comment_id = $wpdb->comments.comment_ID
    WHERE meta_key = \'rating\'
    AND comment_post_ID = $post->ID
    AND comment_approved = \'1\'
");

if ( $count > 0 ) {

    $average = number_format($rating / $count, 2);

    echo \'<div class="starwrapper" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">\';

    echo \'<span class="star-rating" title="\'.sprintf(__(\'Rated %s out of 5\', \'woocommerce\'), $average).\'"><span style="width:\'.($average*16).\'px"><span itemprop="ratingValue" class="rating">\'.$average.\'</span> </span></span>\';

    echo \'</div>\';
    }

}
请注意,您可能需要更改\'woocommerce_after_shop_loop_item\' 根据您的设计以及您希望星星出现的具体位置,选择不同的挂钩。

有关更多详细信息,请查看wooCodex.

希望这对你有帮助!

相关推荐