php - 根据类别和用户角色更改 Woocommerce 可变产品价格不起作用
问题描述
标题说明了一切。
对于简单的产品,波纹管代码可以正常工作。但我无法弄清楚,为什么它对可变产品没有影响。我一直在网上搜索过滤器挂钩,并尝试混合不同的波纹管脚本。到目前为止没有运气。
add_filter( 'woocommerce_product_get_price', 'custom_price_for_category_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'custom_price_for_category_role', 10, 2 );
function custom_price_for_category_role( $price, $product ) {
//Get all product categories for the current product
$terms = wp_get_post_terms( $product->get_id(), 'product_cat' );
foreach ( $terms as $term ) {
$categories[] = $term->slug;
}
if ( ! empty( $categories ) && in_array( 'b2b', $categories, true ) && current_user_can('b2b') ) {
$price = (($price * 1.25) / 3);
}
return $price;
}
奖励问题:woocommerce_product_get_regular_price 无效的原因可能是什么。(也适用于简单产品)我希望代码仅适用于正常价格,而忽略销售价格。
解决方案
推荐阅读
- c# - 锁定静态锁定对象
- opentok - 如何制作 OpenTok 视频聊天的截图?
- perl - 使用替换从perl中的字符串中删除重复字符
- java - java -PDFBox 如何从文档中提取文本而不存储在数组中?
- html - 如何找到一个以“document.querySelectorAll”开头并以“document.querySelectorAll”结尾的元素?
- actions-on-google - Google Smart Home API 上的操作如何异步工作?
- reactjs - 如何使用reactjs在meteorjs中获取拇指网址
- scala - Scala:根据条件计算最小值、最大值、平均值
- laravel - Laravel Eloquent for hasMany 关系找不到记录
- django - 在内联字段Django中引发验证错误