>

현재 자동 상태 변경 작업을하고 있습니다. 이러한 변경을 위해 현재 제품의 재고를 알아야합니다.

현재 functions.php에이 코드가 있습니다 :

add_action('woocommerce_order_status_changed', 'woocommerce_auto_processing_orders');
function woocommerce_auto_processing_orders( $order_id ) {
    if ( ! $order_id )
        return;
    $order = wc_get_order( $order_id );
    //$stock = $product->get_stock_quantity();
    //If order is "processing" update status to "kundenupdate" at 50% stock
    if( $order->has_status( 'processing' ) ) {
        //If customer ordered below 50% stock
        $order->update_status( 'kundenupdate' );
        //If customer ordered above 50% stock and stock reached 90%
        //$order->update_status('on-hold')
    }
}

현재 상태를 "processing"에서 "kundenupdate"로 즉시 변경합니다. 특정 제품의 현재 재고에 어떻게 액세스합니까? 나는 그것이 $stock = $product->get_stock_quantity(); 와 함께있을 것이라고 생각 하지만 작동하지 않습니다.

기본적으로 달성하고자하는 것은 :

if(orderStatus == 'processing') {
   if(stockOfBoughtProduct == 50%) {
      changeStatusTo('kundenupdate');
   }
   else if(stockOfBoughtProduct == 90%) {
      changeStatusTo('on-hold');
   }
}

그러나 현재 제품 재고에 액세스하는 것은 효과가 없습니다.

  • 답변 # 1

    특정 제품에 대한 재고 가치를 얻을 수 있습니다. get_post_meta () 사용할 수 있습니다. 아래 코드를 사용하여postmeta 테이블에서 주식 가치를 가져옵니다.

    $stock = get_post_meta ($post->ID, '_stock', true);

관련 자료

  • 이전 r - 위 행의 값으로 행의 서브 세트 채우기
  • 다음 python - 인수와 동일한 값을 두 가지 방법으로 전달하는 방법은 무엇입니까?