WooCommerce меняет статус заказа в зависимости от способа доставкиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 WooCommerce меняет статус заказа в зависимости от способа доставки

Сообщение Anonymous »

Мне нужно изменить статус заказа со статуса «обработка» по умолчанию на «приоритет», если клиент выберет любой из 4 вариантов экспресс-доставки.
Я использую классический вариант. оформление заказа.
Вот что я пробовал до сих пор, но когда пользователь размещает заказ, ничего не происходит.
add_action( 'woocommerce_thankyou', 'shipping_method_update_order_status', 10, 1 );
function shipping_method_update_order_status( $order_id ) {
if ( ! $order_id ) return;

// Here define your shipping methods Ids
$shipping_method_0_flat_rate25 = array('flat_rate');
$shipping_method_0_flat_rate26 = array('flat_rate');
$shipping_method_0_flat_rate27 = array('flat_rate');
$shipping_method_0_flat_rate28 = array('flat_rate');

// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );

// Get the WC_Order_Item_Shipping object data
foreach($order->get_shipping_methods() as $shipping_item ){
// For testing to check the shipping method slug (uncomment the line below):
// echo ''. print_r( $shipping_item->get_method_id(), true ) . '';

if( in_array( $shipping_item->get_method_id(), $shipping_method_0_flat_rate25 ) && ! $order->has_status('priority_dispatch') ){
$order->update_status('priority_dispatch'); // Already use internally save() method
break; // stop the loop
}
elseif( in_array( $shipping_item->get_method_id(), $shipping_method_0_flat_rate26 ) && ! $order->has_status('priority_dispatch') ){
$order->update_status('priority_dispatch'); // Already use internally save() method
break; // stop the loop
}
elseif( in_array( $shipping_item->get_method_id(), $shipping_method_0_flat_rate27 ) && ! $order->has_status('priority_dispatch') ){
$order->update_status('priority_dispatch'); // Already use internally save() method
break; // stop the loop
}
elseif( in_array( $shipping_item->get_method_id(), $shipping_method_0_flat_rate28 ) && ! $order->has_status('priority_dispatch') ){
$order->update_status('priority_dispatch'); // Already use internally save() method
break; // stop the loop
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»