2014-10-15 1 views
1

Prestashop 1.5 용 지불 모듈을 개발 중입니다. 지불과 관련된 주문 상태가 없으므로 설치 프로세스 중에 하나를 생성하기로 결정했습니다.OrderState 생성 및 삭제

은 내가 모듈을 설치하고 검사에 갈 때,이

$OrderState = new OrderState(); 
      $OrderState->name = array_fill(0,10,"Saman Bank Payment accepted"); 
      $OrderState->template = array_fill(0,10,"SB24"); 
      $OrderState->send_email = 1; 
      $OrderState->invoice = 1; 
      $OrderState->color = "#f8dbec"; 
      $OrderState->unremovable = false; 
      $OrderState->logable = 0; 
      $OrderState->add(); 

그래서 지금 createOrderState 그러나이

private function createOrderState($db_name, $name) 
{ 
    if (!Configuration::get($db_name))//if status does not exist 
    { 
     $orderState = new OrderState(); 
     $orderState->name = array_fill(0,10,$name); 
     $orderState->send_email = false; 
     $orderState->color = 'royalblue'; 
     $orderState->hidden = false; 
     $orderState->delivery = false; 
     $orderState->logable = false; 
     $orderState->invoice = false; 
     if ($orderState->add())//save new order status 
     { 
      Configuration::updateValue($db_name, (int)$orderState->id); 
     } 
    } 
} 

과 같은 사용하기 위해 제안하는 공식 포럼에서 this 항목을 사용 주문 상태 목록에 4 개의 빈 상태 (ids 14,15,16 및 17)와 내가 만들려고했던 빈 상태 (id 18)가 삽입 된 것을 찾습니다. 나는 다음과 같은 오류 메시지를 얻을 모듈을 제거하려고 할 때

한편

은 제거 기능은, 그러나이

public function deleteOrderState($db_name, $name) 
{ 
    $orderState = new OrderState(); 
     $orderState->name = array_fill(0,10,$name); 
     $orderState->send_email = false; 
     $orderState->color = 'royalblue'; 
     $orderState->hidden = false; 
     $orderState->delivery = false; 
     $orderState->logable = false; 
     $orderState->invoice = false; 

    $order_state.delete(); 
} 

같은입니다 deleteOrderState 기능을 포함

Fatal error: Call to undefined function delete() in D:\xampp\htdocs\prestashop\modules\example\example.php on line 114 
[PrestaShop] Fatal error in module example: 
Call to undefined function delete() 

TL, DR; 내가 알고 싶어

  • array_fill의 10은 무엇을 의미합니까? 최선의 추측은 설치된 언어의 수와 관련이 있지만이를 확인할 수 없다는 것입니다.
  • getOrderState 함수와 같이 데이터베이스를 명시 적으로 쿼리하지 않고 orderState를 검색 할 수있는 방법이 있습니까?

고맙습니다.

답변

0

1º - 매개 변수 order_state_id을 전달해야합니다.

2 º - 방법에 액세스하려면 다음과 같이 사용해야합니다 :

$obj->method 

대신

$obj.method 

의 내 예를 따르

public function deleteOrderState($id_order_state) { 

    $orderState = new OrderState($id_order_state);   
    $orderState->delete(); 

} 

을 그리고, 삭제 OrderState, 먼저 ID를 알아야합니다.

나중에 바로이 작업을 수행 :

$yourObj->deleteOrderState(59);