当前位置: 首页 > ds >正文

Woocommerce 热卖产品不起作用

// 重置所有产品的销量统计
function reset_product_sales_counts() {
    global $wpdb;
    
    // 将所有产品的销量统计清零
    $wpdb->query( "UPDATE {$wpdb->postmeta} SET meta_value = 0 WHERE meta_key = 'total_sales'" );
    
    // 重新计算每个产品的销量
    $orders = get_posts( array(
        'post_type'      => 'shop_order',
        'post_status'    => array( 'wc-completed', 'wc-processing' ),
        'posts_per_page' => -1,
    ) );
    
    $processed_orders = 0;
    $failed_orders = array();
    
    foreach ( $orders as $order_post ) {
        $order = wc_get_order( $order_post->ID );
        
        // 检查订单是否有效
        if ( ! $order || ! is_a( $order, 'WC_Order' ) ) {
            $failed_orders[] = $order_post->ID;
            continue; // 跳过无效订单
        }
        
        foreach ( $order->get_items() as $item ) {
            $product_id = $item->get_product_id();
            $qty        = $item->get_quantity();
            
            // 更新产品销量
            $current_sales = get_post_meta( $product_id, 'total_sales', true );
            $new_sales     = (int) $current_sales + $qty;
            update_post_meta( $product_id, 'total_sales', $new_sales );
        }
        
        $processed_orders++;
    }
    
    // 输出执行结果
    $output = '产品销量统计已重置并重新计算。<br>';
    $output .= "成功处理订单: {$processed_orders}<br>";
    
    if ( ! empty( $failed_orders ) ) {
        $output .= "失败订单数量: " . count( $failed_orders ) . "<br>";
        $output .= "失败订单ID: " . implode( ', ', $failed_orders );
    }
    
    echo $output;
}
// 执行函数(注意:此操作会影响数据库,请先备份)
// reset_product_sales_counts();


// 访问特定 URL 时执行函数,例如:your-site.com/?reset_sales=true
if ( isset( $_GET['reset_sales'] ) && $_GET['reset_sales'] === 'true' ) {
    reset_product_sales_counts();
}

http://www.xdnf.cn/news/7792.html

相关文章:

  • 飞桨paddle import fluid报错【已解决】
  • 模糊照片变清晰:照片高清修复 ComfyUI 使用教学
  • 2.10 财务分析
  • 活体检测接口全面评测:2025年活体检测选择指南
  • conda 设置env后,环境还是安装在c盘的解决方式:
  • LLM应用开发平台资料
  • python使用yolo训练模型
  • 【YOLOs-CPP-图像分类部署】01-构建项目
  • Python异步编程详解
  • Hive drop column 的解决方法
  • 第二届帕鲁杯时空交织的密语
  • AUTOSAR图解==>AUTOSAR_SRS_SecureOnboardCommunication
  • 大模型的开发应用(三):基于LlaMAFactory的LoRA微调(上)
  • VMware三种网络配置对比
  • Cow Ski Area G---二维图转一维+tarjan缩点
  • 嵌入式学习笔记 D24 :系统编程之i/o操作
  • 解决 Incorrect username or password (access token)
  • 数据库错误解决指南:从诊断到修复的全流程攻略
  • 04 接口自动化-框架封装思想建立之httprunner框架(上)
  • Fiddler 指定链接断点
  • nettrace工具介绍
  • GraphPad Prism工作表的管理
  • Baumer工业相机堡盟工业相机的工业视觉如何对高反光圆柱体生产日期进行识别检测
  • 8.MySQL故障排查与生产环境优化
  • 铸铁平台:承载千斤重担的工业基石
  • 视觉语言模型之困:当否定词成为理解的“盲区”
  • 挖o心得(2)
  • TYUT-企业级开发教程-第6章
  • CUMT-教务系统登录功能实现
  • labelme的安装与使用(以关键点检测为例)、labelme格式标签转换