Woocommerce删除已退款订单的下载权限,使用wc核心功能中的查询触发器



我已经搜索并最终找到了运行mysql查询的方法:

DELETE FROM wp_woocommerce_downloadable_product_permissions WHERE EXISTS ( SELECT 1 FROM WHERE wp_posts.ID = wp_woocommerce_downloadable_product_permissions.order_id AND wp_posts.post_status = 'wc-refunded');

从所有退款订单中删除下载权限(wc-refunded(。

我正在尝试在wc-order-functions.php中触发此自动https://github.com/woocommerce/woocommerce/blob/master/includes/wc-order-functions.php

这个函数为wc-completedwc-processing订单添加条目权限(在#427#428行找到(,并在默认核心下取消了对wc的删除权限(我在这个函数中没有找到(,我如何将我的mysql查询应用于这个场景,并自动删除所有订单的下载权限,这已经成为wc-cancelled。我们更好的方法是挂断我们的自动?

在搜索了一些帖子后,我修改了查询以在功能中运行,它的工作原理和阻止下载权限在数字产品订单退款后:

function mysite_refunded($order_id) {
$sql = "DELETE
FROM wp_woocommerce_downloadable_product_permissions
WHERE EXISTS (SELECT 1 FROM wp_posts
WHERE wp_posts.ID = wp_woocommerce_downloadable_product_permissions.order_id AND wp_posts.post_status = 'wc-refunded');";
global $wpdb;
$wpdb->get_results($sql);
}
add_action( 'woocommerce_order_status_refunded', 'mysite_refunded', 10, 1);

最新更新