Woocommerce удалить разрешение на загрузку для возмещенных заказов, используя триггер запроса в основной функции w c - PullRequest
0 голосов
/ 19 апреля 2020

Я искал и, наконец, нашел способ выполнить запрос 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).

я пытаюсь запустить этот автомат c в wc-order-functions.php https://github.com/woocommerce/woocommerce/blob/master/includes/wc-order-functions.php

эта функция добавляет разрешение на запись в ордера wc-completed и wc-processing (найдено в строке #427, #428) и удалите разрешение для w c -наменяемого (я не нашел этого в этой функции) по умолчанию ядра, как я могу применить свой запрос mysql к этому сценарию и автоматизировать c удалить разрешение на загрузку для всех заказов стало wc-cancelled наш лучший способ сделать это зацепил наш автомат c?

1 Ответ

0 голосов
/ 19 апреля 2020

После поиска в некоторых сообщениях я изменил запрос для запуска в функции, ее работы и запрета на загрузку после возврата заказа цифрового продукта:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...