Nexthing 文档

General

Woocommerce

Woocommerce 基础设定与相关函数代码

获取顾客总消费金额

这段代码定义了一个名为gk_get_customer_total_spent()的函数,用于获取当前登录用户在WooCommerce商店中的总消费金额。

//获取顾客总消费金额
function gk_get_customer_total_spent() {

    // 检查用户是否已登录
    if (!is_user_logged_in()) {
        return 0; // 如果未登录,返回0
    }
    
    // 获取当前用户ID
    $user_id = get_current_user_id();
    
    // 获取用户总消费金额
    $total_spent = wc_get_customer_total_spent($user_id);
    
    return $total_spent; // 返回总消费金额
}

获取顾客订单总数

这段代码定义了一个名为gk_get_customer_total_orders()的函数,用于获取当前登录用户在WooCommerce商店中的订单总数。

//获取顾客订单总数
function gk_get_customer_total_orders() {

    // 检查用户是否已登录
    if (!is_user_logged_in()) {
        return 0; // 如果未登录,返回0
    }
    
    // 获取当前用户ID
    $user_id = get_current_user_id();
    
    // 获取用户订单总数
    $order_count = wc_get_customer_order_count($user_id);
    
    return $order_count; // 返回订单总数
}

获取商品折扣率

此函数用于计算并返回商品的折扣百分比。支持简单商品(Simple)和可变商品(Variable),并自动选择最大折扣值(针对可变商品的不同变体)。

//计算产品折扣百分比
function gk_discount_percentage() {
    
    global $product;

    // 检查产品对象是否存在
    if (!$product) {
        return '';
    }

     // 提前检查是否在促销中
    if (!$product->is_on_sale()) {
        return '';
    }
    
    $discount = 0;

    //Simple Product 简单商品
    if ($product->is_type('simple')) {
        $regular_price = $product->get_regular_price();
        $sale_price = $product->get_sale_price();
        
        if ($regular_price > 0 && $sale_price) {
            $discount = ($regular_price - $sale_price) / $regular_price * 100;
        }
    } 

    //Variable Product 可变商品
    elseif ($product->is_type('variable')) {
        $variation_prices = $product->get_variation_prices();
        
        if (!empty($variation_prices['regular_price']) && !empty($variation_prices['sale_price'])) {
            $max_discount = 0;
            
            foreach ($variation_prices['regular_price'] as $variation_id => $regular_price) {
                $sale_price = $variation_prices['sale_price'][$variation_id];
                
                if ($regular_price > 0 && $sale_price) {
                    $current_discount = ($regular_price - $sale_price) / $regular_price * 100;
                    $max_discount = max($max_discount, $current_discount);
                }
            }
            
            $discount = $max_discount;
        }
    }
    
    if ($discount > 0) {
        return round($discount);
    }
    
    return '';
}
Table of content