После некоторой консультации от замечательных людей здесь я смог найти проблему. Особая благодарность @CKMacleod, @HowardE за запуск моего мозга!
Итак, ЕСЛИ ВАМ НУЖНО ИСПОЛЬЗОВАТЬ это, чтобы обновить запуск пакета (как я) или просто обновить набор заказов в наборе, здесь это код! Имейте в виду, что это будет отправлять электронные письма «Заказать завершен», как если бы вы делали это в администраторе.
Примечание: я использую WP-CLI для запуска команды, которую я регистрирую в конце. msgstr "wp on_hold_complete". Также обратите внимание, что для большого сайта это, вероятно, довольно неэффективно, этот код заставляет сайт 500 через http, но команда CLI работает отлично. Просто убедитесь, что что-то отражено в l oop, чтобы вы знали, что он работает.
/**
* Change all on hold orders when action is triggered.
*/
function on_hold_complete() {
$args = array(
'post_type' => 'shop_order',
'posts_per_page' => -1,
'post_status' => 'wc-on-hold',
);
$orderList = get_posts($args);
foreach ($orderList as $orderPost) {
$order = new WC_Order($orderPost->ID);
$order->update_status('completed');
}
}
WP_CLI::add_command( 'on_hold_complete', 'on_hold_complete' );