Woocommerce 3에서 프로그래밍 방식으로 주문에 배송 추가
저는 우커머스를 통해 (주문 건당) 배송비를 프로그래밍적으로 책정하기 위해 여러 가지 솔루션을 시도해 왔습니다.운이 없네요.
항목의 메타 값을 덮어쓰려고 했습니다.
update_post_meta( $woo_order_id, '_order_shipping', $new_ship_price );
또한 이 [질문/답변][1]의 행에 따라 무엇인가 시도해 보았습니다.
$item_ship = new WC_Order_Item_Shipping();
$item_ship->set_name( "flat_rate" );
$item_ship->set_amount( $new_ship_price );
$item_ship->set_tax_class( '' );
$item_ship->set_tax_status( 'none' );
// Add Shipping item to the order
$order->add_item( $item_ship );
하지만 둘 다 효과가 없는 것 같습니다.어떤 조언이든 환영합니다.
유사한 스레드:Woocommerce 3에서 프로그래밍 방식으로 주문에 수수료 추가
Woocommerce 3+에서 이 문제를 처리하려면 다음을 사용합니다.WC_Order
주문객체$order
):
## ------------- ADD SHIPPING PROCESS ---------------- ##
// Get the customer country code
$country_code = $order->get_shipping_country();
// Set the array for tax calculations
$calculate_tax_for = array(
'country' => $country_code,
'state' => '', // Can be set (optional)
'postcode' => '', // Can be set (optional)
'city' => '', // Can be set (optional)
);
// Optionally, set a total shipping amount
$new_ship_price = 5.10;
// Get a new instance of the WC_Order_Item_Shipping Object
$item = new WC_Order_Item_Shipping();
$item->set_method_title( "Flat rate" );
$item->set_method_id( "flat_rate:14" ); // set an existing Shipping method rate ID
$item->set_total( $new_ship_price ); // (optional)
$item->calculate_taxes($calculate_tax_for);
$order->add_item( $item );
$order->calculate_totals();
$order->update_status('on-hold');
// $order->save(); // If you don't update the order status
작품을 테스트했습니다.
언급URL : https://stackoverflow.com/questions/53671945/add-a-shipping-to-an-order-programmatically-in-woocommerce-3
'programing' 카테고리의 다른 글
DBMS_DATA_MINING.CREATE_MODEL은 11.2.0.1.0 64b에서 "ORA-40103: 잘못된 대/소문자-ID 열: TID"를 발생시키지만 10g에서는 정상입니다. (0) | 2023.09.12 |
---|---|
기존 ColdFusion 2016 ORM 애플리케이션에 추가 (0) | 2023.09.12 |
jQuery ajax 핸들 401 무단 (0) | 2023.09.12 |
Oracle에 시스템 날짜 삽입 (0) | 2023.09.12 |
Expulent 모델 인스턴스의 기본 키 가져오기 (0) | 2023.09.12 |