2016-10-07 4 views
-1

WP 메일을 사용하여 전자 메일을 보냅니다. 나는 특정 가치에 근거하여 보내고 싶은 hte 전자 메일의 2 가지 버전을 가지고있다. 아래 코드는 자체 expalnitory입니다.PHP에서 함수의 내용을 에코하는 방법

function implement_ajax_apartmentsearchemail() { 



    if (($_POST['email'])) { 
     //get the correct page ID 
     $to = ($_POST['email']); 
     $name = ($_POST['name']); 
     $subject = 'Our Recommendations.'; 
     $postidstring = ($_POST['postidstring']); 
     $reseller = ($_POST['reseller']); 

     if ($reseller == '') { 
      $message = emailcontentscp($postidstring, $name); 
     } else { 
      $message = emailcontentreseller($postidstring, $reseller, $name); 
     }    

     $subject = 'Our Recommendations'; 
     $headers = "Content-type: text/html;charset=UTF-8\n"; 
     $headers .= "X-Priority: 3\n"; 
     $headers .= "X-MSMail-Priority: Normal\n"; 
     $headers .= "X-Mailer: php\n"; 
     $headers .= "From: Serviced City Pads <[email protected]>\n";  
     wp_mail($to, $subject, $message, $headers); 

     die(); 
    } 


} 

add_action('wp_ajax_apartmentsearchemail', 'implement_ajax_apartmentsearchemail'); 
add_action('wp_ajax_nopriv_apartmentsearchemail', 'implement_ajax_apartmentsearchemail'); 

나는 $ 대리점 변수가 사실인지 아닌지는 다음 리셀러 메일 템플릿을 실행하지 않을 경우, 다음 일반 SCP 메일 서식 파일을 실행할 경우, 확인하려합니다.

내 상태는 콘솔에서 올바른 전자 메일 서식 파일을 반환 할 때 작동하지만 $ message 변수를 덤프 할 때 아무 것도 반환하지 않습니다.

내 기능은 다른 파일에서 다음과 같이 배치됩니다. 함수의 반환 값을 얻을 $message에 할당하기 위해

function emailcontentscp($postidstring, $name) { 
//wp query to get some posts in a nice looking layout 

//loop start 
    <div id="post-entry">some content</div> 
//loop end resetpostdata(); 

//there is no return() here. 
} 
+1

을 대신 그것을 변수에 저장하고 return의 HTML 출력? – Albzi

+0

은 $ _POST입니다 [ 'reseller']가 설정 되었습니까? –

+0

나는 기능이없는 조건부 검사를 시도하고 텍스트를 추가하기 만하면 리셀러 옵션을 게시 할 때와 사용하지 않을 때 모두 메일이 작동했습니다. 또한 함수에서 return을 사용하고 있지 않습니다. Ive가 얻은 것을 더 잘 이해할 수 있도록 위 기능을 업데이트하십시오. –

답변

0

는,이 함수는 return 뭔가가 필요합니다. 당신은 당신이 원하는 결과()``emailcontentscp`에서 return`를 사용하고

function emailcontentscp($postidstring, $name) { 
    $template = '<div ...>'; 

    foreach (...) { 
     $template .= '<li ...>'; 
    } 

    return $template; 
} 
+0

그 덕분입니다. 이 쿼리 내 쿼리 내에서 작동합니다. 글자 그대로 $ template = '

loop
'; –

+0

글쎄, 아니, 그 이유는 * 루프 안에 '$ template'을 * 추가하는 방법을 보여주고 있기 때문이다. – deceze

+0

FYI http://codepad.org/zEIxQz3z –

관련 문제