2013-04-01 5 views
2

woocommerce를 사용하고 인쇄 배달 노트 플러그인을 설치했습니다. 내가 뭘하려고하는지 누군가가 특정 '추가 배송료'를 선택하면 인쇄 파일을 편집하여 관련 인쇄 된 우편 요금 인상을 인쇄합니다. - 1 등석 대 2 등급Woocommerce - 주문 배송비를 추출하려고합니다.

나는 IF 성명서를 기반으로합니다. 내가 할 수있는 배송료 (무료 대 £ 1)의 가치에.

하지만 값을 추출하려고 할 때 문제가 있으므로 확인해 볼 수 있습니다.

깊이 파고 내가 값을 확인할 수 있도록 WC_Order 클래스에서 get_shipping() 메서드를 사용해야하는 것처럼 보입니다. - http://docs.woothemes.com/wc-apidocs/class-WC_Order.html - 이것이 제가 실패한 곳입니다.

이 페이지에서 - http : //docs.woothemes.com/document/class-reference/#listofclassesinwoocommerce - WC_Cart 예제를 복사하여 .php 파일에 직접 붙여넣고 인쇄 할 수 있습니다. 값을 성공적으로 반환하지만 get_shipping()을 사용하는 것이 맞다고 생각하는 것으로 변경하면 치명적인 오류가 발생합니다. 멤버 함수 get_shipping()은 비 객체의 .....에 대신 호출됩니다.

가 여기에 나는 내 능력의 한계에 도달 한 것처럼 내가 추측하고 지금

<?php global $woocommerce; 
$order_shipping_total = $woocommerce->order->get_shipping(); 
echo $order_shipping_total ; 
?> 

을 넣어 무엇을, 나는 WC_Order 클래스를 초기화 할 필요가 있지만, 나는이 작업을 수행하는 방법에 난처한 해요.

도움을 많이 받으실 수 있습니다.

건배

답변

9

거의 다 왔었습니다! 참으로 주문을 초기화해야합니다. $woocommerce님께 서 어떤 주문을 하시는지 알 수 없습니다. 그래서 당신은 순서에서 개체를 만들 :

$order = new WC_Order($order_id); 

지금 (배송 값을 포함)이 순서의 모든 정보가 $order 통해 액세스

. 당신이 알아야 할 유일한 것은 적절한 $order_id입니다. 인쇄 배달 환경에 있으므로 $wcdn->print->order_id을 통해 해당 값에 액세스 할 수 있습니다.

이 당신이 필요로 할 것입니다 :

<?php 
global $wcdn; 
$order = new WC_Order($wcdn->print->order_id); 
$order_shipping_total = $order->get_total_shipping(); 
echo $order_shipping_total; 
?> 
+0

메소드 이름에서 어떤 시점에서 변경되었습니다와 현재의 순서의 총 운송 비용을 얻을 수 있습니다 'get_shipping()'을'get_total_shipping()'으로 변경하십시오. 관련 문서 페이지 : https://docs.woocommerce.com/wc-apidocs/class-WC_Order.html –

1

을> WC 3.you에서

<?php 
$current_shipping_cost = WC()->cart->get_cart_shipping_total(); 
echo $current_shipping_cost; 
?> 
관련 문제