在WooCommerce商品頁面增加留言討論功能

目錄

    原始文章

    在WooCommerce商品頁面增加留言討論功能


    在WooCommerce預設功能中,每個商品頁面都有評價功能(Review),但是顧客只能夠一次性留言,不能回覆及討論。如果你想增加留言討論(Comment)或是Q&A功能,其中一個方法是安裝外掛,像是WooDiscuz。但還有另外一個方法,只要修改WooCommerce預設的模板(Template,或稱為套版)就可以完成,不需要額外任何安裝外掛。

    事實上,WooCommerce的評價功能和WordPress的留言是完全一樣的機制,只是透過不一樣的樣式呈現而已。因此,我們要做的事情是覆蓋WooCommerce原本的模板。

    步驟一、 複製模板到佈景主題資料夾

    到外掛資料夾中,複製single-product-reviews.php這個檔案,路徑如下:

    /wp-content/plugins/woocommerce/templates/single-product-reviews.php

    然後貼到你的佈景主題資料夾下:

    /wp-content/themes/[佈景名稱]/woocommerce

    這個方式可以覆寫WooCommerce預設的模板,卻又不會直接修改原始檔,算是WooCommerce客製化的標準作法。

    步驟二、調整程式碼

    只要增加以下這一行程式碼,就可以在商品頁面呈現WordPress的留言區樣式,其他原始的code就可以直接刪除。

    require get_template_directory() . ‘/comments.php’;

    新的single-product-reviews.php會長這樣:

    <?php
    /**
     * Display single product reviews (comments)
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/single-product-reviews.php.
     *
     * HOWEVER, on occasion WooCommerce will need to update template files and you
     * (the theme developer) will need to copy the new files to your theme to
     * maintain compatibility. We try to do this as little as possible, but it does
     * happen. When this occurs the version of the template file will be bumped and
     * the readme will list any important changes.
     *
     * @see     https://docs.woocommerce.com/document/template-structure/
     * @package WooCommerce/Templates
     * @version 4.3.0
     */
    
    defined( 'ABSPATH' ) || exit;
    
    global $product;
    
    if ( ! comments_open() ) {
    	return;
    }
    
    require get_template_directory() . '/comments.php';
    ?>

    缺點

    這個方法超簡單,而且超實用,但它也有缺點。因於商品評價和留言是完全一樣的機制,代表兩者不能並存,有評價就沒有留言,有留言就沒有評價,就看你的需求為何。



    推薦文章

    A
    Aron

    工業設計系畢業,曾任職知名品牌行銷企劃,做點設計,寫文案也寫網站;目前擔任零售業數據分析師。最近開始練格鬥和Python量化投資。

    Content Protection by DMCA.com

    發佈留言

    • * 表示必填欄位
    • 您填寫的電子郵件不會被公開
    • 請確認您的電子郵件正確無誤,當您的留言收到新的回覆時,我們會寄送通知信件給您

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *