woocommerce - 根据用户角色删除价格后缀
问题描述
基于用户角色添加后缀失败,因为它不会显示 Woo 价格显示短代码,我现在从另一个方向解决问题 - 我已将后缀添加到 Woos 税选项卡,现在想要删除后缀(来自除一个之外的所有用户角色)。
我在 github 上找到了这段代码,用于从产品中删除后缀:
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 );
function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) {
if ( ! $product->is_taxable() ) {
return '';
}
return $price_display_suffix;
}
我已经修改它以隐藏某些用户类型的后缀
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 );
function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) {
// check current user role
$user = wp_get_current_user();
$roles = ( array ) $user->roles;
if ( in_array( 'administrator', $roles ) ) {
$price = $your_suffix;
} elseif ( in_array( 'default_wholesaler', $roles ) ) {
$price = '$your_suffix';
return '';
}
return $price_display_suffix;
}
这行得通,但是我必须切换用户(我希望管理员和批发商看到后缀)并输入客户等。
问题是来宾客户仍然看到后缀。
除了登录的“默认批发商”用户和“管理员”之外,有人可以建议一种向任何人隐藏后缀的方法吗?
谢谢!
解决方案
您可以为此使用以下内容。
这适用于管理员角色!您可以自己添加其他角色作为“练习”
function custom_woocommerce_get_price_suffix( $html, $product, $price, $qty ) {
// check current user role
$user = wp_get_current_user();
$roles = ( array ) $user->roles;
// if NOT in array user roles
if ( !in_array( 'administrator', $roles ) ) {
$html = '';
}
return $html;
}
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 4 );
推荐阅读
- python - 自动编码器适用于 MNIST,但对于较大尺寸的图像会崩溃
- javascript - Webgl - 添加 DEPTH_STENCIL 渲染缓冲区可防止渲染到立方体贴图帧缓冲区
- php - MacO 上的多个 PHP / Apache 版本
- plugins - MSCRM Retrieve Multiple PlugIn 限制了其他 Retrievemultiple 用户
- javascript - Firebase 更新方法在不同节点上多次调用时不更新值但成功返回 OnComplete
- objective-c - macOS 10.14、Xcode 9:即使使用 @synchronized,tsan 仍然会吠叫
- shell - /bin/sh 需要识别文件内容类型
- hadoop - 无法将 CSV 文件中的数据加载到 HIVE
- python - 如何在蒙特卡洛方法中定义准确的样本数
- python - 访问 GCP 中的特定公共数据集