Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
А если один физический товар а второй виртуальный, но покупатель хочет заказать все за один раз и получить физ товар наложенным платежом. То правильней не отключать наложенный платеж, а просто не брать в расчет его сумму. И вот если все товары в корзине виртуальные тогда отключать метод платежа.
Очень просто не нужно ни каких дополнительных полей просто сохраняте id товаров при импорте и все.
А затем через htaccess меняете "productID" на "p"
p - значит пост.
Значит вы уже наделали делов! Данная функция привязана через action к таксономии, а для корзины и чекоут напрямую в файле. Либо вы не то редактируете либо функция привязана к action страниц оформления заказов.
Этот вопрос уже поднимался https://github.com/woocommerce/woocommerce/issues/14775
Менять статусы заказа можно если есть фильтры как например для COD если нет то можно отдельно.
А вообще если суть вопроса только в том, что у вас не отправляется клиенту email при статусе заказа on-hold то вам в...