Поскольку корзина опустошается после размещения другой, значение переменной $flag_custom_order
всегда будет false
на странице Полученный заказ (спасибо).
Вместо этого вы можете использовать следующее в functions.php
файле вашей активной темы (который сохранит это как метаданные настраиваемого заказа при размещении заказа, прежде чем данные будут сохранены) :
add_action( 'woocommerce_checkout_create_order', 'action_wc_checkout_create_order', 10, 2 );
function action_wc_checkout_create_order( $order, $data ) {
$has_backordered_items = false;
if( ! WC()->cart->is_empty() ) {
foreach(WC()->cart->get_cart() as $cart_item ) {
if ( $cart_item['data']->get_stock_quantity() <= 0 ) {
$has_backordered_items = true;
break;
}
}
}
if( $has_backordered_items ) {
$order->update_meta_data( '_has_backordered_items', $has_backordered_items );
}
}
Затем в вашем thankyou.php
файл шаблона, вы будете использовать следующий (поскольку объект WC_Order
существует) :
<?php
if ( $order->get_meta('_has_backordered_items') ) {
echo '<p>' . __("This order has backordered items.") . '</p>';
}
?>