woocommerce_before_calculate_totals
是 WooCommerce 插件中的一个钩子(hook),用于在计算购物车小计时执行自定义代码。这个钩子在 WooCommerce 计算购物车总金额之前被触发,允许开发者修改购物车中的商品数据,从而影响最终的购物车小计。
以下是一个简单的示例,展示如何在 woocommerce_before_calculate_totals
钩子中获取购物车小计,并根据用户角色应用折扣:
add_action( 'woocommerce_before_calculate_totals', 'apply_custom_discount' );
function apply_custom_discount( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( ! is_user_logged_in() )
return;
$current_user = wp_get_current_user();
$user_role = (array) $current_user->roles;
// 假设我们有一个自定义角色 'premium_member'
if ( in_array( 'premium_member', $user_role ) ) {
foreach ( $cart_object->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$price = $product->get_price();
$discounted_price = $price * 0.9; // 应用 10% 折扣
$product->set_price( $discounted_price );
}
}
}
functions.php
文件中,并且 WooCommerce 插件已正确安装和激活。set_price
方法。通过以上信息,你应该能够更好地理解和使用 woocommerce_before_calculate_totals
钩子,并解决在开发过程中可能遇到的问题。
没有搜到相关的文章