gpt4 book ai didi

mysql - 按日期将 MySQL PostMeta 表行从 wp_postmeta 移出并移入新表

转载 作者:行者123 更新时间:2023-11-29 19:52:11 25 4
gpt4 key购买 nike

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

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

screenshot of table

这就是我到目前为止所得到的:

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

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

最佳答案

如果您想清理网站上访客客户的所有条目,则需要删除表 wp_woocommerce_order_items(链接到 order_id)、wp_woocommerce_order_itemmeta(链接与 order_item_id)。 wp_woocommerce_ payment_tokens wp_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);

关于mysql - 按日期将 MySQL PostMeta 表行从 wp_postmeta 移出并移入新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com