2017-01-13 5 views
4

전자 메일 주소로 주문 보고서를 보내는 플러그인을 만들었습니다. 주문 정보를 CSV 파일로 받아 이메일 첨부 파일로 보내야합니다. 지금까지는 주문 정보를 얻을 수 있었지만 WooCommerce 이메일에 파일을 첨부하는 방법을 고민하는 중입니다. 은 "order_information_report는"그것을 전송 될 때 내가 너무 첨부 파일에 끼어이 코드를 사용했다WooCommerce 전자 메일 첨부 파일

function attach_file_woocommerce_email($attachments, $id, $object) 
{   
    if($id == 'order_information_report') 
    { 
     $upload = wp_upload_dir(); 

     $order_csv_information = $upload['baseurl'] . '/order_information.csv'; 
     $attachments[]  = $order_csv_information; 
    } 

    return $attachments; 
} 
add_filter('woocommerce_email_attachments', 'attach_file_woocommerce_email', 10, 3); 

은 csv 파일을 추가합니다. 그러나 이것은 작동하지 않는 것 같습니다. if 문을 주석 처리하려고했지만 여전히 작동하지 않았습니다.

흥미롭게도 나는 전자 메일 폴더에서 전자 메일 폴더를 포함하여 전자 메일 폴더를 테스트했습니다.

public function trigger($order_id) // Email Trigger 
{ 
    if(!$this->get_recipient()) 
    { 
    return; 
    } 

    $this->send($this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments()); 

    print_r($this->get_attachments()); 
} 

print_r이 (가) csv 파일의 경로를 반환하는 것으로 보입니다. 브라우저에 해당 경로를 입력하면 다운로드 할 수 있습니다. 이것이 올바르게 작동하지 않는 이유에 대한 제안 사항은 무엇입니까?

편집은 내가 플러그인 디렉토리 대신이 잘 작동하는 것 같습니다 업로드 디렉토리의 경로를 변경할 때 이메일을 얻을 수 있지만, 어떤 이유에 대한 첨부 파일

+1

답변이 정상적으로 작동하지 않는 이유를 추측해야한다면 여기에 업로드 디렉토리의 디렉토리 경로가 아닌'baseurl'이 사용됩니다. 그리고 당신의 대답에서 플러그인 디렉토리에 대한 디렉토리 경로를 사용하고 있습니다. 첨부 파일은 URL이 아닌 파일 경로에서만 작동합니다. – helgatheviking

+0

그래, 내가 그럴 수도 있다고 생각한 대답을 게시 한 후 두 번째 첨부 파일 배열을 인쇄했을 때. –

답변

2

으로 언급하는 것을 잊었다.