Php 从Woocommerce数据库中删除每30%的优惠券
我需要删除我的woocommerce数据库中所有30%折扣优惠券。我的数据库是默认的wordpress/woocommerce数据库(wp) 我发现它显示了在数据库中选择的一些方法:Php 从Woocommerce数据库中删除每30%的优惠券,php,mysql,sql,wordpress,woocommerce,Php,Mysql,Sql,Wordpress,Woocommerce,我需要删除我的woocommerce数据库中所有30%折扣优惠券。我的数据库是默认的wordpress/woocommerce数据库(wp) 我发现它显示了在数据库中选择的一些方法: SELECT p.`ID`, p.`post_title` AS coupon_code, p.`post_excerpt` AS coupon_description, Max(CASE WHEN pm.meta_key = 'discount_type' AND p.`I
SELECT p.`ID`,
p.`post_title` AS coupon_code,
p.`post_excerpt` AS coupon_description,
Max(CASE WHEN pm.meta_key = 'discount_type' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS discount_type, -- Discount type
Max(CASE WHEN pm.meta_key = 'coupon_amount' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS coupon_amount, -- Coupon amount
Max(CASE WHEN pm.meta_key = 'free_shipping' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS free_shipping, -- Allow free shipping
Max(CASE WHEN pm.meta_key = 'expiry_date' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS expiry_date, -- Coupon expiry date
Max(CASE WHEN pm.meta_key = 'minimum_amount' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS minimum_amount, -- Minimum spend
Max(CASE WHEN pm.meta_key = 'maximum_amount' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS maximum_amount, -- Maximum spend
Max(CASE WHEN pm.meta_key = 'individual_use' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS individual_use, -- Individual use only
Max(CASE WHEN pm.meta_key = 'exclude_sale_items' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS exclude_sale_items, -- Exclude sale items
Max(CASE WHEN pm.meta_key = 'product_ids' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS product_ids, -- Products
Max(CASE WHEN pm.meta_key = 'exclude_product_ids'AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS exclude_product_ids, -- Exclude products
Max(CASE WHEN pm.meta_key = 'product_categories' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS product_categories, -- Product categories
Max(CASE WHEN pm.meta_key = 'exclude_product_categories' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS exclude_product_categories,-- Exclude Product categories
Max(CASE WHEN pm.meta_key = 'customer_email' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS customer_email, -- Email restrictions
Max(CASE WHEN pm.meta_key = 'usage_limit' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS usage_limit, -- Usage limit per coupon
Max(CASE WHEN pm.meta_key = 'usage_limit_per_user' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS usage_limit_per_user, -- Usage limit per user
Max(CASE WHEN pm.meta_key = 'usage_count' AND p.`ID` = pm.`post_id` THEN pm.`meta_value` END) AS total_usaged -- Usage count
FROM `wp_posts` AS p
INNER JOIN `wp_postmeta` AS pm ON p.`ID` = pm.`post_id`
WHERE p.`post_type` = 'shop_coupon'
AND p.`post_status` = 'publish'
GROUP BY p.`ID`
ORDER BY p.`ID` ASC;
但我还不能删除所有30%的折扣券
我的数据库中有16k优惠券,我无法从wp admin手动执行此操作。更新2-尝试从phpMyAdmin执行以下SQL查询(之前始终进行备份): 测试和工作 此查询将从具有30%折扣的优惠券的
wp_posts
和wp_postmeta
表中删除所有优惠券数据
或者,您可以运行一次以下php代码,该代码将为您提供已删除优惠券的数量:
global $wpdb;
$result = $wpdb->query( "
DELETE a, b
FROM wp_posts AS a
JOIN wp_postmeta AS b
JOIN wp_postmeta AS c
WHERE b.post_id = a.ID AND c.post_id = a.ID
AND a.post_type = 'shop_coupon'
AND b.meta_key = 'discount_type' AND b.meta_value = 'percent'
AND c.meta_key = 'coupon_amount' AND c.meta_value = '30'
" );
echo '<p>Coupons deleted: ' . $result / 2 . '</p>';
global$wpdb;
$result=$wpdb->query(“
删除a、b
从wp_发布的
以b的身份加入wp_Posteta
以c的身份加入wp_Posteta
其中b.post_id=a.id和c.post_id=a.id
和a.post_type='shop_优惠券'
b.meta_key='折扣类型',b.meta_value='百分比'
c.meta_key='coupon_amount'和c.meta_value='30'
" );
回显“已删除优惠券:”$结果/2。” ",;
已测试并正常工作。更新2-尝试从phpMyAdmin执行以下SQL查询(请始终在之前进行备份): 测试和工作 此查询将从具有30%折扣的优惠券的
wp_posts
和wp_postmeta
表中删除所有优惠券数据
或者,您可以运行一次以下php代码,该代码将为您提供已删除优惠券的数量:
global $wpdb;
$result = $wpdb->query( "
DELETE a, b
FROM wp_posts AS a
JOIN wp_postmeta AS b
JOIN wp_postmeta AS c
WHERE b.post_id = a.ID AND c.post_id = a.ID
AND a.post_type = 'shop_coupon'
AND b.meta_key = 'discount_type' AND b.meta_value = 'percent'
AND c.meta_key = 'coupon_amount' AND c.meta_value = '30'
" );
echo '<p>Coupons deleted: ' . $result / 2 . '</p>';
global$wpdb;
$result=$wpdb->query(“
删除a、b
从wp_发布的
以b的身份加入wp_Posteta
以c的身份加入wp_Posteta
其中b.post_id=a.id和c.post_id=a.id
和a.post_type='shop_优惠券'
b.meta_key='折扣类型',b.meta_value='百分比'
c.meta_key='coupon_amount'和c.meta_value='30'
" );
回显“已删除优惠券:”$结果/2。” ",;
经过测试,效果良好。到目前为止,您尝试过什么?因此,这不是一个你只要求别人解决你的问题而不展示你自己尝试过的任何工作的地方。我展示了我找到的链接,我尝试了很多组合,但没有成功,如果你能帮助我,我将非常高兴和感激!张贴链接作为例子是不好的形式,所以在这里。“如果有可能创建一个可以链接到(例如,on或)的问题实例,那么就这样做,但也要在问题本身中包含代码。不是每个人都可以访问外部网站,链接可能会随着时间的推移而中断。”对,我的错,我修复了!你能把-1去掉吗?到目前为止你试过什么?因此,这不是一个你只要求别人解决你的问题而不展示你自己尝试过的任何工作的地方。我展示了我找到的链接,我尝试了很多组合,但没有成功,如果你能帮助我,我将非常高兴和感激!张贴链接作为例子是不好的形式,所以在这里。“如果有可能创建一个可以链接到(例如,on或)的问题实例,那么就这样做,但也要在问题本身中包含代码。不是每个人都可以访问外部网站,链接可能会随着时间的推移而中断。”对,我的错,我修复了!请删除-1,好吗?我尝试使用SELECT测试它,显示此错误:在分析过程中发现了1.1个错误。需要一个表达式。(位置7的“FROM”附近)SQL查询:文档从wp_post中选择a,wp_postETA为b,其中a.ID=b.post_ID和a.post_type='shop_coupon'和b.discount_type='percent'和b.coupon_amount='30'MySQL消息:文档#1064-您的SQL中的'FROM wp_post AS a'旁边有语法错误,wp_Posteta为b,其中a.ID=b.post_ID和a.post_type='在第1行#1054-字段列表@AdrianoVarlotta中未知的“a”列我刚刚做了一个更新…它已经过测试,工作正常…我尝试使用SELECT对其进行测试,显示此错误:在分析过程中发现了1.1个错误。需要一个表达式。(位置7的“FROM”附近)SQL查询:文档从wp_post中选择a,wp_postETA为b,其中a.ID=b.post_ID和a.post_type='shop_coupon'和b.discount_type='percent'和b.coupon_amount='30'MySQL消息:文档#1064-您的SQL中的'FROM wp_post AS a'旁边有语法错误,wp_Posteta为b,其中a.ID=b.post_ID和a.post_type='在第1行#1054-字段列表中未知的'a'列@AdrianoVarlotta我刚刚做了一个更新…它经过测试,工作正常…