Em WooCommerce > Configurações > Avançado > Recursos o armazenamento de pedidos está travado em “posts do WordPress”, com aviso de plugin incompatível do lado, e a sincronização que você ligou semana passada nunca termina. Os dois se resolvem por linha de comando. Antes de tudo, dump do banco: migração de pedido não tem desfazer.
Veja quanto ainda falta migrar
sudo -u www-data wp db export ~/antes-do-hpos.sql
sudo -u www-data wp wc hpos status
sudo -u www-data wp wc hpos count_unmigrated
sudo -u www-data wp wc hpos sync --batch-size=500
O sync roda em lote e pode ser chamado quantas vezes quiser: só toca no que falta. Em loja grande eu deixo rodando numa tela separada e repito o count_unmigrated até zerar. Se parar no meio nada quebra: com o modo de compatibilidade ligado o pedido continua indo para os dois lugares.
Confira a contagem antes de virar a chave
sudo -u www-data wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type='shop_order'"
sudo -u www-data wp db query "SELECT COUNT(*) FROM wp_wc_orders"
sudo -u www-data wp option get woocommerce_custom_orders_table_enabled
sudo -u www-data wp option get woocommerce_custom_orders_table_data_sync_enabled
Os números raramente batem exatos: wp_wc_orders guarda também os rascunhos de checkout, que no modelo antigo eram posts com status wc-checkout-draft. O que não pode é faltar pedido pago do lado novo. Conte agora: depois da virada o pedido novo só deixa um registro reserva em wp_posts com post_type shop_order_placehold e o COUNT de shop_order congela. Conferido, ligue com sudo -u www-data wp wc hpos enable, que grava yes na option woocommerce_custom_orders_table_enabled.
O plugin incompatível e a sync dupla
O seletor fica cinza porque algum plugin não declarou compatibilidade com a funcionalidade custom_order_tables. A lista sai em wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables. Atualize ou troque: plugin que ainda lê wp_postmeta devolve pedido vazio depois da virada.
Deixe a sincronização dupla ligada umas duas semanas antes de desligar com wp option update woocommerce_custom_orders_table_data_sync_enabled no. É o botão de voltar atrás: enquanto ela existe, um wp wc hpos disable devolve a loja para as tabelas antigas.