如果用户未激活,请在Woocommerce中隐藏价格

时间:2014-03-10 13:59:35

标签: php wordpress

我正在为我的新WordPress商店使用WooCommerce,我想隐藏“待定”用户的价格,直到我批准它们为止。

我使用新用户批准插件为所有新用户添加“待处理”状态,但我不知道如何隐藏价格。我做了一些事情,但它不起作用:

if (is_user_logged_in()) {
$nua = pw_new_user_approve();
$status = $nua->get_user_status(get_current_user_id());
    if ($status !== 'pending') {
            // User is logged in and approved.
            if ($price_html = $product->get_price_html()) : ?>
            <span class="price"><?php echo $price_html; ?></span>
            <?php endif;    
    }
}

2 个答案:

答案 0 :(得分:1)

我有完全相同的问题,只是偶然发现了这一点。

你的代码看起来没问题,我盲目地把它搞砸了,并通过PHP SYntax Checker修改了PHP错误(用谷歌搜索)。

这是工作代码,它只需要关闭&lt; ? PHP? &GT;标签正确,还有你的花括号{}和IF / END IF。

&LT; ? php if(is_user_logged_in()){

$nua = pw_new_user_approve();
$status = $nua->get_user_status(get_current_user_id());

if ($status !== 'pending') { ?>
      <?php if ($price_html = $product->get_price_html()) : ?>
        <span class="price"><?php echo $price_html; ?></span>
      <?php endif; ?>

&LT; ? php}; }; ? &GT;

**&lt;之间没有空格。和?和PHP,我必须在这里写它以获得完整的代码可见

答案 1 :(得分:0)

您可以使用另一个最佳选项,将以下代码添加到当前主题的function.php文件中:

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.';
  }
}