长话短说.我想为在WooCommercestore 登录的用户增加3%的折扣.执行此操作的代码片段如下所示:
<?php
add_filter( 'woocommerce_product_get_price', 'products_custom_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'products_custom_price', 10, 2 );
add_filter( 'woocommerce_product_get_regular_price', 'products_custom_price', 10, 2 );
// add_filter( 'woocommerce_product_get_sale_price', 'products_custom_price', 10, 2 );
function products_custom_price( $price, $product ){
if (!is_user_logged_in())
return $price;
$discount = $price * 0.03;
return $price - $discount;
}
它的工作,但它也适用于管理面板,因为作为我目前的理解可湿性粉剂,"钩子"的工作类似于全局单一获取程序,我正在修改.在蹩脚的条件下,现在的管理员不得不创建折扣价格的产品,而不是常规的产品,这是不受欢迎的.
我想排除"设置层",也就是管理面板从这个条件,但不是一个管理用户.因此,将条件修改为如下所示:
if (!is_user_logged_in() || current_user_can( 'manage_options' ) )
并不是我所希望的最终解决方案.让管理员角色查看折扣价格,但不是在wp-admin:)