我正在为我的新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;
}
}
答案 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.';
}
}