簡體   English   中英

woocommerce僅向注冊用戶顯示價格

[英]woocommerce show price to registered user only

我只想向注冊用戶顯示價格。 我寫了一個單獨的插件,因為我的代碼將在更新時刪除。

下面是代碼,它可以正常工作,但問題是它不顯示帶有超鏈接的文本。

我只看到“注冊用戶可以查看價格”。 帳戶頁面無href。

add_filter('woocommerce_get_price_html','members_only_price');

function members_only_price($price) {    
    if(is_user_logged_in()){
        return $price;
    }    
    else {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
        return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
    }    
}

我不確定它是否會工作。 但是在查看您的代碼時,我注意到您沒有在“。”之間放置空格。 你回來的時候

嘗試這個

function members_only_price($price){
    if(is_user_logged_in()) {
        return $price;
    } 
    else {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
        return 'Only <a href="' . get_permalink(woocommerce_get_page_id('myaccount')) . '">Registered Users</a> are able to view pricing.';
    }
}

注意:未經測試。

get_permalink()函數返回帖子的URI,但是您實際上需要通過在HTML內部打開php標簽來回顯該URI。

嘗試這個

    return 'Only <a href="<?php echo get_permalink(woocommerce_get_page_id('myaccount')) ; ?>">Registered Users</a> are able to view pricing.';

我沒有在答案中測試代碼,但我想說您不應該使用woocommerce_get_page_id因為它已被棄用

而是使用函數wc_get_page_id 對docs的引用

add_filter('woocommerce_get_price_html','members_only_price');

function members_only_price($price) {    
    if(is_user_logged_in()){
        return $price;
    }    
    else {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

        return 'Only <a href="'.get_permalink( wc_get_page_id( 'myaccount' ) ). '">Registered Users</a> are able to view pricing.';
    }        
}

或者在woocommerce文檔中嘗試另一個示例

add_filter('woocommerce_get_price_html','members_only_price');

function members_only_price($price) {    
    if(is_user_logged_in()){
        return $price;
    }    
    else {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

        return 'Only <a href="'.get_permalink( get_option('woocommerce_myaccount_page_id') ). '">Registered Users</a> are able to view pricing.';
    }        
}

請告訴您這是否對您有用,祝您好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM