WooCommerce에서 on-hold
주문 상태를 다른 것으로 변경하는 방법 (이 주문에 주문 항목이있는 경우)주문에 역 주문 항목이있는 주문 상태 변경
woocommerce_order_status_on-hold
액션 후크에 걸려있는 사용자 지정 함수를 사용하려고 시도했지만 성공하지 못했습니다.
누구든지이 문제에 대해 도움을 줄 수 있습니까?
감사합니다.
WooCommerce에서 on-hold
주문 상태를 다른 것으로 변경하는 방법 (이 주문에 주문 항목이있는 경우)주문에 역 주문 항목이있는 주문 상태 변경
woocommerce_order_status_on-hold
액션 후크에 걸려있는 사용자 지정 함수를 사용하려고 시도했지만 성공하지 못했습니다.
누구든지이 문제에 대해 도움을 줄 수 있습니까?
감사합니다.
function mysite_hold($order_id) {
$order = new WC_Order($order_id);
$items = $order->get_items();
$backorder = FALSE;
foreach ($items as $item) {
if ($item['Backordered']) {
$backorder = TRUE;
break;
}
}
if($backorder){
$order->update_status('completed'); //change your status here
}
}
add_action('woocommerce_order_status_on-hold', 'mysite_hold');
//You may need to store your backorder info like below
wc_add_order_item_meta($item_id, 'Backordered', $qty - max(0, $product->get_total_stock()));
이 조각 여기
Updated compatibility for woocommerce 3+
이 순서는 "보류"을 상태 인 경우 주문 상태 변경됩니다 woocommerce_thankyou
액션 후크에서 꺾어 사용자 정의 기능,이다 해보세요에 백 오더 제품이 있으면 입니다.
당신은 기능 원하는 새로운 상태 슬러그 변화을 설정 있을 것이다. 여기
은 (코드가 아니라 주석)하는 사용자 정의 기능 입니다 :add_action('woocommerce_thankyou', 'change_paid_backorders_status', 10, 1);
function change_paid_backorders_status($order_id) {
if (! $order_id)
return;
// HERE set your new status SLUG for paid back orders <== <== <== <== <== <== <==
$new_status = 'completed';
// Get a an instance of order object
$order = wc_get_order($order_id);
// ONLY for "on-hold" ORDERS Status
if (! $order->has_status('on-hold'))
return;
// Iterating through each item in the order
foreach ($order->get_items() as $item_values) {
// Get a an instance of product object related to the order item
product = version_compare(WC_VERSION, '3.0', '<') ? wc_get_product($item_values['product_id']); : $cart_item->get_product();
// Check if the product is on backorder
if($product->is_on_backorder()){
// Change this order status
$order->update_status($new_status);
break; // Stop the loop
}
}
}
코드는 플러그인 파일에도 활성 자식 테마 (또는 테마)의 function.php 파일이되거나.
코드는 테스트되었으며 작동합니다.
감사합니다.이 라인은 오류를 보여줍니다 : wc_add_order_item_meta ($ item_id, 'Backordered', $ qty - max (0, $ product-> get_total_stock())); –
woocommerce에서 주문 세부 정보를 얻는 방법은 무엇입니까? 주문에 판매 가격이 포함되어있는 경우 주문 상태를 변경하고 싶습니다. –