Я пытаюсь создать функцию, которая должна проверять заказы, сделанные в магазине WooCommerce. Если статус заказа не был изменен с обработки на выполнение в течение 10 дней, функция должна отменить заказ.
Я нашел wpdb, где, по-моему, мне удалось выполнить поиск, чтобы найти заказы старше 10 дней. Может ли кто-нибудь указать мне правильное направление, как действовать дальше? Я предполагаю, что мне нужно создать функцию, которая содержит WC_Order :: update_status () для обновления статуса заказа. Я просто не знаю, как связать все это вместе.
Я просматривал кодекс Wordpress и нашел wpdb, который содержит набор функций, используемых для взаимодействия с базой данных. Я предполагаю, что мне нужно использовать wpdb в моей функции, но не знаю, как действовать дальше.
Я также искал замену родного крона Wordpress реальным кроном, который проверяет дату и обновляет статус заказов. Однако после некоторых исследований я подумал, что это слишком сложный способ решения моей проблемы.
function get_processing_expiry() {
global $wpdb;
$processing_expiry = $wpdb->get_col( $wpdb->prepare( "
SELECT posts.ID
FROM {$wpdb->posts} AS posts
WHERE posts.post_status = 'wc-processing'
AND posts.post_date < %s
", date( 'Y-m-d H:i:s', strtotime('-10 days') ) ) );
return $processing_expiry;
}
Я ожидаю, что статус заказа изменится с обработки на отмену, если заказ обрабатывался более десяти дней.