【问题标题】:Move MySQL PostMeta table rows out of wp_postmeta and into new table by Date将 MySQL PostMeta 表行移出 wp_postmeta 并按日期移入新表
【发布时间】:2016-11-24 19:28:01
【问题描述】:

我正在管理一家 woocommerce 商店,其中 wp_postmeta 表已经失去控制,有 800k 行并且每天都在增长。我想构建一个查询,允许我移动具有相同 post_id 的 meta_id 行,其中 _customer_user = '0' '_paid_date' 在某个日期之前的位置和位置(比如说 3 个月?)。这些是客人结帐订单,不绑定到用户帐户,因此我想将它们存档并创建自定义帖子类型来处理数据。

当然,新表只是 postmeta 表的克隆,但名称不同。

这就是我目前得到的全部:

SELECT `meta_id` FROM `can_postmeta` 
WHERE `meta_key` = '_customer_user' AND `meta_value` = '0' 

非常感谢您提前提供的帮助!

【问题讨论】:

    标签: mysql wordpress woocommerce


    【解决方案1】:

    如果您想为访客清除网站的所有条目,您需要删除表中的条目wp_woocommerce_order_items(链接到 order_id)、wp_woocommerce_order_itemmeta(链接到 order_item_id)。 wp_woocommerce_payment_tokenswp_woocommerce_payment_tokenmeta 相同。

    我不知道,如果您想使用 php 脚本或 sql 请求来完成这项工作,但这里有一个导出客户订单的小脚本。也许它可以给你一些想法。

    $filename = 'order_bu.json';
    $args = array(
        'post_type'=> 'shop_order',
        'post_status'=> 'wc-completed',
        'posts_per_page' =>-1,
        'post_author' => 0
    );
    
    $orders = new WP_Query($args);
    
    foreach($orders->posts as $order){
        echo $order->ID . ' | '.$order->post_status . '<br/>';
         $order_metas = get_post_meta($order->ID);
         $orders_metas[] = get_post_meta($order->ID);
    
         $order_stack[] = array($order, $orders_metas);
                //wp_delete_post($order->ID);
    
    }
    
    $json = json_encode($order_stack);
    
        if (!$handle = fopen($filename, 'a')) {
            echo "Cannot open file ($filename)";
            exit;
        }
    
        if (fwrite($handle, $json) === FALSE) {
            echo "Cannot write to file ($filename)";
            exit;
        }
    
        echo "Success, wrote ($json) to file ($filename)";
    
        fclose($handle);
    

    【讨论】:

    • 谢谢,但我正在寻找一个sql语句。但我很感激我需要修改的其他表格。
    • 如果您查看这些表,您会发现订单的不同行,不是那么重要,但需要删除 oder_meta_id。我不是 sql 语句方面的专家,但很多代码使用 JOIN,您可以查看 woocommerce 源代码。希望你能找到!
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    相关资源
    最近更新 更多